2015-05-02 69 views
0

這絕對沒有。查詢運行,但在此之後,沒有任何反應。這裏是login.php的代碼MySQLi登錄腳本彈出空白頁

我沒有收到任何錯誤,只是一個空白頁。這是純粹的骨頭腳本。謝謝您的幫助。 MySQLi新手,剛剛停止使用舊的東西。

我得到的錯誤是: 注意:使用未定義的常量登錄 - 在文件路徑/ login2.php假定「登錄」第15" 行

<?php 
// This works 
$con = new mysqli('localhost', 'username', 'password', 'kristen_listing'); 

if($con->connect_errno > 0){ 
die('Unable to connect to database [' . $con->connect_error . ']'); 
} 


// checking the user 

// in the index.php file I have submit named "login" 
if(isset($_POST[‘login’])){ 

$username = $_POST[’username’]; 

$password = $_POST[‘password’]; 

$sel_user = <<<SQL 
SELECT * 
FROM `listing` 
WHERE `id` = 1 
AND `username` = '$username' 
AND `password` = '$password' 
SQL; 

$run_user = mysqli_query($con, $sel_user); 

$check_user = mysqli_num_rows($run_user); 

if($check_user>0){ 

$_SESSION[‘username’]=$username; 

print "Logged in"; 

} 

else { 

print "Invalid username or password"; 

} 

} 




?> 
+0

的mysql_query功能被棄用的PHP 5.5,並打算作爲PHP 7.你應該使用PDO對象有關的mysqli我們可以用它來訪問MySQL – Pachonk

+0

來徹底清除? –

回答

1

嘗試啓用錯誤處理這個:

error_reporting(E_ALL);

注意,不要使用在實際環境中

+0

謝謝。我得到這個:「注意:使用未定義的常量 login - 在第15行的filepath/login2.php中假設' login '」 – sandorfalot

1

有可能你的一個實際查詢有錯誤。添加額外的日誌和錯誤檢查,看看它可能已停止:

<?php 
echo "Start of PHP"; 
// This works 
$con = new mysqli('localhost', 'username', 'password', 'kristen_listing'); 

if($con->connect_errno > 0){ 
die('Unable to connect to database [' . $con->connect_error . ']'); 
} 


// checking the user 

// in the index.php file I have submit named "login" 
if(isset($_POST[‘login’])){ 

$username = $_POST[’username’]; 

$password = $_POST[‘password’]; 

$sel_user = <<<SQL 
SELECT * 
FROM `listing` 
WHERE `id` = 1 
AND `username` = '$username' 
AND `password` = '$password' 
SQL; 

$run_user = mysqli_query($con, $sel_user) or die(mysqli_error($con)); 

$check_user = mysqli_num_rows($run_user); 
echo "Number of Returned Users".$check_user; 

echo "Before If Statement"; 

if($check_user>0){ 

$_SESSION[‘username’]=$username; 

print "Logged in"; 

} else { 
echo "Incorrect Username/Password"; 
} 
echo "end"; 

我添加了一個「或死」的mysqli_query也加入呼應「$ check_user」,呼應如果語句之前和之後的呼應如果聲明。

我還添加了處理不正確的用戶名/密碼。

作爲一個附註,我想讓你知道你有SQL注入的風險。這裏有一個很好的問題從堆棧溢出:How can I prevent SQL-injection in PHP?

+0

感謝您這樣做,但我仍然得到一個空白頁。即使用戶名和密碼不正確。 – sandorfalot

+0

在所有PHP運行之前添加回顯。我編輯了這個問題來向你展示我的意思。 – Pachonk

0

我得到它在Papchonk和minifisch的幫助下工作。由於某種原因變量沒有從表單中傳遞,所以我編輯了一下。這是準系統。它應該返回1個用戶。這是代碼。

<?php 
// error_reporting(E_ALL); 
$username=$_POST['username']; 
$password=$_POST['password']; 
$login=$_POST['login']; 

// This works 
$con = new mysqli('localhost', 'username', 'password', 'kristen_listing'); 

if($con->connect_errno > 0){ 
die('Unable to connect to database [' . $con->connect_error . ']'); 
} 


// checking the user 


if(isset($login)){ 


$sel_user = <<<SQL 
SELECT * 
FROM `listing` 
WHERE `id` = 1 
AND `username` = '$username' 
AND `password` = '$password' 
SQL; 

$run_user = mysqli_query($con, $sel_user) or die(mysqli_error($con)); 

$check_user = mysqli_num_rows($run_user); 
echo "Number of Returned Users".$check_user; 

if($check_user>0){ 

$_SESSION[‘username’]=$username; 

print "Logged in"; 

} else { 
echo "Incorrect Username/Password"; 
} 
echo "end"; 
} 
?>