نظرة سريعة على مجريات يوم سوالف
الفائزون في المسابقة الأصغر لسوالف كاست

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#1 (permalink)  
مشكله بالجلسات...Warning


كود:
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

وش حل هالخطأ بالجلسات ..

وبالمره تعريف الجلسات واضافة القيم لها الطريقة السليمة كيف ؟
مع تحديد مدة زمنية لإنتهاء الجلسة بدون التعديل على php.ini

ويعطيكم العافية






Ziad غير متواجد حالياً   قديم 18-10-2006, 12:44 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2004-
#2 (permalink)  

حرف the باللغة العربية معطل عندي في الكيبورد لtheالك استبدلته ب\

أولا: يجب أن تكتب في أول الصفحة التي تريد إضافة الجلسة فيها
كود PHP:
session_start(); 
بعد \لك الكود الخاص بك

أما عن طريقة تسجيل المتغيرات فإنه كالتالي :
1- إما أن تكتبها هك\ا :
كود PHP:
$var "هنا تكتب قيمة المتغير var";
session_register("var"); 
2- أو تكتبها هك\ا :
كود PHP:
$_SESSION["var"] = "هنا تكتب قيمة المتغير var"






__________________
لغة PHP

طريقك نحو التقدم و الإبداع .. قريبا جداً
alsohba غير متواجد حالياً   قديم 21-10-2006, 09:55 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2004-
#3 (permalink)  

قد يفيدونا الأخوة في تحديد مدة زمنية لإنتهاء الجلسة بدون التعديل على php.ini
لأني لا أعرف إلا من خلال php.ini






__________________
لغة PHP

طريقك نحو التقدم و الإبداع .. قريبا جداً
alsohba غير متواجد حالياً   قديم 21-10-2006, 10:01 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Oct 2003-
#4 (permalink)  

اخوي غير اللغة إلى Saudi 101 keys
====alsohba






الغريم دوت كوم غير متواجد حالياً   قديم 21-10-2006, 10:14 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#5 (permalink)  

يا إخوان ممكن المساعدة في تحديد وقت محدد تنتهي به الجلسة بحيث يتم الانتقال الى صفحة تطلب منه تسجيل الدخول مرة اخرى .
انا لااريد استخدام الكوكيز نهائيا في برنامجي لوجود قيود على اجهزة المستخدمين تمنع تحميل اي ملف على الجهاز .






أصيل2005 متواجد حالياً   قديم 22-10-2006, 12:28 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#6 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة alsohba
حرف the باللغة العربية معطل عندي في الكيبورد لtheالك استبدلته ب\

أولا: يجب أن تكتب في أول الصفحة التي تريد إضافة الجلسة فيها
كود PHP:
session_start(); 
بعد \لك الكود الخاص بك

أما عن طريقة تسجيل المتغيرات فإنه كالتالي :
1- إما أن تكتبها هك\ا :
كود PHP:
$var "هنا تكتب قيمة المتغير var";
session_register("var"); 
2- أو تكتبها هك\ا :
كود PHP:
$_SESSION["var"] = "هنا تكتب قيمة المتغير var"
يعطيك العافية اخوي

كانت المشكله بكتابتها بالطريقة التالية
كود PHP:
$var "هنا تكتب قيمة المتغير var";
session_register("var"); 
والأصح :
كود PHP:
$_SESSION["var"] = "هنا تكتب قيمة المتغير var"
[/quote]


جزاك الله الف خير






__________________
I love Php
Email Only
Ziyad(AT)alsharan.com ,I don't have Massenger
Ziad غير متواجد حالياً   قديم 22-10-2006, 08:22 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#7 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة أصيل2005
يا إخوان ممكن المساعدة في تحديد وقت محدد تنتهي به الجلسة بحيث يتم الانتقال الى صفحة تطلب منه تسجيل الدخول مرة اخرى .
انا لااريد استخدام الكوكيز نهائيا في برنامجي لوجود قيود على اجهزة المستخدمين تمنع تحميل اي ملف على الجهاز .
بصراحة بحثت عن هالطريقة ولا وجدت طريقة تلغي الجلسة بعد مرور فترة زمنية بدون التعديل على php.ini
لكن لقيت طريقة ربما تنفع .. وهي فكرة من اجتهاد شخصي .. والي له تعليق عليها ياليت ينورنا ..


الفكرة هي عند دخول اليوزر طبعاً سيتم تسجيل دخوله عن طريق الجلسة ، في هذا الوقت يتم تسجيل وقت الدخول بنفس جدول اليوزر .. بحقل يسمى مثلا lastlogin وحقل آخر بأسم lastonline لتسجيل وقت آخر اتصال له .. ويتم تحديث هذا الحقل عند القيام بالتصفح .. حيث عند الانتقال من صفحة إلى صفحة يتم تحديث الحقل lastonline بالوقت الحالي حين فتح الصفحة التالية ..
وقبل هذا التحديث لابد من وضع شرط ..
إذا كان الوقت الحالي - الوقت المطلوب لإنتهاء الجلسة (أكبر من ) الوقت المسجل في lastonline.
قم بإنهاء الجلسة (الذهاب إلى logout ) والانتقال لصفحة تسجيل الدخول .


ما رأيكم ؟






__________________
I love Php
Email Only
Ziyad(AT)alsharan.com ,I don't have Massenger
Ziad غير متواجد حالياً   قديم 22-10-2006, 08:32 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#8 (permalink)  

جزاك الله خيرا على الفكرة هل يمكن اعطاء مثال ولو بسيط على كود التسجيل lastonline والشرط المطلوب .ماني فاهم
الوقت المطلوب لإنتهاء الجلسة (أكبر من ) الوقت المسجل في lastonline

طيب اقارن وأنا محدثة مع كل انتقال .






أصيل2005 متواجد حالياً   قديم 22-10-2006, 02:07 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#9 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة أصيل2005
جزاك الله خيرا على الفكرة هل يمكن اعطاء مثال ولو بسيط على كود التسجيل lastonline والشرط المطلوب .ماني فاهم
الوقت المطلوب لإنتهاء الجلسة (أكبر من ) الوقت المسجل في lastonline

طيب اقارن وأنا محدثة مع كل انتقال .
الله يخليك يارب

جربتها عملياً ونجحت معاي الطريقة

بكتب لك التفاصيل حتى تتكيف مع برنامجك بس ارتب الكود






__________________
I love Php
Email Only
Ziyad(AT)alsharan.com ,I don't have Massenger
Ziad غير متواجد حالياً   قديم 23-10-2006, 05:31 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#10 (permalink)  

فكرة حلوة




-----------

جاي التجربة






__________________


Mohamed Mahmoud

Mobile : +20103452846

Blog : Hawy PHP

Mail : Hawy [.] PHP [@] Gmail.com

حسبي الله ونعم الوكيل

Hawy PHP غير متواجد حالياً   قديم 23-10-2006, 04:48 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#11 (permalink)  

شرح الفكرة السابقه بالكود بعد تجربتها ..

الفكرة هي عند دخول اليوزر طبعاً سيتم تسجيل دخوله عن طريق الجلسة ، في هذا الوقت يتم تسجيل وقت الدخول بنفس جدول اليوزر .. بحقل يسمى مثلا lastlogin وحقل آخر بأسم lastonline لتسجيل وقت آخر اتصال له .. ويتم تحديث هذا الحقل عند القيام بالتصفح .. حيث عند الانتقال من صفحة إلى صفحة يتم تحديث الحقل lastonline بالوقت الحالي حين فتح الصفحة التالية ..
وقبل هذا التحديث لابد من وضع شرط ..
إذا كان الوقت الحالي - الوقت المطلوب لإنتهاء الجلسة (أكبر من ) الوقت المسجل في lastonline.
قم بإنهاء الجلسة (الذهاب إلى logout ) والانتقال لصفحة تسجيل الدخول .



إن شاء الله يكون الشرح تمام

كود PHP:
//////////////بعد تحقق شرط عملية تسجيل الدخول ؟

///يتم وضع هذا الكود

session_start();
$_SESSION['name_of_SESSION'] = $any['any'];
///تسجيل رقم العضو في الجلسة بعد الحصول عليه من خلال الاستعلام الخاص بتسجيل الدخول
$_SESSION['user_id'] = $Sql['user_id_from_user_table'];
///الوقت الحالي بالثواني
$nowtime=time();
////تحديث آخر دخول للعضو في جدول اليوزر
$Sql2=mysql_query("UPDATE users SET lastonline = '$nowtime' WHERE user_id = '$Sql[user_id_from_user_table]'"); 
الكود السابق يوضع في حال تحقق شرط عملية تسجيل الدخول .. وتطبق نفس الفكرة في حال كان اليوزر وحيد يعني مافيه اكثر من يوزر يتم حذف رقم اليوزر ويعوض عنه بتحديث قيمة في جدول مخصص مثلا جدول الconfig يتم وضع قيمة lastonline فيه .. وتحديثها تلقائي بعد عملية الدخول ..


الكود الثاني :
كود PHP:
///بدأ الجلسة
session_start();

///التحقق من وجود عملية تسجيل
if(isset($_SESSION['name_of_SESSION'])) {

///الوقت بالثواني
$nowtime=time();
///الوقت ناقص 600 ثانية يعني 10 دقائق
$TimeTologout=$nowtime-600;
////استعلام عن قيمة آخر دخول في جدول اليوزر حتى يتم مقارنتها مع الوقت الحالي ناقص 10 دقائق
$lastinChi=mysql_query("SELECT lastonline From user_table Where user_id='$_SESSION[user_id]''");

$la=$lastinChi['lastonline'];

///شرط إذا كان الوقت المسجل في القاعدة اقل من الوقت الحالي ناقص 10 دقائق يتم حذف الجلسة وتسجيل الخروج
if ($la $TimeTologout){

$_SESSION = array();

session_unset();

session_destroy();

echo= 
"نظراً لعدم قيامك بأي عمل لمدة 10 دقائق متواصلة فقد تم قطع الإتصال، فضلا قم بإعادة تسجيل الدخول";

exit();
}
else
////إذا لم يتحقق الشرط إذا يتم تحديث آخر دخول حتى لايتم الغاء الجلسة والعمل قائم فيها ولم يمر 10 دقائق ولم يتم فعل اي شي
{
///الوقت الحالي بالثواني
$nowtime=time();
///تحديث اليوزر للوقت الحالي
$Upd3=mysql_query("update user_table  SET lastonline = '$nowtime' Where user_id='$_SESSION[user_id]'");

}

}
?> 
يكون مثلا ملف بأسم timeout.php ، وفي كل انتقال من صفحة لصفحة يتم استدعاء الملف السابق timeout.php حتى يتم تحديثه

والكود يشرح نفسه ...

تحياتي






__________________
I love Php
Email Only
Ziyad(AT)alsharan.com ,I don't have Massenger
Ziad غير متواجد حالياً   قديم 24-10-2006, 05:52 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#12 (permalink)  

الله يبارك فيك اخي الكريم كل عام وانتم بخير
طبعا الفكرة تعبت وانا أدورها لانني اخطط لموضوع عمل اسئلة اختبار لمقرر ب PHP وما ودي اعتمد على الكوكيز الفكرة كل صفحة فيها سؤال واحد والوقت ساعة من دخول اول سؤال وطبعا المطلوب عند مضي نصف ساعة إظهار رسالة بقي من الوقت نصف ساعة وقبل نهاية الوقت بعشر دقائق تظهر رسالة بقي من الوقت 10 دقائق وعند انتهاء الوقت تظهر رسالة انتهى وقت الامتحان وتظهر النتيجة .






أصيل2005 متواجد حالياً   قديم 24-10-2006, 05:31 PM
رد مع اقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 12:30 AM بتوقيت المملكة العربية السعودية