2013-06-28 94 views
-3

我是新来的PHP,我需要帮助这个代码,因为我得到“HTTP-fout 500(内部服务器错误):”当我尝试加载它。有人可以发布整个好的代码。谢谢。php登录脚本无法加载

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

你可能想空出你的数据库的登录信息... – Novocaine

+0

乍一看,你有一个没有catch块的try块。您是否尝试过从命令行运行php -l <​​您的脚本名称>?这会告诉你是否有任何分析错误。 – dethtron5000

+0

请与我们分享您迄今为止所做的任何麻烦,以便我们减少猜测。第一步是尝试找出发生错误的位置(哪条线)。 – RandomSeed

回答

0

你错过了一些花括号。不确定这是否是你问题的原因,但试试看。第三和第四线增加了设置错误报告中显示,而不是记录到文件/ 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."; 
     } 
    } 
} 
?> 
+0

我仍然收到500错误 –

0

使用在你的脚本的顶部以下,你的页面将显示所有关于什么地方出了错信息=)

有了这些信息别人能更轻松地帮助你,它会帮助你学习/发现你的错误

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

我在哪里可以看到错误? –

+0

在页面self =)上,而不是500条消息,您将得到一个包含一些错误细节的页面。 –