2011-11-07, 01:58 AM
			
			
		 | 
		
			 
			#1
			
		 | 
	
	| 
			
			 مبرمج المستحيل 
			
			
			
				
			
			
				 
				تاريخ التسجيل: May 2010 
				الدولة: Libya 
				
				
					المشاركات: 2,923
				 
				
				
				معدل تقييم المستوى:  18 
				
				     
			 
	 | 
	
	
	
		
		
			
			
				 
				اصنع سكربت التسجيل بنفسك مع ربطه بي 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();
 ?>
		
	 
  
 
 
 
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
	
		 
		
		
		
		
		 
	 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |