|
تطوير المواقع والمنتديات خاص بتصميم و تطوير المواقع على الشبكة العنكبوتية الإنترنت. |
|
أدوات الموضوع |
2012-07-22, 07:01 PM | #1 |
مبرمج المستحيل
تاريخ التسجيل: May 2010
الدولة: Libya
المشاركات: 2,924
معدل تقييم المستوى: 17 |
طريقة عمل فورم تسجيل الاعضاء بلغة 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 يجب ان نتصل في قاعدة البيانات ونحن هنا نكتب كود الاتصال في قاعدة البيانات من اجل تلك الاوامر التي سوف ننفذفها. وهنا الكود كود:
<? $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.libyars.com/! في الرابط التالي تفعيل عضويتك الرجاء النقر على الرابط لكي يتم تفعيل عضويتك. http://www.libyars.com/activate.php?id=$userid&code=$db_password هنا بيانات دخولك بعد تفعيل العضوية: أسم المستخدم: $username الرقم السري: $random_password شكراً لك! المدير العام يرجي عدم اعادة ارسال هذه الرسالة!"; mail($email_address, $subject, $message, "From: مجلة الدروس العربية<tsmim@tsmim.com>\nX-Mailer: PHP/" . phpversion()); echo 'تم ارسال بيانات دخولك بالاضافة الى رابط التفعيل! راجع بريدك!'; echo "****** HTTP-*****='*******' CONTENT='2;URL=index.html'>"; } ?>
__________________
|
2012-07-22, 07:02 PM | #2 |
مبرمج المستحيل
تاريخ التسجيل: May 2010
الدولة: Libya
المشاركات: 2,924
معدل تقييم المستوى: 17 |
خامسا نقوم بأنشاء ملف
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
__________________
|
2012-07-23, 07:41 AM | #3 |
مشرف عام
تاريخ التسجيل: Nov 2009
الدولة: Libya,Tripoli
المشاركات: 2,210
معدل تقييم المستوى: 17 |
نايس يا مان
__________________
سر الإبداع هو أن تعرف كيف تخفي مصادرك. السؤال الضبابي الذي يدفعني للجنون أحيانا: هل أنا المجنون أم الآخرين؟ اكونت الفيسبوكالمثقفون يأتون لحل المشاكل بعد وقوعها، والعباقرة يسعون لمنعها قبل أن https://www.facebook.com/darkofman3 |
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
كيف تعبي كروت ال تي تي ltt في الموقع ( حصريا على منتدى ليبيا ارس ) | MAD_MAN | مشاكل و حلول | 22 | 2012-06-24 02:35 PM |
ليبيا تعيش الحرية فى غياب الدين....خاص منتدى ليبيا ارس | BLOODY ROAR | مواضيع عامة | 19 | 2012-05-03 03:12 PM |
مبرمجين ليبيا ارس | عبسي الحمديني | تطوير المواقع والمنتديات | 0 | 2011-09-04 04:08 PM |
حصريا فى منتدى ليبيا ارس مصحف 3d | BLOODY ROAR | مواضيع إسلامية عامة | 2 | 2010-11-22 04:28 PM |
ليبيا ارس والبرمجة | عبسي الحمديني | اسئلة واستفسارات حاسوبية | 3 | 2010-11-21 03:20 PM |