单页登录获取恒定500服务器错误

Ben

我要做什么

我正在使用登录表单创建单页成员的区域。

登录后,用户唯一要看到的内容(在此阶段)是一个注销按钮。

怎么了

只要数据库中存在匹配项(例如,用户名正确,或者用户名和密码均正确),就会有一个500 Server Error

刷新页面,无论密码是否匹配,都可以登录。

当用户单击注销链接时,还会有一个500 Server Error

代码

<?php 
session_start();

if(isset($_GET['logout'])&&$_GET['logout']==='true'){
    logout();
    header('location: ./');
}

if(isset($_POST['submit'])) {
    $email = $_POST['email'];
    $password = $_POST['password'];

    $hostname = 'REDACTED';
    $username = 'REDACTED';
    $password = 'REDACTED';
    $dbname   = 'REDACTED';

    try {
        $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
    }

    catch(PDOException $e){
        echo($e->getMessage());
    }


    $stmt=$dbh->prepare('SELECT `password`, `id` FROM `tap_users` WHERE `email`=?');
    $stmt->execute(array($email));

    if($stmt->rowCount()==0){
        //incorrect username
        header('location: ./?error=user');
        exit();
    }
    $userData = $stmt->fetch(PDO::FETCH_ASSOC);

    if($password != $userData['password']) {
        //incorrect password
        header('location: ./?error=pass');
        exit();
    } else {
        validateUser($userData['id']);
        header('location: ./');
    }
}

?>

<head></head>

<body>

<?php
if(!isLoggedIn()) {
    show_login();
    exit();
}
?>

<a href="?logout=true">Logout</a>

</body>

</html>

<?php
//Show login form
function show_login(){
    echo    '<form method="post">
                <input type="text" name="email" placeholder="Email Address" />
                <input type="password" name="password" placeholder="Password" />
                <input type="submit" value="Submit" name="submit" />
            </form>

            </body>

            </html>';
}

//Check if a user is logged in
function isLoggedIn(){
    if(isset($_SESSION['valid']) && $_SESSION['valid'])
        return true;
    return false;
}

//validate the user
function validateUser($userid){
    //this is a security measure
    session_regenerate_id();
    $_SESSION['valid'] = 1;
    $_SESSION['userid'] = $userid;
}

//logout the user
function logout(){
    //destroy all of the session variables
    $_SESSION = array();
    session_destroy();
}
?>
维生素

您正在做的是,如果用户登录正确,那么您将重定向到header('location:./'); 也许您没有index.php或您的apache配置中的目录索引已关闭。

做一件事将其更改为

header('location:index.php');

它会工作。

这与php或mysql不相关,这是服务器配置错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅.PHP页上的内部服务器错误500

来自分类Dev

php登录验证返回500(内部服务器错误)

来自分类Dev

如何获取内部服务器(500)错误的内容?

来自分类Dev

Retrofit 500内部服务器错误获取数据

来自分类Dev

登录时从kubenetes服务器获取错误-ClusterRoleBinding

来自分类Dev

当我尝试在Java中自动登录Facebook时发生内部服务器错误500

来自分类Dev

如果页面是500内部服务器错误,则重定向到登录页面

来自分类Dev

登录后,内部服务器错误(500)出现在重定向页面中

来自分类Dev

CakePHP 500内部服务器错误

来自分类Dev

javascript 500内部服务器错误

来自分类Dev

500内部服务器错误Heroku

来自分类Dev

内部服务器500错误-Django

来自分类Dev

CodeIgniter 500服务器错误

来自分类Dev

Ajax:500内部服务器错误

来自分类Dev

AJAX 500(内部服务器错误)

来自分类Dev

POST 500(内部服务器错误)

来自分类Dev

AJax内部服务器错误500

来自分类Dev

nginx 500内部服务器错误

来自分类Dev

AJAX 500(内部服务器错误)

来自分类Dev

Google Wallet 500服务器错误

来自分类Dev

得到500内部服务器错误?

来自分类Dev

unity 500内部服务器错误

来自分类Dev

Laravel 500内部服务器错误?

来自分类Dev

500内部服务器错误Heroku

来自分类Dev

Android到服务器500错误

来自分类Dev

Apache RewriteRule服务器错误500

来自分类Dev

htacces 500内部服务器错误

来自分类Dev

phpMyadmin 内部服务器错误 500

来自分类Dev

POST 500 内部服务器错误