duanboxue3422 2018-11-30 06:21
浏览 144
已采纳

单击提交后登录表单错误500

login form Error 500 after clicking on submit Hi everyone, We have a group assignment in our php course and we are supposed to design a login system in PHP and MySQL. We wrote the form, the PHP script, created the database and everything is supposed to work except that when we enter the username and passwords specified on the database when you press the submit button, it brings us to a 500 internal error page. The code is in a file called index.php in the /login folder and it should grant access to a file located in the parent folder. Here is it:

<?php
// Initialize the session
session_start();


// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location:../accessgranted.php");
    exit;
}

// Include config file
require_once "db.php";

// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";
$username_ph = "Enter Username";
$password_ph = "Enter password";

// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){

    // Check if username is empty quoted th trim function because it caused the same 500 error when trying to run the login page
    if(empty/*(trim*/($_POST["username"]/*)*/)){
        $username_err = "Entrez votre nom d'utilisateur";
    } else{
        $username = trim($_POST["username"]);
    }

    // Check if password is empty
    if(empty/*(trim*/($_POST["password"]/*)*/)){
        $password_err = "Entrez votre mot de passe";
    } else{
        $password = trim($_POST["password"]);
    }

    // Validate credentials
    if(!empty($username) && !empty($password)){
        // Prepare a select statement
        $sql = "SELECT id, username, password FROM Users WHERE username = ?";

        if($stmt = mysqli_prepare($con, $sql)){

            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_username);

            // Set parameters
            $param_username = $username;

            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){


                // Store result
                mysqli_stmt_store_result($stmt);

                // Check if username exists, if yes then verify password
                if(mysqli_stmt_num_rows($stmt) == 1){                    
                    // Bind result variables
                    mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);

                    if(mysqli_stmt_fetch($stmt)){

                        if(password_verify($password, $hashed_password)){

                            // Password is correct, so start a new session
                            session_start();

                            // Store data in session variables
                            $_SESSION["loggedin"] = true;
                            $_SESSION["id"] = $id;
                            $_SESSION["username"] = $username;                            

                            // Redirect user to welcome page
                            header("location: ../accessgranted.php");

                        } else{
                            // Display an error message if password is not valid
                            $password_err = "The password you entered was not valid.";
                        }
                    }//added
                } else{
                    // Display an error message if username doesn't exist
                    $username_err = "No account found with that username.";
                }
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            } 
        }

        // Close statement
        mysqli_stmt_close($stmt);
    }

    // Close connection
    mysqli_close($con);
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</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>
   <center> 
        <h1>Connection</h1>
        <h2>Login Assignment</h2>
        <div class="wrapper">
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
                <p align="left">Username</p>
                <input type="text" name="username" class="form-control" value="<?php echo $username; ?>" placeholder="<?= $username_ph?>">
                <span class="help-block"><?php echo $username_err; ?></span>
            </div>    
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
                <p align="left">Password</p>
                <input type="password" name="password" class="form-control" placeholder="<?= $password_ph?>" align="left">
                <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>  </center>  
</body>
</html>

We have to hand it before Sunday so your help would be much appreciated

  • 写回答

2条回答 默认 最新

  • dougu0824 2018-11-30 08:05
    关注

    Check the error_reporting, display_errors and display_startup_errors settings in your php.ini file. They should be set to E_ALL and "On" respectively. You can also change these settings (except display_startup_errors) at the very beginning of your script to set them at runtime.

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
    

    After that, restart server.

    And check the error causing in your script.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 CSS实现渐隐虚线边框
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题