استفسار بخصوص فورم تسجيل الدخول
مرحبا
عندي فورم تسجيل الدخول أريد أن أعرف هل هناك ضرورة لعمل حلقة while($rows = mysql_fetch_assoc($fuser))الكود الكامل <?php ob_start(); session_start(); include"config.php"; $muser = addslashes(strip_tags($_POST['uname'])); $mpass = addslashes(strip_tags($_POST['upass'])); if($muser && $mpass){ $fuser = mysql_query("SELECT * FROM m8_users WHERE username='".$muser."' AND password='".$mpass."'") or die("Error Mysql#10"); if(mysql_num_rows($fuser) != 0 ){ while($rows = mysql_fetch_assoc($fuser)){ $nname = stripslashes($rows['username']); $npass = stripslashes($rows['password']); } if($muser == $nname AND $mpass == $npass) { $_SESSION['sname'] = $nname; $_SESSION['spass'] = $npass; echo"<h4>Welcome ".$nname." to your Computer</h4>"; }else{ die("<h2>User Name Or Passord Is Not Correct!!</h2>"); } }else{ die("Not Found User"); } }else{ die("Not Found Page"); } ob_end_flush(); ?>
2 إجابات
أنا سويت الكود التالي و أريد رأيكم فيه الآن
<?php ob_start(); session_start(); include"config.php"; $muser = addslashes(strip_tags($_POST['uname'])); $mpass = addslashes(strip_tags($_POST['upass'])); if($muser && $mpass){ $fuser = mysql_query("SELECT * FROM m8_users WHERE username='".$muser."'") or die("Error Mysql#10"); $rows = mysql_fetch_array($fuser); $nname = $rows['username']; $salt = $rows['pass']; $password = md5(sha1(md5($mpass).$salt)); if($password == $rows['password'] && $nname == $rows['username'] && $salt == $rows['pass']) { $_SESSION['sname'] = $nname; $_SESSION['spass'] = $npass; echo"<h4>Welcome ".$nname." to your Computer</h4>"; }else{ die("<h2>User Name Or Passord Is Not Correct!!</h2>"); } }else{ die("Not Found User"); } ob_end_flush(); ?> بواسطة: hasan 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا عند عملية التسجيل يتم توليد رقم عشوائي مشفر و حفظه في جدول pass وهو ليس الباسورد و إنما فقط و هو رقم salt هذه بالفعل طريقة استعمال الـsalt انك تاتى به من الصف اولا ثم تتاكد منه ، عمل رائع ولكن لماذا تحفظ الباسورد فى السيشن؟ فقط يكفى رقم المستخدم فقط
هذا افضل حل لها من وجهة نظرى
if($row = mysql_fetch_array($fuser )){ $_SESSION['sname'] = $row['username']; $_SESSION['spass'] = $row['password']; echo"<h4>Welcome ".$nname." to your Computer</h4>"; }else{ die("<h2>User Name Or Passord Is Not Correct!!</h2>"); } بواسطة: علاء 4 من 4 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا لماذا تضيف الباسوورد لي session ؟ صراحة لا ادرى ، هذا الكود كله امره غريب يكفى عمل SESSION تمسى logged وبها رقم المستخدم نعم هذا يكفي |
ليس لهم اى فائدة فى هذه الحالة بالمرة
4 / يناير / 2012 الساعة 22:16
لكن ما فائدتها بالاساس
4 / يناير / 2012 الساعة 22:20
من اين اتيت بها؟ اعتقد من رابع المستحيلات ان يكون من اسكربت رسمى ، فكثيرا ما نرى اشخاص ليس لديهم الخبرة لعمل اسكربتات ونشرها لكى يتعلم منها الاخرون يفعلون ذلك ، وهذا خطا
4 / يناير / 2012 الساعة 22:23
في أحد شروحات موقع كليبرز ده الفيديو http://www.youtube.com/watch?v=HSvfLBTSwWM&feature=player_embedded#! و استغربت استعمال الحلقة و قلت أناقش الأمر هنا
4 / يناير / 2012 الساعة 22:31
الكود واضح انه غير احتراقى افضل طريقة لتعلم توثيق الاعضاء بالذات هى الدروس الانجليزية ، طريقة مثل المستعملة فى الورد برس او الphpbb او joomla اما هذا فهى بسيطة للغاية وكاتبها معرفته بالبرمجة محدودة على حد علمى والله اعلم
4 / يناير / 2012 الساعة 22:34
أنا لست محترف بالبرمجة و اكتشفت نفس الأمر
4 / يناير / 2012 الساعة 22:42
يكفى ان كلمة المرور غير مشفرة ، فالتشفير هذه الايام مهما كان معقد نخاف منه كثيرا فما بالك انه غير مشفر
4 / يناير / 2012 الساعة 22:43
فعلا و بمناسبة التشفير ما الأفضل, أن نستعمل md5 أو نستعمل تشفير خاص بنا + نعم لاحظت عدة شروحات في كليبرز ليست في المستوى و أستغرب الجائزة التي أخذها الموقع
4 / يناير / 2012 الساعة 22:56
لانه الاول وليس الاقوى ، اما بالنسبة للتشفير ففى حالة الاختراق مهما كان التشفير فكلمات المرور الخاصة باعضائك فى خطر ، لا يوجد تطبيق امن كليا مهما كان ، فنحن نحاول ان يكون فك كلمة المرور مرة اخرى امر صعب ، من الممكن استعمال md5 مع ادخال رمز عشوائى معها يدعى salt يختلف عن كل عضو ويسجل فى صف هذا العضو فى قاعدة البيانات حتى عند عملية تسجيل الدخول الجديدة ياتى هذه الـsalt ويكربها بنفس الطريقة الذى صنعها بها فى كلمة المرور الذى كتها ويشفرها ويبحث عنها ويسجل دخول
4 / يناير / 2012 الساعة 22:59
نعم ذي فكرة حلوة
4 / يناير / 2012 الساعة 23:4
انها المستعملة فى منتديات الفى بلتان vBulletin®
4 / يناير / 2012 الساعة 23:5
و لكن ماذا لو قمت ببرمجة دالة تقوم بتشفير كلمة المرور بطريقة معقدة لا يعلمها الا أنا, في هذه الحالة ستصعب عملية فك تشفيرها لأن دالة التشفير لا يعلمها سواي
4 / يناير / 2012 الساعة 23:9
ولكن ماذا لو الاختراق شمل الملفات؟
4 / يناير / 2012 الساعة 23:12
ولكن ايضا دالك من صعنك وتعتمد على دالة قوية مثل md5 يكون امن لان فى حالة الاختراق لا يوجد شىء امن
4 / يناير / 2012 الساعة 23:16
هو عموماً إذا تم الوصول الى ملفات الموقع يعني الموقع انتهى :)
4 / يناير / 2012 الساعة 23:17
بافعل ، ولكن وضع الباسورد دون اى تشفير وفى حالة سرقة الكوكيز سيكون شىء سىء
4 / يناير / 2012 الساعة 23:19
ده أكيد, أسعدني النقاش معك أخي
4 / يناير / 2012 الساعة 23:21
أنا سويت الكود بالاسفل يا ريث اشوف رايكم و اذا في اشياء تتعدل
5 / يناير / 2012 الساعة 21:49