php登录脚本可以';不可加载

php登录脚本可以';不可加载,php,mysql,login,Php,Mysql,Login,我是php新手,我需要这段代码的帮助,因为当我尝试加载它时,我会得到“HTTP fout 500(内部服务器错误):”。有人能把所有的好代码都贴出来吗。谢谢 <?php session_start(); if(empty($_POST['username']) || empty($_POST['password'])) { $notifications[] = 'Login failed! Please provide a username and password.'; }

我是php新手,我需要这段代码的帮助,因为当我尝试加载它时,我会得到“HTTP fout 500(内部服务器错误):”。有人能把所有的好代码都贴出来吗。谢谢

  <?php
session_start();


if(empty($_POST['username']) || empty($_POST['password'])) {
$notifications[] = 'Login failed! Please provide a username and password.';
   }

   if(count($notifications) == 0) {
try {
    $dbh = new PDO('mysql:dbname=####;host=####',   
'####', '####');

    $sql = "SELECT username, verified FROM users WHERE username = :username AND    
password = :password";
    $sth = $dbh->prepare($sql);
    $sth->execute(array(
        ':username'    => $_POST['username'],
        ':password' => md5($_POST['password'])
    ));

    $result = $sth->fetch(PDO::FETCH_ASSOC);

    if($result) {
        // Set session details and redirect user to members page
        session_regenerate_id();
    $_SESSION['username']=':username';
    $_SESSION['password']=':password';

        header('Location: index.php');
    } else {
        $notifications[] = "Username or Password incorrect.";
    }
    ?>

使用脚本顶部的以下内容,您的页面现在将显示有关出错原因的所有信息=)

有了这些信息,其他人可以更容易地帮助你,并帮助你学习/发现错误

ini_set('display_errors', true);
error_reporting(-1);

你少了几个花括号。不确定这是否是问题的原因,但请尝试一下。添加的第三行和第四行将错误报告设置为显示在当前页面上,而不是将其记录到文件/syslog/etc

<?php
session_start();
ini_set('display_errors', true);
error_reporting(E_ALL);

if(empty($_POST['username']) || empty($_POST['password'])) {
    $notifications[] = 'Login failed! Please provide a username and password.';
}

if(count($notifications) == 0) {
    try {
        $dbh = new PDO('mysql:dbname=####;host=####','####', '####');
        $sql = "SELECT username, verified FROM users WHERE username = :username AND password = :password";
        $sth = $dbh->prepare($sql);
        $sth->execute(array(
            ':username'    => $_POST['username'],
            ':password' => md5($_POST['password'])
        ));

        $result = $sth->fetch(PDO::FETCH_ASSOC);

        if($result) {
            session_regenerate_id();
            $_SESSION['username']=':username';
            $_SESSION['password']=':password';

            header('Location: index.php');
        } else {
            $notifications[] = "Username or Password incorrect.";
        }
    }
}
?>


您可能想清空数据库登录详细信息……乍一看,您有一个try块,但没有catch块。您是否尝试过从命令行运行php-l?这将告诉您是否存在任何解析错误。请与我们分享您迄今为止所做的任何疑难解答,以便我们减少猜测。第一步是尝试定位错误发生的位置(哪一行)。我在哪里可以看到错误?在页面self=)上,您将得到一个包含一些错误详细信息的页面,而不是500消息。我仍然得到500错误