ساخت سیستم عضویت با استفاده از
php/mysql
[FONT=Times New Roman (Arabic)]قدم اول[/FONT] < [FONT=Times New Roman (Arabic)]طراحي جدول اطلاعات كاربر[/FONT] >
[FONT=Times New Roman (Arabic)]روي ديتا بيس سرور سايتتون جدول اطلاعات زير رو تشكيل بدين[/FONT]
[FONT=Times New Roman (Arabic)]روي ديتا بيس سرور سايتتون جدول اطلاعات زير رو تشكيل بدين[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
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(255) NOT NULL default '',
username varchar(25) NOT NULL default '',
password varchar(255) NOT NULL default '',
info text NOT NULL,
signup_date datetime NOT NULL default '0000-00-00 00:00:00',
activated enum('0','1') default NULL,
decrypted_password varchar(255) NOT NULL default '',
PRIMARY KEY (userid),
UNIQUE KEY username (username)
) TYPE=MyISAM COMMENT='MyCompany Membership Information';
[FONT=Times New Roman (Arabic)]در قدم بعدي بايد اطلاعاتي كه توسط يك فرم از[/FONT] [FONT=Times New Roman (Arabic)]كاربر دريافت شده به برنامه ايجاد كاربر فرستاده و يك ركورد براي اون ايجاد كنيم[/FONT]
[FONT=Times New Roman (Arabic)]توجه داشته باشين كه فرم دريافت اطلاعات در هر محيطي قابل پيادهسازيه[/FONT]
[FONT=Times New Roman (Arabic)]با توجه به نياز تون ميتونيد اين فرم رو توي فلش بسازيد و اطلاعات اونو به[/FONT] [FONT=Times New Roman (Arabic)]فايل[/FONT] php [FONT=Times New Roman (Arabic)]بفرستيذ[/FONT]
[FONT=Times New Roman (Arabic)]يا[/FONT]
[FONT=Times New Roman (Arabic)]ميتونيد با استفاده از كدهاي[/FONT] html [FONT=Times New Roman (Arabic)]اين فرم رو ايجاد[/FONT] [FONT=Times New Roman (Arabic)]كرده و اطلاعاتشو به فايل[/FONT] php [FONT=Times New Roman (Arabic)]ارسال كنيد[/FONT]
[FONT=Times New Roman (Arabic)]در زير نحوه ايجاد يك فرم[/FONT] [FONT=Times New Roman (Arabic)]براي دريافت اطلاعات با استفاده از دستورات[/FONT] html [FONT=Times New Roman (Arabic)]نشون داده شده[/FONT]:
[FONT=Times New Roman (Arabic)]توجه داشته باشين كه فرم دريافت اطلاعات در هر محيطي قابل پيادهسازيه[/FONT]
[FONT=Times New Roman (Arabic)]با توجه به نياز تون ميتونيد اين فرم رو توي فلش بسازيد و اطلاعات اونو به[/FONT] [FONT=Times New Roman (Arabic)]فايل[/FONT] php [FONT=Times New Roman (Arabic)]بفرستيذ[/FONT]
[FONT=Times New Roman (Arabic)]يا[/FONT]
[FONT=Times New Roman (Arabic)]ميتونيد با استفاده از كدهاي[/FONT] html [FONT=Times New Roman (Arabic)]اين فرم رو ايجاد[/FONT] [FONT=Times New Roman (Arabic)]كرده و اطلاعاتشو به فايل[/FONT] php [FONT=Times New Roman (Arabic)]ارسال كنيد[/FONT]
[FONT=Times New Roman (Arabic)]در زير نحوه ايجاد يك فرم[/FONT] [FONT=Times New Roman (Arabic)]براي دريافت اطلاعات با استفاده از دستورات[/FONT] html [FONT=Times New Roman (Arabic)]نشون داده شده[/FONT]:
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
<html>
<head>
<title>Signup Form</title>
</head>
<body>
<form name=form1 method=post action=register.php>
<table width=100% border=0 cellpadding=4 cellspacing=0>
<tr>
<td width=24% align=left valign=top>First Name</td>
<td width=76%><input name=first_name type=text id=first_name2></td>
</tr>
<tr>
<td align=left valign=top>Last Name</td>
<td><input name=last_name type=text id=last_name></td>
</tr>
<tr>
<td align=left valign=top>Email Address</td>
<td><input name=email_address type=text id=email_address></td>
</tr>
<tr>
<td align=left valign=top>Desired Username</td>
<td><input name=username type=text id=username></td>
</tr>
<tr>
<td align=left valign=top>Information about you:</td>
<td><textarea name=info id=info></textarea></td> </tr>
<tr>
<td align=left valign=top> </td>
<td><input type=submit name=Submit value=Join Now!></td>
</tr>
</table>
</form>
</body>
</html>
[FONT=Times New Roman (Arabic)]همينطور كه مي بينيد اين اطلاعات پس از دريافت و به محض[/FONT] [FONT=Times New Roman (Arabic)]فشردن دكمه[/FONT] join now [FONT=Times New Roman (Arabic)]به فايلي با عنوان[/FONT] register.php [FONT=Times New Roman (Arabic)]فرستاده ميشن[/FONT]
[FONT=Times New Roman (Arabic)]در اين صفحه اطلاعات دريافتي بررسي شده و در[/FONT] [FONT=Times New Roman (Arabic)]صورت بي نقص بودن اونا به ديتابيس مربوطه يك ركورد جديد براي كاربر ثبت نام شده[/FONT] [FONT=Times New Roman (Arabic)]ايجاد ميشه[/FONT].
[FONT=Times New Roman (Arabic)]بنابراين براي اتصال به ديتابيس بايد اطلاعات لازم براي ارتباط[/FONT] [FONT=Times New Roman (Arabic)]با اونو بدونيم . اين اطلاعات شامل نام ديتابيس ، كلمه رمز و پسورد و ... كه در[/FONT] [FONT=Times New Roman (Arabic)]فايلي به نام[/FONT] db.php [FONT=Times New Roman (Arabic)]اين اطلاعات رو ميبينيد[/FONT]:
[FONT=Times New Roman (Arabic)]بنابراين براي اتصال به ديتابيس بايد اطلاعات لازم براي ارتباط[/FONT] [FONT=Times New Roman (Arabic)]با اونو بدونيم . اين اطلاعات شامل نام ديتابيس ، كلمه رمز و پسورد و ... كه در[/FONT] [FONT=Times New Roman (Arabic)]فايلي به نام[/FONT] db.php [FONT=Times New Roman (Arabic)]اين اطلاعات رو ميبينيد[/FONT]:
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
<?
# database connection scripts
# the next 4 lines you can modify
$dbhost = 'your_host';
$dbusername = 'user_name';
$dbpasswd = 'user_password';
$database_name = 'yourwebsite_com';
#under here, don't touch!
$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd")
or die ("Couldn't connect to server.");
$db = mysql_select_db("$database_name", $connection)
or die("Couldn't select database.");
?>
خب حالا كافيه اين فايل[/FONT] db.php [FONT=Times New Roman (Arabic)]رو ابتداي فايل[/FONT] register.php [FONT=Times New Roman (Arabic)]صدا بزنيم تا عمل اتصال به ديتابيس رو برامون انجام بده[/FONT]
[FONT=Times New Roman (Arabic)]در ادامه پس از اتصال[/FONT] [FONT=Times New Roman (Arabic)]به ديتابيس كار اصلي ثبت نام شروع ميشه .ساختار فايل[/FONT] register.php [FONT=Times New Roman (Arabic)]رو در زير مشاهده[/FONT] [FONT=Times New Roman (Arabic)]ميكنيد[/FONT]:
[FONT=Times New Roman (Arabic)]در ادامه پس از اتصال[/FONT] [FONT=Times New Roman (Arabic)]به ديتابيس كار اصلي ثبت نام شروع ميشه .ساختار فايل[/FONT] register.php [FONT=Times New Roman (Arabic)]رو در زير مشاهده[/FONT] [FONT=Times New Roman (Arabic)]ميكنيد[/FONT]:
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
<?
include 'db.php';
# grab the POST variables from the HTML form,
# put them into PHP variables so we can work with them
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email_address = $_POST['email_address'];
$username = $_POST['username'];
$info = $_POST['info'];
[FONT=Times New Roman (Arabic)]تابع[/FONT] stripslashes [FONT=Times New Roman (Arabic)]كاركترهاي ويژه نظير[/FONT] esc [FONT=Times New Roman (Arabic)]، [/FONT]tab [FONT=Times New Roman (Arabic)]و غيره رو شناسايي ميكنه تا در تفسير كدهاي[/FONT] php [FONT=Times New Roman (Arabic)]مسئلهاي پيش نياد[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
$first_name = stripslashes($first_name);
$last_name = stripslashes($last_name);
$email_address = stripslashes($email_address);
$username = stripslashes($username);
$info = stripslashes($info);
[FONT=Times New Roman (Arabic)]در[/FONT] [FONT=Times New Roman (Arabic)]اين قسمت بررسي ميشه كه حتما تماما فيلدهاي ضروري پر شده باشند[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
if((!$first_name) || (!$last_name) || (!$email_address) || (!$username)){
echo 'You did not submit the following required information! <br />';
if(!$first_name){
echo "First Name is a required field. Please enter it below.<br />";
}
if(!$last_name){
echo "Last Name is a required field. Please enter it below.<br />";
}
if(!$email_address){
echo "Email Address is a required field. Please enter it below.<br />";
}
if(!$username){
echo "Desired Username is a required field. Please enter it below.<br />";
}
include 'join_form.html';
exit();
}
[FONT=Times New Roman (Arabic)]حالا بايد بررسي كنيم كه[/FONT] [FONT=Times New Roman (Arabic)]نام كاربري تكراري نباشه[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
$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 "Please fix the following errors: <br />";
if($email_check > 0){
echo "<strong>Your email address has already been used by another member in our database. Please use a different Email address!<br />";
unset($email_address);
}
if($username_check > 0){
echo "The username you have selected has already been used by another member in our database. Please choose a different Username!<br />";
unset($username);
}
include 'join_form.html'; // Show the form again!
exit();
}
[FONT=Times New Roman (Arabic)]خب حالا اگه[/FONT] [FONT=Times New Roman (Arabic)]تمام خطاهاي احتمالي بررسي شدند و مشكلي وجود نداشته ميشه يه كلمه رمز تصادفي براي[/FONT] [FONT=Times New Roman (Arabic)]كاربر توليد كرده و ركورد مربوط به اونو به بانك اطلاعات اضافه كرد[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
/* Random Password generator. Thanks a ton, phpfreak!
http://www.phpfreaks.com/quickcode/Random_Password_Generator/56.php
We'll generate a random password for the
user and encrypt it, email it and then enter it into the db.
*/
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);
/* Enter info into the Database.
I changed a little bit here from phpfreak's awesome tutorial on this subject. When I would get data from the user, I would not get an unencrypted password, only the md5 encrypted one. I couldn't use that, and me being the powertrip guy, I wrote in another little snippet to grab that password before it gets encrypted and stuff it into a blank variable, and write it to the database. Pretty nifty, eh?
*/
$info2 = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date,
decrypted_password)
VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now(), '$random_password')") or die (mysql_error());
if(!$sql){
echo 'There has been an error creating your account. Please contact the webmaster.';
} else {
$userid = mysql_insert_id();
[FONT=Times New Roman (Arabic)]در مرحله آخر بايد[/FONT] [FONT=Times New Roman (Arabic)]اطلاعات درج شده براي كاربر رو توسط ايميلي به اون اعلام كنيم[/FONT]
[FONT=Times New Roman (Arabic)]
كد[/FONT]:
$subject = "Your Distributor Membership at mywebsite.com";
$message = "Dear $first_name $last_name,
You are now registered at our website, http://www.mywebsite.com!
To activate your membership, please login here: http://www.mywebsite.com/distributors_section/login_form.html
Once you activate your membership, you will be able to login with the following information:
Username: $username
Password: $random_password
Please keep this username and password in a location that is easily accessible by you.
Thanks!
WebMaster, MyWebSite.com
This is an automated response, please do not reply!";
mail($email_address, $subject, $message, "From: MyWebSite<[email protected]>\nX-Mailer: PHP/" . phpversion());
echo 'Your membership information has been mailed to your email address! Please check it and follow the directions!';
}
?>
[FONT=Times New Roman (Arabic)]بدين ترتيب[/FONT] [FONT=Times New Roman (Arabic)]اطلاعات يك كاربر جديد از طريق سيستم عضويت فوق توي بانك اطلاعات مربوطه درج شده و[/FONT] [FONT=Times New Roman (Arabic)]اين اطلاعات به وي اطلاع داده شد[/FONT]
[FONT=Times New Roman (Arabic)]تا اينجا اگه سوالي هست در خدمتم
[/FONT][FONT=Times New Roman (Arabic)]تا اينجا اگه سوالي هست در خدمتم
Mbm2000
____________________________________________________
[FONT=Times New Roman (Arabic)]____________________________________________________
زندگی صحنه ی یکتای هنرمندی ماست.هر کسی نغمه ی خود خواند و از صحنه رود صحنه پیوسته بجاست!
[/FONT]
[FONT=Arial (Arabic)]
[/FONT]