في حال كانت البيانات محفوظة مسبقا في النظام وتريد تسجيل الدخول الى النظام فيمكنك استخدام الكود التالي لتسجيل الدخول:
<?php
// إبتداء تشغيل session
session_start();
// فحص إن كان المستخدم قد سجل دخول مسبقا تحويله الى صفحة معينة
if (isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true) {
header("location: welcome.php");
exit;
}
// الملف الخاص بالاتصال بقاعدة البيانات
require_once "config.php";
// تعريف المتغيرات
$student_id = $password = "";
$student_id_err = $password_err = "";
// معالجة البيانات بعد الضغط على زر تسجيل الدخول
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// فحص إن كان الرقم الجامعي مدخل ام لا
if (empty(trim($_POST["student_id"]))) {
$student_id_err = "Please enter student_id.";
} else {
$student_id = trim($_POST["student_id"]);
}
// فحص إن كانت كلمة السر مدخلة أم لا
if (empty(trim($_POST["password"]))) {
$password_err = "Please enter your password.";
} else {
$password = trim($_POST["password"]);
}
// التحقق من البيانات
if (empty($student_id_err) && empty($password_err)) {
// الكود الخاص بجلب بيانات الطالب
$sql = "SELECT id, student_id, password FROM users WHERE student_id = ?";
if ($stmt = mysqli_prepare($link, $sql)) {
// ربط المتغيرات بالبيانات التي تم جلبها من قاعدة البيانات
mysqli_stmt_bind_param($stmt, "s", $param_student_id);
// تجهيز المتغيرات
$param_student_id = $student_id;
// محاولة تنفيذ لجلب البيانات
if (mysqli_stmt_execute($stmt)) {
// تخزين البيانات
mysqli_stmt_store_result($stmt);
// التحقق من تواجد الرقم الجامعي للطالب وإن وجد التحقق من كلمة السر
if (mysqli_stmt_num_rows($stmt) == 1) {
// ربط المتغيرات بالنتائج
mysqli_stmt_bind_result($stmt, $id, $student_id, $hashed_password);
if (mysqli_stmt_fetch($stmt)) {
if (password_verify($password, $hashed_password)) {
// كلمة المرور صحيحة لذا فتح سيشين جديدة
session_start();
// تخزين البيانات بداحل سيشين
$_SESSION["loggedin"] = true;
$_SESSION["id"] = $id;
$_SESSION["student_id"] = $student_id;
// التحويل على صفحة مرحبا
header("location: welcome.php");
} else {
// عرض تواجد مشكلة في كلمة المرور
$password_err = "The password you entered was not valid.";
}
}
} else {
// عرض وجود مشكلة في عدم تواجد الرقم الجامعي للطالب
$student_id_err = "No account found with that student_id.";
}
} else {
echo "Oops! Something went wrong. Please try again later.";
}
// Close statement
mysqli_stmt_close($stmt);
}
}
// إعلاق الاتصال
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>تسجيل الدخول</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
<style type="text/css">
body {
font: 14px sans-serif;
}
.wrapper {
width: 350px;
padding: 20px;
}
</style>
</head>
<body>
<div class="wrapper">
<h2>Login</h2>
<p>الرجاء إدخال بياناتك لتسجيل الدخول.</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!empty($student_id_err)) ? 'has-error' : ''; ?>">
<label>الرقم الجامعي</label>
<input type="text" name="student_id" class="form-control" value="<?php echo $student_id; ?>">
<span class="help-block"><?php echo $student_id_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
<label>كلمة المرور</label>
<input type="password" name="password" class="form-control">
<span class="help-block"><?php echo $password_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Login">
</div>
<p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
</form>
</div>
</body>
</html>
ومثال على صفحة مرحبا, ويمكنك توظيف هذه الصفحة بالشكل الذي تريد:
<?php
// إبتداء سيشين
session_start();
// فحص إن كان المستخدم قد سجل دخول مسبقا تحويله الى صفحة معينة
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
<style type="text/css">
body{ font: 14px sans-serif; text-align: center; }
</style>
</head>
<body>
<div class="page-header">
<!-- هنا يتم إضافة بيانات الطالب كيفما تريد -->
<h1>Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1>
</div>
<p>
<a href="reset-password.php" class="btn btn-warning">Reset Your Password</a>
<a href="logout.php" class="btn btn-danger">Sign Out of Your Account</a>
</p>
</body>
</html>