我有一個用簡單的形式訪問的PHP登錄腳本:PHP登錄腳本不給預期的結果,或任何
<?php
session_start();
try{
$user = 'root';
$pass = null;
$pdo = new PDO('mysql:host=localhost; dbname=divebay;', $user, $pass);
if(isset($_SESSION['loggedin'])){
echo "1"; //already logged in
}
else{
$username = $_POST['username'];
$password = sha1($_POST['password']);
$ucheck = $pdo->prepare('SELECT * FROM user WHERE username = ?');
$ucheck->bindValue(1, $username);
$ucheck->execute();
if($ucheck->fetch(PDO::FETCH_OBJ)){
$stmt = $pdo->prepare('SELECT * FROM user WHERE username = ? AND password = ?');
$stmt->bindValue(1, $username);
$stmt->bindValue(2, $password);
if($stmt->fetch(PDO::FETCH_OBJ)){
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['username'] = $row['username'];
$_SESSION['loggedin'] = 'YES';
$_SESSION['location'] = $row['location'];
echo "2"; //logged in
}
else{
echo "3"; //password incorrect
}
}
else{
echo "4"; //user does not exist
}
}
}catch(PDOException $e){
echo $e->getMessage();
}
?>
,但是當我嘗試使用我剛剛創建的帳戶來運行它,並有證實存在於數據庫中,我沒有從這個腳本得到任何迴應。我希望它回聲2鑑於登錄信息是正確的,但我什麼也沒得到
任何人都可以提出什麼ive做錯了嗎?
你可以把'error_reporting(E_ALL); ini_set(「display_errors」,1);'在腳本的頂部,看看它是否顯示任何東西? – bretterer
我會把我的錢放在'$ pdo'爲false或null而不是對象:) –