أهلًا و سهلًا بكـ يشرفنا تسجيلك و مشاركتك معنا .
#1
|
|||
|
|||
شرح طريقة عمل فورم تسجيل الاعضاء بلغة php
اليوم سوف اشرح لكم طريقة عمل عمل فورم تسجيل الاعضاء بلغة php واليكم صورة الفورم:- اولا نقوم بأنشاء قاعدة بيانات كود: CREATE TABLE users ( userid int(25) NOT NULL auto_increment, first_name varchar(25) NOT NULL default '', last_name varchar(25) NOT NULL default '', email_address varchar(25) NOT NULL default '', username varchar(25) NOT NULL default '', password varchar(255) NOT NULL default '', info text NOT NULL, user_level enum('0','1','2','3') NOT NULL default '0', signup_date datetime NOT NULL default '0000-00-00 00:00:00', last_login datetime NOT NULL default '0000-00-00 00:00:00', activated enum('0','1') NOT NULL default '0', PRIMARY KEY (userid) ) TYPE=MyISAM COMMENT='Membership Information'; ==================================== ثانيا انشا ملف db.php ما فائدة هذا الملف : من المعروف انه اي عملية تنفيذ سواءً حذف او تعديل ادخال بيانات او اي عملية اخرى كود PHP:قبل التنفيذ في لغة الــ php يجب ان نتصل في قاعدة البيانات ونحن هنا نكتب كود الاتصال في قاعدة البيانات من اجل تلك الاوامر التي سوف ننفذفها. وهنا الكود <? $dbhost = 'localhost'; $dbusername = 'هنا اكتب اسم المستخدم'; $dbpasswd = 'هنا اكتب الرقم السري'; $database_name = 'هنا اكتب اسم قاعدة البيانات'; /* Database Stuff, do not modify below this line */ $connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd") or die ("لم يتم الاتصال السيفر."); $db = mysql_select_db("$database_name", $connection) or die("لم يتم اختيار قاعدة البيانات هناك مشكلة."); ?> ==================================== ثالثا نقوم بأنشاء ملف join_form.php وهنا راح يدخل العضو كامل بياناته المطلوبة اثناء التسجيل ومن ثم راح ترسل بياناته المدخلة الى صفحة تسمى بــ register.php لكي يتم معالجتها وتصحيح الاخطاء وفي حال عدم وجود اي اخطاء راح يتم تسجيل العضو الجديد وراح يتم ارسال الرقم السري له عن طريق البريد كود PHP:ومن هناك ايضاً راح يرسل له رابط تفعيل الاشتراك <body dir="rtl"> <div id="head"> <ul id="menu"> <li><a class="current" href="index.html" title="">الرئيسية</a></li> </ul> </div> <h1>استمارة التسجيل</h1> <form name="form1" method="post" action="register.php"> <table width="450" border="1" cellpadding="4" cellspacing="0"> <tr> <td width="24%" align="left" valign="top">الاسم الاول</td> <td width="76%"><input name="first_name" type="text" id="first_name2" value="<? echo $first_name; ?>"></td> </tr> <tr> <td align="left" valign="top">الاسم الاخير</td> <td><input name="last_name" type="text" id="last_name" value="<? echo $last_name; ?>"></td> </tr> <tr> <td align="left" valign="top">البريد الالكتروني</td> <td><input name="email_address" type="text" id="email_address" value="<? echo $email_address; ?>"></td> </tr> <tr> <td align="left" valign="top">اسم المستخدم</td> <td><input name="username" type="text" id="username" value="<? echo $username; ?>"></td> </tr> <tr> <td align="left" valign="top">نبذة عنك اختياري:</td> <td><textarea name="info" id="info"><? echo $info; ?></textarea></td> </tr> <tr> <td align="left" valign="top"> </td> <td><input type="submit" name="Submit" value="تسجيل"></td> </tr> </table> </form> </body> ==================================== رابعا نقوم بأنشاء ملف register.php وهذا الصفحة عملها معالجة المدخلات بالتأكد من انها صالحة لكي تدخل في جدول اليوزر كود PHP: <? include 'db.php'; // تعريف المتغيرات $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email_address = $_POST['email_address']; $username = $_POST['username']; $info = $_POST['info']; // حماية المدخلات $first_name = stripslashes($first_name); $last_name = stripslashes($last_name); $email_address = stripslashes($email_address); $username = stripslashes($username); $info = stripslashes($info); /* التحقق من كتابة الحقول */ if((!$first_name) || (!$last_name) || (!$email_address) || (!$username)){ echo 'يجب ملأ جميع الحقول! <br />'; if(!$first_name){ echo "لم تكتب أسم المستخدم.<br />"; } if(!$last_name){ echo "لم تكتب الأسم الاخير.<br />"; } if(!$email_address){ echo "لم تكتب البريد.<br />"; } if(!$username){ echo "أكتب أسم المستخدم.<br />"; } include 'join_form.php'; // Show the form again! /* End the error checking and if everything is ok, we'll move on to creating the user account */ exit(); // if the error checking has failed, we'll exit the script! } /* هنا راح نتأكد من انه الاسم والايميل غير محجوزان */ $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'"); $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'"); $email_check = mysql_num_rows($sql_email_check); $username_check = mysql_num_rows($sql_username_check); if(($email_check > 0) || ($username_check > 0)){ echo "هناك أخطاء: <br />"; if($email_check > 0){ echo "<strong>هذا البريد مستخدم من قبل!<br />"; unset($email_address); } if($username_check > 0){ echo "هذا الأسم تم اختياره من قبل!<br />"; unset($username); } include 'join_form.php'; // Show the form again! exit(); // exit the script so that we do not create this account! } // انشاء باسورد مشفر بطريقة احترافية لكي سوف يتم ارسالة للعضو لاحقاً function makeRandomPassword() { $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $random_password = makeRandomPassword(); $db_password = md5($random_password); // هنا سوف يتم ادخال جميع الحقول الى الجدول. $info2 = htmlspecialchars($info); $sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date) VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now())") or die (mysql_error()); if(!$sql){ echo 'هناك مشكلة فضلاً اتصال بالمدير العام لكي تخبره عن مشكلتك في التسجيل.'; } else { $userid = mysql_insert_id(); // Let's mail the user! $subject = "بيانات تسجيل دخول "; $message = "عزيزي $first_name$last_name, نشكرك لتسجيل في موقعنا, http://www.tsmim.com/! في الرابط التالي تفعيل عضويتك الرجاء النقر على الرابط لكي يتم تفعيل عضويتك. http://www.tsmim.com/activate.php?id=$userid&code=$db_password هنا بيانات دخولك بعد تفعيل العضوية: أسم المستخدم: $username الرقم السري: $random_password شكراً لك! المدير العام يرجي عدم اعادة ارسال هذه الرسالة!"; mail($email_address, $subject, $message, "From: مجلة الدروس العربية<[email protected]>\nX-Mailer: PHP/" . phpversion()); echo 'تم ارسال بيانات دخولك بالاضافة الى رابط التفعيل! راجع بريدك!'; echo "****** HTTP-*****='*******' CONTENT='2;URL=index.html'>"; } ?> ==================================== خامسا نقوم بأنشاء ملف checkuser.php كود PHP:بعد ما العضو يدخل اسم المستخدم والرقم السري يتم التأكد من تسجيل دخوله وهنا الكود <? @session_start(); ?> <? /* اذا كان هناك جلسة مسجلة لأسم العضو */ if ($_SESSION['username'] || $_SESSION['password']) { include ("login_success.php"); }else{ include 'db.php'; // Conver to simple variables $username = trim($_POST['username']); $password = $_POST['password']; if((!$username) || (!$password)){ echo "<BR><center><B><a href='**********:history.back()'>اسم المستخدم او الرقم السري لم يدخل فضلاً انقر هنا للعودة للخلف</a>"; exit(); } // Convert password to md5 hash $password = md5($password); // check if the user info validates the db $sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"); $login_check = mysql_num_rows($sql); if($login_check > 0){ while($row = mysql_fetch_array($sql)){ foreach( $row AS $key => $val ){ $$key = stripslashes( $val ); } // Register some session variables! $_SESSION['userid'] = $userid; $_SESSION['username'] = $username; $_SESSION['password'] = $password; $_SESSION['first_name'] = $first_name; $_SESSION['last_name'] = $last_name; $_SESSION['email_address'] = $email_address; $_SESSION['user_level'] = $user_level; mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'"); include ("login_success.php"); } } else { echo "<BR><center><B><a href='**********:history.back()'>لم تسجل دخولك كعضو ! او اسم المستخدم او الرقم السري فيهما اغلاظ او لم يتم التحقق من عضويتك <br />يرجب المحاولة مرة أخرى!<br /></a>"; }} ?> ==================================== سادسا نقوم بأنشاء ملف login_success.php كود PHP:في حالة اذا العضو اتم دخوله بنجاح <? include ("sesstion.php"); echo '<body dir="rtl">'; /** العضويات كالتالي : 0 = عضو غير مفعل 1 = عضو عادي 2 = مشرف 3 = مدير عام **/ echo "أهلاً وسهلاً : <b>$first_name$last_name <BR />"; echo "اسم المستخدم : $username <BR />"; echo "بريدك هو : $email_address <BR />"; echo "تاريخ التسجيل : $signup_date <BR />"; echo "التوقيع : $info <BR />"; echo "<br /><a href=logout.php>تسجيل الخروج</a> || <a href=change_pass.php?userid=$userid>تغير الرقم السري</a>"; ?> </body> ==================================== سابعا نقوم بأنشاء ملف sesstion.php كود PHP:وهى صفحة تسجيل الجلاسات <? @session_start(); $_SESSION['userid'] = $userid; $_SESSION['username'] = $username; $_SESSION['password'] = $password; $_SESSION['first_name'] = $first_name; $_SESSION['last_name'] = $last_name; $_SESSION['email_address'] = $email_address; $_SESSION['user_level'] = $user_level; ?> <? if ($_SESSION['username'] || $_SESSION['password']) { if ($_SESSION['user_level'] == 3){ echo "<h1>رتبك : أنت مدير عام</h3>"; } if ($_SESSION['user_level'] == 2){ echo "<h1>رتبتك : أنت مشرف</h3>"; } if ($_SESSION['user_level'] == 1){ echo "<h1>رتبتك : أنت عضو</h3>"; } }else{ include('index.html'); } ?> ==================================== ملحوظة هامة جدا:- ان الفورم لا يعمل على سيرفر اللوكل هوست نظرا لعدم وجود سيرفر يسمى smtp لكن الفورم يعمل على السيرفرات المدعمة بهذا السيرفر smtp اتمنى ان الشرح ينال اعجابكم
__________________
|
|
|