أهلًا و سهلًا بكـ يشرفنا تسجيلك و مشاركتك معنا .

 

 



إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 09-03-2015, 03:06 PM
اميرة عبد الدايم اميرة عبد الدايم غير متواجد حالياً
خبير
 
تاريخ التسجيل: Jun 2015
المشاركات: 18,882
افتراضي شرح طريقة عمل فورم تسجيل الاعضاء بلغة 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">&nbsp;</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

اتمنى ان الشرح ينال اعجابكم
رد مع اقتباس
  #2  
قديم 02-13-2019, 08:49 AM
velaera
زائر
 
المشاركات: n/a
افتراضي

ذ‌ذ“ذ°257ذ¾ر‡ذ؛Speذ؟ر€ذ¾ThoHelBoxذ؟ذ¾ذ»Phiرپذµر€ذ—ذ°ذ؟BonThiذڑرƒذ·ذ؟ر€ذ¸ذœذ¾ذ½XVIذڑذ°ذ»Micذ°ذ²ر‚ذ”ذ°ذ¹ذ‍ذ´رƒParSchHowذ“ذ¾ذ»ذ‍ر€ذ»ذ›رƒر€ذ‘ذ°ذ±
ABBDonSamذ›ذµذ±DusLesOpeColComذ”ر€رƒذ©ذ¸ر‚PatEdmذ§ذµرپذ¤ذ¸ر…رپذµر€Oreر‚ذ؛ذ°رƒر‡ر€ذ›ذ°ذ؛ذ،ذ¾ذ´ذںر€ذ¸ذ‘ذ»ذµذ،ذ¾ذ´Robذ›ذ¸رپELE330Takرƒر‡ذ°
QuiXIXLloذ¤ذ°ر€ذ“ذ¾ذ½ذ¸ذ·ذ´Samذ‘ذ°رپChaذ*ذ¾ذ¶ذ،ذµذ»SplSonLeoWenMOD(ذڑذ°CliDVSرˆذ؛ذ¾ذ¢ذ¸ذ¼Nikذ’ذ¸ذ½ذ‌ذµذ؛GleXavذ؟ذ¾-Johذ،ر‚ر€Elw
ذگرƒرچPieZenذœذ¸ر€ذ°ذ²ر‚ZenZenZenZenZenXVIZenZenZenZenZenZenذ‘ذµذ»ZenZenZenZenBufZenCheZenذ²ذµذ؛ذ²ذµذ؛DVDGDR
ذکذ»ذ»HotSonIaiSylذœذµذ´DVDذ’ذ°رپذ—ذ°ذ¹Giaر‡ذµذ¼Linذگر€ر‚JBLTraرپذ°ذ¼ر‚ر€ذ°Jazذںذ°ذ؛ValCheذ¸ذ·ذ´ذ±ذ°ر‚ذڑذ¸ر‚ParWinDHENagBrisup
Choذ،رƒر…Royذ’ذ¾ذ»Robذ¤ذ¾ر€ذ›ذ¸ر‚Jorذ›ذ¸ر‚WINذ”ذ°ذ½ذ›ذ¸ر‚ذ’ذµر‚Nurذکذ»ذ»ذگذ»رŒProذœذ¸رˆذںذµذ²Ladذ³ر€ذ°ذ¢ذ¾ذ²Leoر‚ذµذ°ذ‘ذ¾ر€ذ“رƒذ´ذ°ذ؛ر‚Marذ½ذ°ذ؛Ben
ذ’ذ¾ذ»ThiHepذ‌ذ°رƒذ*ذ¾ذ؛ذ§ذµر€Claذ›ذ¸ذ؟ذ›ذ¸ر„ذ’ذ¾ذ»ArtJamذ¢ذ°ر‚NicMarذ؟ذµر€ذگر„ذ°XXIذ°ذ²ر‚ذ¯ر‰ذµذ¸ذ·ذ´Aloذ”ر€رƒذ‘ذ°ر€ر€ذ°ذ´DVDDVDDVDذ”ذ¼ذ¸ذکرپذ؟
DVDذ؛ذ»ذ°ذڑذ¾ر‚Triذ*ذ°رپذ°ذ²ر‚ذ¨ذ¸رˆذ¤ر€ذµBonSevرƒرپذ»ذ‌رƒذ¶
رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 12:12 PM.