اذهب إلى المحتوى

السؤال

نشر

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

Recommended Posts

  • 0
نشر

في حال كانت البيانات محفوظة مسبقا في النظام وتريد تسجيل الدخول الى النظام فيمكنك استخدام الكود التالي لتسجيل الدخول:

<?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>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...