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

 

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

رد
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Aug 2004-
#1 (permalink)  
مساعده في تسجي الدخول


ياجماعة الخير وربي حيرتني مشكله ودي ولو ثقلت عليكم احصل لها حل عندكم
المشكله في بناء لوحة تحكم محميه بكلمة مرور

طبعا عندنا نظامين واعرفهم الي هي اكعكات و session


المشكله اني ما ابي استخدم session لاني ابي الزائذ يحتفظ بمعلوماته على الجهاز
المهم

سويت نظام تسجيل COOKIe

بس واجهتني اكثر من مشكله طبعا انا استخرج المعلومات من قاعدة البينات



كود PHP:
$username      $HTTP_POST_VARS['username'];
  
$password      $HTTP_POST_VARS['password'];



include(
'admin/config.php');
$password=md5 ($password);

$sesthat=mysql_query("SELECT * FROM user WHERE user='$username' AND password='$password'");
if(
mysql_fetch_row($sesthat) > ){
$yas=mysql_query("SELECT * FROM user WHERE user='$username' ");
while(
$row=mysql_fetch_array($yas)){
$password=$row[password];
$username=$row[user];
}


// عند اختيار صندوق تذكرنى cookie تخزين الـ

setcookie("cookie_username",$username,time()+8400,'/');
setcookie("cookie_password",$password,time()+8400,'/');
echo
"<font face='tahoma' size='2'><html dir='rtl'>";
echo
"تم تسجيل دخولك بنجاح <br> انتظر قليلا ليتم تحويلك";
echo
"<meta http-equiv='REFRESH' content='1; url=index2.php'>";
}else{
echo
"<font face='tahoma' size='2'><html dir='rtl'>";
echo
"<center>للأسف لم نتمكن من التعرف عليك";
echo
"<meta http-equiv='REFRESH' content='1; url=admin_login.php'>";

وهذا الملف يقوم بستخراج وزرع COOKIe
بس المشكله انه يقول تم تسجيل دخولك ويرجع ثاني مره يطلب مني التسجيل

المشكله هي اتوقع في طريقة استدعاء COOKIe


انا سويت وحاولت باكثر من طريقه بس للاسف لا جدوى
عموما هذا الكود

كود PHP:
if (($HTTP_COOKIE_VARS["cookie_password"]== "password") && ($HTTP_COOKIE_VARS["cookie_username"]== "username"))$ok=1;


if(
$ok == 1)
{
echo 
"<p align=\"center\"><font color=\"#FF0000\"><b>انتظر</b></font></p>";

}else{
echo
"<font face='tahoma' size='2'>لم تقم بتسجيل الدخول</b>";
echo
"<meta http-equiv='Refresh' content='1; url=admin_login.php'>";
EXIT; 

عموما هل ملفين اتمنى المساعده فيهم ترى انتظر ردكم
حصلت اكثر من موضع يتكلم عن نفس الشي وطبقتهم وربي لي كم يوم بس للاسف ما زبط ولا واحد






__________________
ومن يتقي الله يجعل مخرجا
علي البشري غير متواجد حالياً   قديم 15-10-2006, 02:16 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2004-
#2 (permalink)  

جرب ان تستخدم $_COOKIE بدلاً من $HTTP_COOKIE_VARS

لي عودة إذا لم ينجح






__________________
:: فـريـق الـزيـنـي :: الزيني للإستضافة ::
:: نحن مختلفون :: We Are Different ::
للإتصال بي
http://mossabalzeeny.arabform.com
almosmm غير متواجد حالياً   قديم 15-10-2006, 03:11 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#3 (permalink)  

وكذلك بحب ضيف لازم تعمل
كود PHP:
if (isset($cookie)){
do 
nothing:D

يعني استخدم دالة
isset والعلم عند الله






__________________
مدونتي
Www.AlMashroo.Com
feras007 غير متواجد حالياً   قديم 15-10-2006, 07:20 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2005-
#4 (permalink)  

السلام عليكم

تأكد من أن التاريخ في جهازك صحيح ممكن يكون هو سبب المشكلة لديك






ac4p.com غير متواجد حالياً   قديم 15-10-2006, 08:11 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Dec 2001-
#5 (permalink)  

أخوي فيه ملاحظات كثيرة على الكود.

في الكود الأول، هل ملف config.php يحتوي على متغير اسمه $password؟ إذا كان الجواب لا فما عندك مشكلة في الكود الأول.

بالنسبة للكود الثاني:
1) يجب تعريف المتغير $ok أو على أقل تقدير تصفيره .. لأسباب أمنية.
2) في المقارنة أن تقارن ب "username" و "password" ، وهذي قيم نصية وليست متغيرات. بالتالي من الطبيعي إنه يطلب تسجيل الدخول.
3) تذكر بأن قيمة كلمة المرور المخزنة في الكوكي مشفرة، بالتالي عندما تقارن أي كلمة مرور بالقيمة اللي بالكوكي تأكد من تشفيرها أولا ب md5.

4) في أغلب الأحيان يفضل استخدام المتغيرات التالية $_COOKIE ، $_POST بدل من المتغير التي تبدأ ب $HTTP_*

مثلا في الكود الثاني تقدر تسوي حاجة زي كذا:
كود PHP:
<?
$ok
=0;
$username="UNKNOWN";//مجرد تصفير
if(isset($_COOKIE["cookie_password"]) and isset($_COOKIE["cookie_username"]))
{
        
$username=$_COOKIE["cookie_username"];
        
$password=$_COOKIE["cookie_password"];
        
$query="SELECT * FROM user WHERE user='$username' and password='$password' LIMIT 1";
        
$result=mysql_query($query);
        if(
mysql_num_rows($result)==1)
        {
            
$ok=1;
        }
}
if(
$ok==1)
{
    echo 
"Hello $username !!";
}
else
{
    echo 
"لا توجد بيانات كوكي أو أنها غير صحيحة";
    echo
"<meta http-equiv='Refresh' content='1; url=admin_login.php'>";
}
?>
غير ما يلزم






__________________
l a h l o o b @ g m a i l . c o m
اللهلوب غير متواجد حالياً   قديم 16-10-2006, 01:31 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Aug 2004-
#6 (permalink)  

الف شكر للجميع عموما
حاولت ولكن للاسف ما زبطت


بالنسبه اخوي اللهوب config.php
هذا ملف الاتصال بالقاعده بس مافيه متغير اسمه $password

عموما هو ملف اتصال وما يوجد فيه اي استعلام ولا متغير






__________________
ومن يتقي الله يجعل مخرجا
علي البشري غير متواجد حالياً   قديم 17-10-2006, 01:18 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Dec 2001-
#7 (permalink)  

خل نشوف الملف اللي سويته بالكامل، ممكن يكون فيه خطأ بسيط.






__________________
l a h l o o b @ g m a i l . c o m
اللهلوب غير متواجد حالياً   قديم 17-10-2006, 04:56 PM
رد مع اقتباس
رد


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

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

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



الساعة الآن: 11:55 PM بتوقيت المملكة العربية السعودية