-3

私はphpを初めて使用し、このコードを読み込もうとすると「HTTP-fout 500 (Internal Server Error):」が表示されるため、このコードについて助けが必要です。誰かが良いコード全体を投稿できますか。ありがとう。

  <?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.";
    }
    ?>
4

2 に答える 2

0

いくつかの中括弧がありません。これが問題の原因かどうかはわかりませんが、試してみてください。追加された 3 行目と 4 行目は、エラー レポートを file / syslog / などに記録するのではなく、現在のページに表示するように設定します。

<?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.";
        }
    }
}
?>
于 2013-06-28T11:47:36.360 に答える
0

スクリプトの先頭で次を使用すると、ページに問題に関するすべての情報が表示されます =)

その情報があれば、他の人がより簡単にあなたを助けることができ、間違いを学び/見つけるのに役立ちます

ini_set('display_errors', true);
error_reporting(-1);
于 2013-06-28T11:27:11.897 に答える