هلا اخوي
عندك بعض الأخطاء البسيطة اللي بسببها مااشتغل برنامجك....
1- الكود التالي:
if (($HTTP_COOKIE_VARS["logincookyepassword"]== "123") || ($HTTP_COOKIE_VARS["logincookyeusername"]== "abc")) $ok=1;
الواصل بين الشرطين لازم يكون && وليس || لأنك تبي تحقق الشرطين وليس أحدهما
2- الكود التالي:
echo "<form method=\"POST\" action=\"test.php?op=login&admin_login=$admin_login&password_login=$password_login\">\n";
الأكشن للفورم ما تحتاج أنها تحتوي على admin_login=$admin_login&password_login=$password_login لسببين:
الأول أنها ماراح تحتاجها أو تستعملها.. فقط تحتاج op=login
الثاني أنها ما راح تقدر عملياً أنها تضع المتغير داخلها بسبب أن المتغير لم يتم ضبطه بعد!
3- الكود التالي:
كود:
if($op=="login" & $ok ==1)
يجب إزالة & $ok ==1 لأن هذا الشرط لن يتحقق أبداً بطريقتك كما أنه ليس ذو فائدة
4- الكودين التاليين:
كود:
Setcookye("logincookyepassword",$password_login,time() + 3600);
Setcookye("logincookyeusername",$admin_login,time() + 3600);
كود:
setcookye("logincookyepassword",0,time()-3600);
setcookye("logincookyeusername",0,time()-3600);
الفنكشن غلط ليست setcookye وإنما s e t c o o k i e ( بدون المسافات اللي بين الحروف ).
المشكلة أن برنامج المنتدى يمنع من كتابة كلمة كوكي بالإنجليزي لدواعي أمنية .. لذا يبدو لي أنك نسختها من رد الأخ اللي عطاكياها ولصقتها بدون ماتعدلها...
لذلك انتبه تراها بحرف i وليس y
5- يجب إضافة الكود التالي:
كود:
echo "<meta http-equiv=\"Refresh\" content=\"0; URL=test.php\">";
بعد كل من الكودين السابقين لضبط الكوكيز، وفائدته أنه يسوي ريدايركت إلى الصفحة نفسها لغرض معين وهو تفعيل المتغيرات بعد حفظ الكوكيز.. لأن الكوكيز لما تحفظها ما تقدر تستعملها كمتغيرات في نفس الصفحة اللي حفظت فيها الكوكيز,, ونفس الشي مع حذف الكوكيز..
6- آخر تعديل.... تعديل مهم... لازم ترفع عمليات حفظ الكوكيز وتخليها قبل أي عملية طباعة على الشاشة.. يعني قبل ما يسوي أي عملية echo أو print .. والأفضل هنا أنك تخليها بأول البرنامج..
بعد التعديلات برنامجك بيصير كالتالي:
<?php
if($op=="login")
{
setcookye("logincookyepassword",$password_login,time() + 3600);
setcookye("logincookyeusername",$admin_login,time() + 3600);
echo "<meta http-equiv=\"Refresh\" content=\"0; URL=test.php\">";
}
else
if($op=="logout")
{
setcookye("logincookyepassword",0,time()-3600);
setcookye("logincookyeusername",0,time()-3600);
echo "<meta http-equiv=\"Refresh\" content=\"0; URL=test.php\">";
}
$ok=0;
if (($HTTP_COOKIE_VARS["logincookyepassword"]== "123") && ($HTTP_COOKIE_VARS["logincookyeusername"]== "abc")) $ok=1;
echo "<p align=\"center\"><font color=\"#FF0000\"><b>تحربة</b></font></p>";
if($ok == 1)
{
echo "<p align=\"center\"><font color=\"#FF0000\"><b><a href=\"test.php?op=logout\">خروج</a></b></font></p>";
}
else
{
echo "<form method=\"POST\" action=\"test.php?op=login\">\n";
echo " <table border=\"0\" width=\"47%\">\n";
echo " <tr>\n";
echo " <td width=\"34%\">المشرف</td>\n";
echo " <td width=\"71%\"><input type=\"text\" name=\"admin_login\" value=\"$admin_login\" size=\"8\" maxlength=\"8\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td width=\"34%\">الرقم السري</td>\n";
echo " <td width=\"71%\"><input type=\"password\" name=\"password_login\" value=\"$password_login\" size=\"8\" maxlength=\"8\"></td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " <p><input type=\"submit\" value=\"موافق\" name=\"B1\"> <input type=\"reset\" value=\"إلغاء الأمر\" name=\"B2\"></p>\n";
echo "</form>\n";
}
?>
ولا تنسى بعد ماتنسخ الكود ،، تعدل setcookye إلى s e t c o o k i e ( بدون المسافات اللي بين الحروف طبعاً ) ..
أتمنى أكون أفدتك
وشكراً
أخوك آهات