المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طريقة عمل فورم تسجيل الاعضاء بلغة php فقط علي ليبيا ارس


عبسي الحمديني
2012-07-22, 07:01 PM
اليوم سوف اشرح لكم طريقة عمل عمل فورم تسجيل الاعضاء بلغة php
واليكم صورة الفورم:-

http://www13.0zz0.com/2012/05/24/21/116186607.png

ولا نقوم بأنشاء قاعدة بيانات

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">&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.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
خامسا نقوم بأنشاء ملف
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

MAD_MAN
2012-07-23, 07:41 AM
نايس يا مان