|
صفحة تسجيل فى موقع
|
| sherif magdy |
المشاركة في 09-10-2009 15:05
|
المشاركات: 13
الاشتراك: 2009.09.29
|
هذا السكربت هو عبارة عن صفحة تسجيل فى موقع
وانا جاهز لشرح اى جزء غامض فى الكود مع انى اظن ان من تابع
الدروس سيفهمه
سنقوم بعمل صفحتين
الصفحة الاولى هى الصفحة الرئيسية التى يوجد بها فورم تسجيل الدخول و التسجيل فى الموقع ولكن
انا لم اكتب الا التسجيل فى الموقع
الصفحة الاولى اسمها
test.php
لقد قمت برفع الكود لاننى لم استطيع تنظيمة هنا
http://rapidshare...t.php.html
الصفحة الثانية
test1.php
http://rapidshare...1.php.html |
| |
|
|
| sherif magdy |
المشاركة في 10-10-2009 12:40
|
المشاركات: 13
الاشتراك: 2009.09.29
|
ما رأيكم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ |
| |
|
|
| Hussam |
المشاركة في 11-10-2009 02:17
|

المشاركات: 238
الاشتراك: 2008.06.13
|
السلام عليكم و رحمة الله
مشكور أخ شريف و كان الأولى أنك تشرح الكود بس مو مشكلة أنا راح أشرحه قبل التعديل و اعدل عليه و أشرحه بعد التعديل.
بما أنو صفحة تسجيل الدخول غير مكتمله ما راح أشرحها و ياريت يا أخ شريف متل ما قلت قبل تشرح بالتفصيل مو أنك تحط كود فقط، متل ما قلت قبل هذا المنتدى تعليمي مو لتصحيح الأكواد بقدر أنه لشرح الأكواد و تعليم الناس كيف تكتب كود و لازم الواحد يكون هو اللي كاتب الكود مو جايبه من برة.
الصفحة test1.php:
راح أعمل تعليقات على الكود سطر وراء سطر بس خليني أقول الغاية منه باختصار:
بالأول عمل شرط إذا كان المستخدم ضغط على زر التسجيل أم لا و إن ضغط ينشأ متحول اسمه $i و قيمته صفر و هو مثل عداد يعد الأخطاء و بعدها يفحص كل حقل إن كان فارغ أم لا و لو كان أي حقل من الحقول فارغ يعرض رسالة خطأ بأن الحقل فارغ و يزيد قيمة العداد بمقدار واحد و في النهاية وضع شرط أخير و هو إن كانت حقل الباسوورد متطابق مع حقل تأكيد الباسوورد و أيضاً يزيد العداد في حال عدم التطابق.
طبعاً العداد لن يزيد إلا في حال وجود خطأ و عند عدم وجود خطأ تبقى قيمة العداد صفر لذلك وضع شرط قبل الإتصال بقاعدة البيانات أن يكون قيمة العداد صفر و إن كانت صفر يتصل بقاعدة البيانات و ينشأ كويري و هو أمر SQL لإدخال المعلومات في قاعدة البيانات و يرسل الكويري إلى القاعدة فإن نجح الكويري وهو الشرط الأخير يعرض رسالة تم التسجيل بنجاح.
المرة الجاي أخ شريف ياريت تلصق الكود بالمنتدى لأنو رابيد شير ممكن يحذف الكود في أي وقت و لو التنسيق مو مزبوط لما تنسخة و تحطه بالمحرر عندك راح يكون الكود منسق، هذا هو الكود قبل التعديل و راح أعلق على كل سطر بالسطر اللي قبله:
نص برمجي
<!-- لن أعلق على كود إنشاء الفورم لأنه سهل و لكن كان المفروض أن يكون كود الفورم بعد كود الـ PHP -->
<h1><b><p align=middle>Register field</p></b></h1>
<form action =<?echo $_SERVER["PHP_SELF"] ?> method = post>
<table>
<tr>
<td>Name</td><td><input type=text name=username></td>
</tr>
<tr>
<td>password</td><td><input type=password name=password></td>
</tr>
<tr>
<td>confirm pass</td><td><input type=password name=cpassword></td>
</tr>
<tr>
<td>E-mail</td><td><input type=text name=mail></td>
</tr>
</table><br>
<input type=submit name=register value=register>
</form>
<?php
//افحص غن تم الضغط على زر التسجيل في الفورم
if(isset($_POST['register'])){
// أنشأ عداد و ضعه في متحول و اجعل له قيمة ابتدائية تساوي الصفر
$i=0 ;
//افحص إن كان حقل الإسم فارغ أم لا
if (empty($_POST['username'])) {
// إن كان فارغ اعرض رسالة خطأ
echo "<b>Username Field Is Empty</b><br>" ;
// قم بزيادة العداد بمقدار واحد إن كان الحقل فارغ
$i++ ;
}
//افحص إن كان حقل كلمة المرور فارغ أم لا
if(empty($_POST['password'])) {
// إن كان فارغ اعرض رسالة خطأ
echo "<b>Password Field Is Empty</b><br>" ;
// قم بزيادة العداد بمقدار واحد إن كان الحقل فارغ
$i++ ;
}
//افحص إن كان حقل تاكيد كلمة المرور فارغ أم لا
if(empty($_POST['cpassword'])) {
// إن كان فارغ اعرض رسالة خطأ
echo "<b>Confirm Pass Field Is Empty</b><br>";
// قم بزيادة العداد بمقدار واحد إن كان الحقل فارغ
$i++ ;
}
//افحص إن كان حقل البريد الإلكتروني فارغ أم لا
if(empty($_POST['mail'])) {
// إن كان فارغ اعرض رسالة خطأ
echo "<b>Mail Field Is Empty</b><br>";
// قم بزيادة العداد بمقدار واحد إن كان الحقل فارغ
$i++ ;
}
//افحص تطابق حقل كلمة المرور و تأكيد كلمة المرور
if( $_POST['password'] != $_POST['cpassword'] ) {
// اعرض رسالة خطأ في حال عدم التطابق
echo "<b>password wrong</b><br>" ;
// قم بزيادة العداد بمقدار واحد في حال عدم التطابق
$i++ ;
}
/*
تصميم قاعدة البيانات:
جدول واحد باسم users فيه الحقول التالية بالشكل التالي
TABLE user
+---------------+-------------------+-----------+---------+--------------+-----------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------------+-----------+---------+--------------+-----------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| pass | varchar(10) | YES | | NULL | |
| mail | varchar(20) | YES | | NULL | |
+-------------+--------------------+-----------+-------+---------------+-----------------------+
*/
// افحص إن كانت قيمة العداد تساوي الصفر يعني لا يوجد أخطأ أو حقول فارغة
if ($i == 0) {
// اتصل بقاعدة البيانات
$connect=@mysql_pconnect("localhost","root","") or die(mysql_error()) ;
// اختر القاعدة
$db=@mysql_select_db("inf") or die(mysql_error()) ;
// قم بإنشاء الكويري
$query="insert into users (name,pass,mail) values " ;
// تكملة الكويري
$query.="('$username' , '$password' , '$mail') " ;
// إرسال الكويري إلى قاعدة البيانات
$result=@mysql_query($query) or die(mysql_error()) ;
// عند النجاح في إرسال الكويري أي النجاح في إدخال البيانات إعرض رسالة نجاح التسجيل
if($result) echo "<b>register succed</b>" ;
}
}
?>
التعليق على الكود:
عدم الإلتزام بقواعد XHTML في صناعة الفورم و هو أن تكون قيمة كل خاصية بين علامتي إقتباس و التاك الذي ليس له تاك آخر ينهيه يجب أن ينهي نفسه بنفسه بوضع / قبل اغلاق التاك، كمثال انظر التالي:
الكود الخطأ:
<input type=submit name=register value=register>
الكود المثالي:
<input type="submit" name="register" value="register" />
وضع الفورم قبل كود الـ PHP ليس له معنى، و كان الأفضل إلا يظهر الفورم إلا في حالة زيارة الصفحة لأول مرة، أما بعد الضغط على زر التسجيل لا داعي لظهور الفورم، اتبع الطريقة التي اتبعتها في درس عمل الآلة الحاسبة، عند الضغط على زر التسجيل لا يجب أن يظهر الفورم.
لا داعي للعداد أبدا لعدم تعقيد الكود كان من الممكن وضع رسالة خطأ افتراضية فارغة ثم إضافة أي خطأ يمكن أن يحصل عليها و من ثم عرضها في الآخر عند وجود خطأ.
استعمل الفانكشنز الجاهزة في PHP لتحويل كلمة السر و تأكيدها إلى أحرف صغيرة قبل المقارنة و إدخالها في قاعدة البيانات لأن المستخدم ربما يدخلهم بأحرف صغيرة و كبيرة معاً ثم ينسى ذلك فيما بعد، و استعمل عند المقارنة فانكشن جاهزة في PHP قمت بشرحها في أحد دروس الفانكشنز الجاهزة الخاصة بالنصوص.
استعمال mysql_pconnect بدل mysql_connect أمر ممتاز لأنه يفتح الإتصال إلا في حال عدم وجود اتصال بالقاعدة من قبل و يبقيه مفتوح و تقريباً الإتصال بقاعدة البيانات يعتبر من أبطأ الفانكشنز في الـ PHP لذلك من الأفضل استعمال هذه الدالة باختصار: في حال وجود اتصال لا تنشأ اتصال غيره بل استعمل الإتصال الموجود مسبقاً و لكن ربما تبطأ العملية أحياناً لأنه يجب عليه في كل مرة أن يفحص إن كان هناك اتصال أم لا و هذا على كل حال أسرع من إنشاء اتصال جديد.
لا داعي لفصل الكويري في سطرين أبداً في هذه الحالة.
أترك لك كتابة الكود بعد أن تقرأ التعليق عليه و تتبع التعليمات اللي قلتلك عليها و من ثم أحسن الكود أكثر و سأضع الكود تحت موضوعك، بس ياريت الشرح يكون أوفى و بالعربي أخ شريف.
السلام عليكم و رحمة الله
عدل بواسطة Hussam في 11-10-2009 14:54
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| Hussam |
المشاركة في 11-10-2009 02:37
|

المشاركات: 238
الاشتراك: 2008.06.13
|
بالنسبة لصفحة تسجيل الدخول اللي هي الصفحة test.php الكود كله غير جيد لأنه باختصار كود HTML داخل تاك PHP على شكل طباعة و ما كان في داعي لأمر echo أصلاً و ما في داعي تحطه داخل تاك PHP و هو كله HTML.
هذا هو الكود:
نص برمجي<?
echo "<b><p align = middle color=red><font size = 6>Script</font></p><b>" ;
echo "<form method=post action=login.php>
<table>
<tr>
<td>Username</td>
<td><input type=text name=username></td>
</tr>
<tr>
<td>Password</td>
<td><input type=password name=password></td>
</tr>
</table>
<input type=submit name=login value=login>
<font size=2>To Register Press <a href=test1.php>Here</a></font></form><hr><hr>" ;
?>
أعطيك ملاحظة تفيدك، لا تضع الـ HTML داخل الـ PHP بل إفعل العكس، إلا في حالات الضرورة و التزم بقواعد XHTML أنت أهملتها في الصفحة التانية اللي هي test.php كما أهملتها في الصفحة الأولى.
عدل بواسطة Hussam في 11-10-2009 03:18
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| Hussam |
المشاركة في 11-10-2009 02:51
|

المشاركات: 238
الاشتراك: 2008.06.13
|
على كل حال أخي أنا راح أعمل درس اليوم أو بكرة عن التشفير استنى الدرس ينزل قبل ما تحط الكود بعد التعديل لأنو بدي تشفر كلمة المرور قبل ما تروح على الداتا بيس مشان إذا حصل اختراق للداتا بيس ما يقدر أحد يعرف كلمات المرور و مشان المشرفين على الموقع ما يعرفوا كلمات مرور المستخدمين.
بالتوفيق.
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| sherif magdy |
المشاركة في 11-10-2009 14:45
|
المشاركات: 13
الاشتراك: 2009.09.29
|
اشكرك على الملاحظات و سأعمل بها ان شاء الله
|
| |
|
|
| sherif magdy |
المشاركة في 13-10-2009 15:30
|
المشاركات: 13
الاشتراك: 2009.09.29
|
قمت بعمل بعض التعديلات منها
1- الاتزام بقواعد xhtml قدر الامكان
2- اظهار رساله خطأ اذا كان االاسم موجود من قبل
3- تشفير كلمة المرور قبل اظهارها
وان شاء الله سأبدأ ببعض الميزات الجديدة
منها ارسال ايميال بعد التسجيل
و التحقق من المدخلات بواسطة الدالة ereg
للحماية من ثغرات sql
الملف الاول
http://rapidshare...t.php.html
الثانى
http://rapidshare...1.php.html
lمنتظر رايك معلمى حسام |
| |
|
|
| Hussam |
المشاركة في 13-10-2009 16:35
|

المشاركات: 238
الاشتراك: 2008.06.13
|
طيب راح أحمل الكود و أشوفه و أرد عليك.
المرة الجاية حط الكود بالمنتدى مشان اللي يفتح الموضوع يشوف الكود فوراً و كمان الرابيد شير ممكن يحذفه.
تذكر دائماً مقولتي الشهيرة "لو كان الرابيد شير رجلاً لقتلته"
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| sherif magdy |
المشاركة في 14-10-2009 06:28
|
المشاركات: 13
الاشتراك: 2009.09.29
|
نص برمجي<html>
<head>
<title>script</title>
</head>
<body>
<b><p align = "middle" color="red"><font size = 6>Script</font></p><b>
<form method="post" action="login.php">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" /></td>
</tr>
</table>
<input type="submit" name="login" value="login" />
<font size=2>To Register Press <a href="test1.php">Here</a></font></form><hr><hr>
</body>
</html>
نص برمجي<html>
<head>
<title>register</title>
</head>
<body>
<h1><b><p align=middle>Register field</p></b></h1><hr><hr>
<form action =<?echo $_SERVER["PHP_SELF"] ?> method = post>
<table>
<tr>
<td>Name</td><td><input type=text name=username></td>
</tr>
<tr>
<td>password</td><td><input type=password name=password></td>
</tr>
<tr>
<td>confirm pass</td><td><input type=password name=cpassword></td>
</tr>
<tr>
<td>E-mail</td><td><input type=text name=mail></td>
</tr>
</table><br>
<input type=submit name=register value=register>
</form>
<?php
if(isset($_POST['register'])){
$i=0 ;
//check the input if it empty or no
if (empty($_POST['username'])) {
echo "<b>Username Field Is Empty</b><br>" ;
$i++ ;
}
if(empty($_POST['password'])) {
echo "<b>Password Field Is Empty</b><br>" ;
$i++ ;
}
if(empty($_POST['cpassword'])) {
echo "<b>Confirm Pass Field Is Empty</b><br>";
$i++ ;
}
if(empty($_POST['mail'])) {
echo "<b>Mail Field Is Empty</b><br>";
$i++ ;
}
//check the password if it the same confirm pass
if( $_POST['password'] != $_POST['cpassword'] ) {
echo "<b>password wrong</b><br>" ;
$i++ ;
}
/*
DATABASE inf
TABLE user
+---------------+-------------------+-----------+---------+--------------+-----------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------------+-----------+---------+--------------+-----------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| pass | varchar(10) | YES | | NULL | |
| mail | varchar(20) | YES | | NULL | |
+-------------+--------------------+-----------+-------+---------------+-----------------------+
*/
if ($i == 0) {
$connect=@mysql_pconnect("localhost","root","") or die(mysql_error()) ;
$db=@mysql_select_db("inf") or die(mysql_error()) ;
$q="select count(*) from users where name='$_POST[username]'" ;
$a=mysql_query($q) ;
$b=mysql_fetch_array($a) ;
if($b[0] != 0 ) {
echo "<b>name already exist</b>" ;
exit ;
}
$query="insert into users (name,pass,mail) values " ;
$query.="('$_POST[username]' , sha1(md5('$_POST[password]')) , '$_POST[mail]') " ;
$result=@mysql_query($query) or die(mysql_error()) ;
if($result) echo "<b>register succed</b>" ;
}
}
?>
</body>
</html>
|
| |
|
|
| sherif magdy |
المشاركة في 14-10-2009 06:30
|
المشاركات: 13
الاشتراك: 2009.09.29
|
وعندى طلب اخير ارجوا
اضافة كود php فى خيارات التنظيم
مثل المنتديات الاخرى لنستطيع مناقشة الاكواد بسهولة دون رفعها او
وضعها فى محرر
فانا الكود يظهر عندى من اليمين الى اليسار
ويكون غير ملون
|
| |
|
|
| Hussam |
المشاركة في 17-10-2009 03:16
|

المشاركات: 238
الاشتراك: 2008.06.13
|
أنا شايف أنك ما طبقت اللي قلتلك عليه بالصفحة التانية أخي.
أخطاء XHTML و كما قلت لك لا داعي للعداد لأنه زيادة في الكود، ممكن أن تستغني عنه و تتفحص الأخطاء بطريقة أسهل.
بالنسبة لتلوين الكود تعرف أخي أن هذا المنتدى ليس كباقي المنتديات و هي أغلبها VB أما هذا فهو برمجية مختلفة هو عبارة عن سكربت أخبار و إدارة محتوى و لكن أنا قمت بتعريبه و أضفت عليه بعض الإضافات و التعديلات ليناسب محتويات موقعي و لكي أستفيد من باقي المزايا في البحث و مركز التحميل و معرض الصور و التعليقات و غيرها كثير من المزايا لكنني منذ فترة لم أحدث النسخة لأنه أظن أنني بحاجة لتعريب النسخة الأحدث و أنتظر نزول نسخة فيها تغييرات جذرية و أقوم بتعريبها و تعديلها مرة أخرى حتى لا يضيع الوقت في تعريب نسخ ليست مختلفة كثيراً عن هذه النسخة.
السلام عليكم
عدل بواسطة Hussam في 17-10-2009 03:20
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| sherif magdy |
المشاركة في 20-10-2009 11:10
|
المشاركات: 13
الاشتراك: 2009.09.29
|
السلام عليكم
انا قمت بعمل بعض التعديلات و اكمال بعض الاساسيات وبعدها سأبدأ
بتنظيم الكود كلة و احاول تنفيذ كل ما قلتة وهذا انشاء الله اخر
اضافة ثم ابدأ بتنظيم جميع الصفح
الصفحة االولى
نص برمجي<html>
<head>
<title>script</title>
</head>
<body>
<?
if(isset($user)){
echo "you are now online" ;
}
else{
?>
<b><p align = "middle" color="red"><font size = 6>Script</font></p></b>
<form method="post" action="test2.php">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" /></td>
</tr>
</table>
<input type="submit" name="login" value="login" />
<font size=2>To Register Press <a href="test1.php">Here</a></font></form><hr /><hr />
<?
}
?>
</body>
</html>
بالنسبة للمتغير $user
فهو خاص بالكوكيز قمت باضافتها لكى لا يتم تسجيل الدخول كل مرة
وسوف اشرحه فى الصفحة الثالثة
الصفحة الثانية
نص برمجي<html>
<head>
<title>register</title>
</head>
<body>
<?php
if(isset($_POST['register'])){
$message="" ;
//check the input if it empty or no
if (empty($_POST['username'])) {
$message.="<b>Username Field Is Empty</b><br />" ;
}
if(empty($_POST['password'])) {
$message.= "<b>Password Field Is Empty</b><br />" ;
}
if(empty($_POST['cpassword'])) {
$message.="<b>Confirm Pass Field Is Empty</b><br>";
}
if(empty($_POST['mail'])) {
$message.="<b>Mail Field Is Empty</b><br>";
}
//check the password if it the same confirm pass
if(strcmp($_POST['password'] , $_POST['cpassword']) ) {
$message.="<b>password wrong</b><br>" ;
}
echo $message ;
/*
DATABASE inf
TABLE user
+---------------+-------------------+-----------+---------+--------------+-----------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------------+-----------+---------+--------------+-----------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
| pass | varchar(10) | YES | | NULL | |
| mail | varchar(20) | YES | | NULL | |
+-------------+--------------------+-----------+-------+---------------+-----------------------+
*/
if ($message == "") {
$connect=@mysql_pconnect("localhost","root","") or die(mysql_error()) ;
$db=@mysql_select_db("inf") or die(mysql_error()) ;
$q="select count(*) from users where name='$_POST[username]'" ;
$a=mysql_query($q) ;
$b=mysql_fetch_array($a) ;
if($b[0] != 0 ) {
echo "<b>name already exist</b>" ;
exit ;
}
$name=strtolower("$_POST[username]") ;
$pass=md5(strtolower("$_POST[password]")) ;
$query="insert into users (name,pass,mail) values ('$name' , '$pass' ,'$_POST[mail]')" ;
$result=@mysql_query($query) or die(mysql_error()) ;
if($result) echo "<b>register succed</b>" ;
}
}
else{
?>
<h1><b><p align="middle">Register field</p></b></h1><hr/><hr/>
<form action =<?echo $_SERVER["PHP_SELF"] ?> method = "post">
<table>
<tr>
<td>Name</td><td><input type="text" name="username" /></td>
</tr>
<tr>
<td>password</td><td><input type="password" name="password" /></td>
</tr>
<tr>
<td>confirm pass</td><td><input type="password" name="cpassword" /></td>
</tr>
<tr>
<td>E-mail</td><td><input type="text" name="mail" /></td>
</tr>
</table><br>
<input type="submit" name="register" value="register" />
</form>
<?}?>
</body>
</html>
الصفحة الجديدة
نص برمجي<?
if(isset($_POST['login'])) {
//اختبار اذا كان المستخدم قد ضغط على زر دخول لتنفيذ هذا الكود
$c=mysql_pconnect("localhost","root","") ;
//الاتصال بالقاعدة
mysql_select_db("inf");
//تحديد قاعدة البيانات المطلوب العمل عليها
$q="select name from users where ";
$q.="name = '$_POST[username]' and pass=md5('$_POST[password]') " ;
//هذا هو الاستعلام وهو يتأكد اذا كان الاسم قى قاعدة البيانات ويقوم بتشفير الباسورد قبل المفقارنة
$quering=mysql_query($q) ;
//تنفيذ الاستعلام
$result = mysql_fetch_array($quering) ;
//وضع الناتج فى مصفوفة تسمى $result
if ($result[0] != $_POST['username'] || empty($_POST['username'])){
//التأكد من ناتج المصفوفة اذا كانت لا تساوى الاسم اذا كانت احدى الخانات فارغةلانة اذا كانت الخانتين فارغتين فلن يطبع الرسالة الاتيه
echo "username or password is wrong" ;
}
elseif($result[0] == $_POST['username']) {
//وهذا الشرط يقول اذا كانت ناتج المصفوفة يساوى الاسم يقوم بعمل الاتى
setcookie("user",$_POST['username'] ,time()+60) ;
//هذه الدالة لعمل كوكيز و تأخذ ثلاث براميترات الاول هو اسم الكوكيز و الثانى هو قيمتة و الثالث هو مده عمله
//اذا اردت معرفة تفاصيل هذه الدالة عليك بموقع
//www.php.net
echo "YoU ArR NoW LoggeD IN<br />return to <a href='test.php'>homepage</a>" ;
}
}
?>
عدل بواسطة sherif magdy في 20-10-2009 11:14 |
| |
|
|
| sherif magdy |
المشاركة في 23-10-2009 09:05
|
المشاركات: 13
الاشتراك: 2009.09.29
|
ما هو رأيك حتى الان فى الكود
منتظر رأيك |
| |
|
|
| Hussam |
المشاركة في 25-10-2009 03:07
|

المشاركات: 238
الاشتراك: 2008.06.13
|
حتى الآن لا بأس أخي الغالي، يعني كبداية شيء جميل.
إن شاء الله في دروس لوحة التحكم الخاصة بسكربت الزوار التي سأعملها قريباً يكون هناك طرق أسهل و عملية نوعاً ما بالنسبة لتسجيل الدخول.
ملاحظة حاول أن تتبعها دائماً و هي أن تكتب الكود بحيث تستطيع استعماله فيما بعد، يعني حاول أن تحول ما يمكن تحويله إلى فانكشنز و نقله لملف آخر و تسمية الفانكشن و المتحولات أسماء مناسبة و تستعملها في الصفحة و عند ذلك يسهل استعمال نفس الفانكشن في المشاريع التي ستبرمجها بعد أن ينتهي برنامجك هذا مثلاً، يعني اعتمد قاعدة معينة و حاول أن تنشئ مكتبة فانكشنز خاصة بك و لو صغيرة تستعين بها في برامجك المستقبلية حتى لا تعيد كتابة نفس الكود أو أكواد مشابهة مرة أخرى.
بالتوفيق.
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|