برمجة العضوية في السكربتات

كل مايخص سكربتات وتساؤلات لغة PHP
مغلق
Saif Alhak
عضو مفيد
مشاركات: 107
اشترك في: 24 مارس 2009, 20:45
مكان: Damascus - Syria
اتصال:

برمجة العضوية في السكربتات

مشاركة بواسطة Saif Alhak »

السلام عليكم أخواني الأعزاء
السكربتات منها مايعتمد على العضوية ومنها متاح للزوار بشكل كامل

أنا أعمل سكربت مبرمج بلغة ال php مع mysql

وأريد أن أجعل به نظام للعضوية بحيث أتيح للأعضاء ميزات أضافية على ميزات الزوار كالتعليق على المقالات مثلاً

طبعاً أنشأنا جدول لتخزين العضويات وعملية الإشتراك جاهزة

لكن السؤال كيف أنفذ الشرط التالي مثلا

إذا كان العضو مسجل الدخول فعل التعليقات
وإذا لم يكن أعرض الرسالة التالية

هذا الشرط بالمتغيرات سهل يعني لو عندي متغير $var ويحمل القيمتين 1 أو 0
إذا كان يساوي واحد نفذ ...
وإلا فنفذ ....


لكن بالنسبة للتسجيل كيف يتم التحقق من أن العضو مسجل الدخول أم لا وفي أشياء محددة بالموقع
phpfalcon
بـــدر
مشاركات: 565
اشترك في: 26 فبراير 2009, 03:56

رد: برمجة العضوية في السكربتات

مشاركة بواسطة phpfalcon »

راح تحتاج , تعتمد على السيزون او الكوكيز بالدخول
Saif Alhak
عضو مفيد
مشاركات: 107
اشترك في: 24 مارس 2009, 20:45
مكان: Damascus - Syria
اتصال:

رد: برمجة العضوية في السكربتات

مشاركة بواسطة Saif Alhak »

ممكن توضيح أكتر يعني أنا لساتني مبتدئ بالموضوع

يعني وضحلي بشي مثال بسيط إذا سمحت
phpfalcon
بـــدر
مشاركات: 565
اشترك في: 26 فبراير 2009, 03:56

رد: برمجة العضوية في السكربتات

مشاركة بواسطة phpfalcon »

اناا شخصيا انصحك بالمثال هذا

http://tinsology.net/2009/06/creating-a ... right-way/

ﻻنه اكثر آمانا من الشروحات الاخرى بهذا الخصوص

ونصيحتي لك ان تبدأ خطوه خطوه ,

ﻻتقم ببرمجة سكربت كامل من البداية

بالبداية قم بتعديل على اكواد اﻻخرين واقرا اكواد المبرمجين جيدا

الـ php لغه سهله جدا وستتعلمها بسرعه لو اردت ذلك
Saif Alhak
عضو مفيد
مشاركات: 107
اشترك في: 24 مارس 2009, 20:45
مكان: Damascus - Syria
اتصال:

رد: برمجة العضوية في السكربتات

مشاركة بواسطة Saif Alhak »

شكراً لك عزيزي

أنا أطلعت مسبقاً على عدة أكواد ولكن لم تكن الأمور واضحة في بعض النقاط

كما ذكرت الموضوع يحتاج لتعمق وتأني ...

شكراً لك على المثال
Error HeR
عضو جديد
مشاركات: 4
اشترك في: 05 نوفمبر 2009, 19:27

رد: برمجة العضوية في السكربتات

مشاركة بواسطة Error HeR »

متطلبات الدرس:
جدول في قاعدة البيانات وظيفته هو تخزين بيانات المتواجدون الان لكي يتسنى لنا حساب عددهم.
ملف واحد php ولنسميه online.php
الجانب النظري:
فكرة عمل المتواجدون الان قد تبدو للوهلة الاولى معقدة نوعا ما.. او انها بحاجة لبرمجة كثيرة وخبرة عالية للحصول عليها. ولكن الحقيقة انها اسهل من ذلك بكثير. الفكرة انه يتم فحص جلسة او ip الزائر ويتم مقارنته مع السجلات في القاعدة. اذا وجدناه نحدث الزمن فقط.. واذا لم نجده نقوم بتخزين بياناته في الجدول لنقوم لاحقا بحساب عدد السجلات التي هي بدورها تعني عدد المتواجدين الان في صفحة الموقع.

بنية الجدول:

كود: تحديد الكل

CREATE TABLE `user_online` (

كود: تحديد الكل

`session` char(100) NOT NULL default '', 
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;

كود: تحديد الكل

<? 
session_start();
$session=session_id();
$time=time();
$time_check=$time-600; //SET TIME 10 Minute
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="user_online"; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count=="0"){
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);
}
else {
"$sql2=UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);
}
$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);
echo "User online : $count_user_online "; 
// if over 10 minute, delete session 
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);
mysql_close();
// Open multiple browser page for result
?>
[right]<div align="right">[IMG]http://www.phpeasystep.com/imgs/db_user_online.gif[/IMG]
 
<div align="right"><font color="blue"><u>الكود:</u></font></div> 
</div>


شرح الكود:

كود: تحديد الكل

session_start();

كود: تحديد الكل

$session=session_id(); 
$time=time();
$time_check=$time-600; //SET TIME 10 Minute


الكود سهل قام ببداية الجلسة وتسجيلها ... ووضع الوقت الحالي في متغير سماه time وحدد متغير اخر وهو المدة التي يبقي الزائر فيها اونلاين .. وبعد انقضاءها يلغى الزائر

يعني لو الزائر اخر حركة تحركها كانت في الساعة العاشرة والنصف .. عند العاشرة والاربعين يتم الغاءه سجله

كود: تحديد الكل

$host="localhost"; // Host name 
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="user_online"; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");


هنا ايضا سهلة.. اتصال عادي بقاعدة البيانات . يجب عليك تغييرها كما يناسبك او تعمل بدلا منها انكلود للكونفيج اللي عندك.

كود: تحديد الكل

$sql="SELECT * FROM $tbl_name WHERE session='$session'"; 
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count=="0"){
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);
}
else {
"$sql2=UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);
}


هنا قام بعمل استعلام يبحث في الجدول عن الاعضاء الذين لهم نفس الجلسة يعني يبحث هل الزائر متواجد من قبل ام لا.. في حال كان متواجد يقوم بتحديث الوقت للوقت الحالي. اما في حال لم يكن متواجد فانه ينشئ له سجل في القاعدة كزائر جديد

كود: تحديد الكل

$sql3="SELECT * FROM $tbl_name"; 
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);
echo "User online : $count_user_online "; 
// if over 10 minute, delete session 
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);
mysql_close();


هنا قام بحساب عدد السجلات في الجدول والتي تمثل عدد المتواجدين الان في الموقع وقام بطباعتها وهو المطلوب
وثم قام بحذف جميع السجلات التي مضى على اخر نشاط لها 10 دقائق وبالتالي الزوار القديمين تحذف سجلاتهم

وثم قام بانهاء الاتصال بقاعدة البيانات :D
مغلق