首页 > 解决方案 > 登录后空白页面

问题描述

我正在尝试使用 PDO 和会话创建登录/注册系统,用户可以创建他的帐户并且他可以访问欢迎页面,但是当注销并尝试使用有效的用户名和密码重新登录时,它会将我发送到空白的 php 页面,我在互联网上查看,空白的 php 页面意味着我找不到任何语法错误。顺便说一句,我尝试用任何密码输入任何用户名,但它仍然将我发送到一个空白的 php 页面,这是我的代码:Config.php

class config {

    public static function connect()
    {
        $host = "localhost";
        $username = "root";
        $password = "";
        $dbname = "logintest";

        try{

            $bdd = new PDO("mysql:host=$host;dbname=$dbname",$username,$password);

            $bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);


        }catch(PDOException $e)
        {
            echo "Connection échoué" . $e->getMessage();
        }
        return $bdd;
    }
}

?>

我的 process.php (这就是我认为问题来自的地方:


session_start();

    include_once("config.php");

        if(isset($_POST['register']))
        {
            $bdd = config::connect();
            $username = $_POST['username'];
            $email = $_POST['email'];
            $password = $_POST['password'];

    if(insertDetails($bdd,$username,$email,$password))
    {
        $_SESSION['username'] = $username;
        header("Location: profile.php");
    }

}


    if(isset($_POST['login']))
    {
        $bdd = config::connect();
        $username = $_POST['username'];
        $password = $_POST['password'];

    if(checkLogin($bdd,$username,$password))
        {
            $_SESSION['username'] = $username;
            header("Location: profile.php");
        }
    else{
        echo "Le mot de passe ou le nom d'utilisateur sont incorrect";
    }
}


    function insertDetails($bdd,$username,$email,$password)
        {
            $query = $bdd->prepare("

                INSERT INTO users (username,email,password)

                VALUES(:username,:email,:password)

                ");
            $query->bindParam(":username",$username);
            $query->bindParam(":email",$email);
            $query->bindParam(":password",$password);

    return $query->execute();
}


    function checkLogin($bdd,$username,$password)
    {
        $query = $bdd->prepare("

            SELECT * From users WHERE username=:username AND password=:password

        ");

        $query->bindParam(":username", $username);
        $query->bindParam(":password", $password);

        $query->execute();

    // Check how many rows are returned

        if ($query->rowCount() == 1)
        {
            return true;
        }
        else {
            return false;
        }

    }

我的 profile.php :

session_start();

include_once("config.php");

echo "Bienvenue " . $_SESSION['username'] . "  ";

echo "<a href='logout.php'>Se deconnecter</a>". "  ";

echo "<a href='update.php'>Mettre a jour le profile</a>" . "  ";

echo "<a href='delete.php'>Supprimer mon compte</a>". "  ";

?>```
and my logout.php :
```<?php

session_destroy();

header("Location: index.html");
?>

或者这是我正在处理的项目:https ://github.com/AmrouHab/LoginRegister/tree/master/neptunetest

我会采取任何帮助谢谢(顺便说一句对不起我的英语不好我是法语)

标签: phpauthentication

解决方案


好吧,我找到了我忘记在 process.php 中输入大写“L”的解决方案

 if(isset($_POST['login']))

我已将其更正为

 if(isset($_POST['Login']))

现在它正在工作。感谢您的关注。


推荐阅读