صفحة 1 من 1

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

مرسل: 15 مارس 2010, 18:33
بواسطة Saif Alhak
السلام عليكم أخواني الأعزاء
السكربتات منها مايعتمد على العضوية ومنها متاح للزوار بشكل كامل

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

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

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

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

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

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


لكن بالنسبة للتسجيل كيف يتم التحقق من أن العضو مسجل الدخول أم لا وفي أشياء محددة بالموقع

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

مرسل: 15 مارس 2010, 18:35
بواسطة phpfalcon
راح تحتاج , تعتمد على السيزون او الكوكيز بالدخول

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

مرسل: 15 مارس 2010, 18:38
بواسطة Saif Alhak
ممكن توضيح أكتر يعني أنا لساتني مبتدئ بالموضوع

يعني وضحلي بشي مثال بسيط إذا سمحت

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

مرسل: 15 مارس 2010, 18:55
بواسطة phpfalcon
اناا شخصيا انصحك بالمثال هذا

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

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

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

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

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

الـ php لغه سهله جدا وستتعلمها بسرعه لو اردت ذلك

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

مرسل: 16 مارس 2010, 18:02
بواسطة Saif Alhak
شكراً لك عزيزي

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

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

شكراً لك على المثال

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

مرسل: 15 إبريل 2010, 14:07
بواسطة 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