بسم الله الرحمن الرحيم
Free PHP Login Script
سكريبت تسجيل الدخول المجانى
كلاس بسيط جدا لادارة دخول وخروج وتسجيل الاعضاء عندك بشكل تلقائى
يمكنك اضافته بكل سهولة ويسر الى برمجياتك
كيف يعمل ؟
- يستخدم البريد الالكترونى وكلمة المرور المقدمة من المستخدم وبعد ذلك يقوم البرنامج بالبحث عن صحتهم وتوافقهم فى قواعد البيانات ان كان صحيحا يوجهك الى صفحة حسابك .
- يخزن الباسورد مشفر ب md5 (الدالة المشهورة فى التشفير) . وعندما يضع المستخدم كلمة المرور أثناء تسجيل الدخول يقوم البرنامج أتو ماتيكى بتشفيرها بواسطة دالة التشفير المذكرة اعلاه ثم يقوم بقارانتها مع الاخرى الموجودة فى قواعد البيانات
- بمجرد أنك سجلت دخولك يقوم البرنامج بتسجيل 2 من السيشن session هما user_id و user_level فقم بالتأكيد على أنك وضعت دالة بدأ السيشن session_start() فى الصفحات التى تريد أن تدعمها بتسجيل الدخول
المتطلبات :
- - MySQL Database 3+
- - Linux server
- - Apache Web server
- - PHP scripting language
- - reCaptcha Keys + php library (register for free)
- - JQuery for javascript validation.
بنية قواعد البيانات الخاصة بالاسكريبت :
الاسكريبت يستخدم قةاعد البيانات المعروفة والمشهورة mysql
وتكون فيه كالتالى :
كود:
id INT(20) AUTO_INCREMENT PRIMARY
user_id VARCHAR(100)
user_email VARCHAR(100)
user_level int(2)
pwd VARCHAR(100)
activated INT(0)
date (date)
country varchar(100)
مثال على صفحة تسجيل الدخول : login.php
كود PHP:
<?php
include 'dbc.php';
$user_email = mysql_real_escape_string($_POST['email']);
if ($_POST['Submit']=='Login')
{
$md5pass = md5($_POST['pwd']);
$sql = "SELECT id,user_name,user_level FROM users WHERE
email = '$user_email' AND
pwd = '$md5pass' AND activated='1'";
$result = mysql_query($sql) or die (mysql_error());
$num = mysql_num_rows($result);
if ( $num != 0 ) {
// A matching row was found - the user is authenticated.
session_start();
list($user_id,$user_name,$user_level) = mysql_fetch_row($result);
// this sets variables in the session
$_SESSION['user_name']= $user_name;
$_SESSION['user_level'] = $user_level;
if (isset($_GET['ret']) && !empty($_GET['ret']))
{
header("Location: $_GET[ret]");
} else
{
header("Location: myaccount.php");
}
//echo "Logged in...";
exit();
}
header("Location: login.php?msg=Invalid Login");
//echo "Error:";
exit();
} <?php
include 'dbc.php';
$user_email = mysql_real_escape_string($_POST['email']);
if ($_POST['Submit']=='Login')
{
$md5pass = md5($_POST['pwd']);
$sql = "SELECT id,user_name,user_level FROM users WHERE
email = '$user_email' AND
pwd = '$md5pass' AND activated='1'";
$result = mysql_query($sql) or die (mysql_error());
$num = mysql_num_rows($result);
if ( $num != 0 ) {
// A matching row was found - the user is authenticated.
session_start();
list($user_id,$user_name,$user_level) = mysql_fetch_row($result);
// this sets variables in the session
$_SESSION['user_name']= $user_name;
$_SESSION['user_level'] = $user_level;
if (isset($_GET['ret']) && !empty($_GET['ret']))
{
header("Location: $_GET[ret]");
} else
{
header("Location: myaccount.php");
}
//echo "Logged in...";
exit();
}
header("Location: login.php?msg=Invalid Login");
//echo "Error:";
exit();
}
مثال على استخدامها داخل الصفحات التى فى سكريبتك :
كود PHP:
<?php
session_start();
if (!isset($_SESSION['user_name']))
{
header("Location: login.php");
}
<<other page content goes here>>
?>
تسجيل الخروج :
كود PHP:
<?php
session_start();
unset($_SESSION['user_name']);
unset($_SESSION['user_level']);
header("Location: login.php");
?>
التسجيل reg.php
كود PHP:
<?php
include ('dbc.php');
if ($_POST['Submit'] == 'Register')
{
$rs_duplicates = mysql_query("select id from users where email='$_POST[email]'");
$duplicates = mysql_num_rows($rs_duplicates);
if ($duplicates > 0)
{
//die ("ERROR: User account already exists.");
header("Location: register.php?msg=ERROR: User account already exists..");
exit();
}
$rs_user_id = mysql_query("select id from users where user_name='$_POST[user_name]'");
$duplicate_user_id = mysql_num_rows($rs_user_id);
if ($duplicate_user_id > 0)
{
//die ("ERROR: User account already exists.");
header("Location: register.php?msg=ERROR: User name already exists..");
exit();
}
if ($_POST['pass1'] != $_POST['pass2'])
{
//die ("Password does not match");
header("Location: register.php?msg=ERROR: Password does not match..");
exit();
}
$md5pass = md5($_POST['pass2']);
$activ_code = rand(1000,9999);
mysql_query("INSERT INTO users
(`name`,`email`,`pwd`,`country`,`joined`,`activation_code`,`user_name`)
VALUES
('$_POST[name]','$_POST[email]','$md5pass','$_POST[country]',now(),'$activ_code','$_POST[user_name]')") or die(mysql_error());
$message =
"Thank you for registering an account <put your content here>. Put here also link for activation";
mail($_POST['email'], "Login Activation", $message,
"From: \"Domain\" <put_from_email_here>\r\n" .
"X-Mailer: PHP/" . phpversion());
header("Location: register.php?done=1&msg=Registration Successful! An activation code has been sent to your email address...");
exit;
}
?>
نسيان كلمة المرور :
كود PHP:
if ($_POST['Submit']=='Send')
{
$rs_search = mysql_query("select email from users where email='$_POST[email]'");
$user_count = mysql_num_rows($rs_search);
if ($user_count != 0)
{
$newpwd = rand(1000,9999);
$newmd5pwd = md5($newpwd);
mysql_query("UPDATE users set pwd='$newmd5pwd' where email='$_POST[email]'");
$message =
"Here are the login details...\n\n
User Name: $_POST[email] \n
Password: $newpwd \n
____________________________________________
Thank you. This is an automated response. PLEASE DO NOT REPLY.
";
mail($_POST['email'], "New Login Details", $message,
"From: \"Domain\" <from_email_address>\r\n" .
"X-Mailer: PHP/" . phpversion());
die("Thank you. New Login details has been sent to your email address");
} else die("Account with given email does not exist");
}
?>
التحميل :
تحميل البرنامج بالكامل مع كل صفحاته وقاعدة البيانات
فى المرفقات
الموقع الرسمى : PHP Login Script :: Free PHP/MySQL Login Script with Remember me