2011-11-07, 01:58 AM
|
#1
|
مبرمج المستحيل
تاريخ التسجيل: May 2010
الدولة: Libya
المشاركات: 2,924
معدل تقييم المستوى: 17
|
اصنع سكربت التسجيل بنفسك مع ربطه بي sql
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في هذا الدرس راح نتعلم صنع سكربت بسيط لتسجيل الدخول
وراح نصنع ثلاث ملفات :
* main_login.php
* checklogin.php
* login_success.php
وراح نتبع خمس خطوات فقط :
* نصنع قاعدة بيانات بإسم test و جدول بإسم members
* نصنع الملف main_login.php
* نصنع الملف checklogin.php
* نصنع الملف login_success.php
* واخيرا نصنع الملف logout.php
اولًا : نصنع جدول members في قاعدة البيانات ويكون تحت اسم القاعدة test على سبيل المثال
كود PHP:
CREATE TABLE `membres` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL,
`password` varchar(65) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
INSERT INTO `membres` VALUES (1, 'php', 'php');
اتمنى منكم إنشاء قاعدة البيانات بشكل يدوي للإستفاده
ثانيًا: نصنع ملف main_login.php وهو ملف لفورم تسجيل الدخول
كود PHP:
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"><tr>
<form name="form1" method="post" action="checklogin.php"><td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" dir="rtl"><tr>
<td colspan="3"><strong>تسجيل الدخول</strong></td></tr>
<tr>
<td width="74">اسم المستخدم</td>
<td width="4">:</td>
<td width="204"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>كلمة المرور</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="دخول"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
اهم شي في هذا الكود هو اسم التكتس اريا + اكشن الفورم
اكشن الفورم هو (checklogin.php) كما في الكود التالي
كود PHP:
<form name="form1" method="post" action="checklogin.php">
اسم التكتس اريا لإسم المستخدم هو (myusername) كما في الكود التالي
كود PHP:
<input name="myusername" type="text" id="myusername">
اسم التكتس اريا لكلمة المرور هي (mypassword) كما في الكود التالي
<input name="mypassword" type="password" id="mypassword">
ثالثًا: نصنع ملف checklogin.php وهو ملف للتحقق من اسم المستخدم والباسبورد
كود الملف هو
كود PHP:
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)**
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else **
echo "خطأ في اسم المستخدم او كلمة المرور";
}
?>
:: شرح الكود ::
كود PHP:
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
عمل الكود هو الاتصال بقاعدة البيانات بإمكان وضع ملف الاتصال في ملف مستقل عن الكود
على سبيل المثال نضع الكود السابق في ملف config.php
ونكتب في الملف السابق بدل هالكود
كود PHP:
include 'config.php';
الكود التالي
كود PHP:
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
عرفنا المتغيرات لإستقبال اليوزر والباسبورد من الفورم
كود PHP:
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
هنا عملنا حمايه بسيطه لسد ثغرة MySQL injection
كود PHP:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
في هذا الكود عملنا اتصال بجدول members داخل قاعدة بيانات test
كود PHP:
$count=mysql_num_rows($result);
if($count==1)**
Mysql_num_row هنا فائدتها يحسب الصفوف في الجدول
ويجب ان تكون نتيجة $myusername و $mypassword من نفس صف الجدول
كود PHP:
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else **
echo "خطأ في اسم المستخدم او كلمة المرور";
}
الكود يعطي امر بتسجيل $myusername و $mypassword ثم بعدها ينتقل لصفحة
login_success.php إذا كان اليوزر والباسبورد صحيحه
او يكتب (خطأ في اسم المستخدم او كلمة المرور) إذا كانت غير متطابقة
رابعًا: نصنع ملف login_success.php
كود الملف هو
كود PHP:
<?
session_start();
if(!session_is_registered(myusername))**
header("location:main_login.php");
}
?>
<html>
<body>
تم تسجيل الدخول بنجاح
</body>
</html>
هالكود يشيك إذا الجلسة لم تسجل يرجعنا لـ main_login.php
وإذا تم تسجيلها يكتب لنا (تم تسجيل الدخول بنجاح)
اخيرًا: نصنع ملف تسجيل الخروج logout.php
كود الملف هو
كود PHP:
<?
session_start();
session_destroy();
?>
|
|
|