2017-02-20 52 views
0

所以我搜遍了全部,並找到各種解決方案,只是不工作。PHP mySQL成功/失敗重定向頁面

我有一個註冊頁面,可以將數據插入到我的數據庫中,該數據庫可以正常工作。根據插入是否成功,我有一個if/else語句應該重定向到兩個頁面之一。現在它只是在表單提交後顯示一個空白頁面。

<?php 

$hostname="xxxxxxxxxxxxxxxxxxxxx"; 
$username="xxxxxxxxxxxx"; 
$password="xxxxxxxxx"; 
$database="xxxxxxxxxxxxx"; 



$db = new mysqli($hostname, $username, $password, $database); 
if ($db->connect_error){ 
    die("Connection failed: " . $db->connect_error); 
    } 

$pw = $_POST['pw']; 
$UIN = $_POST['UIN']; 

$sql = "INSERT INTO studentLogin (pw, UIN) VALUES ('$pw', '$UIN')"; 

if ($db->query($sql) === TRUE) { 
    header('Location: http://my_url/success.php.php?msg=WELCOME STUDENT'); 
    exit(); 
} else { 
    header('Location: http://my_url/failure.php.php?msg=You must be a student to register for the student discussion page'); 
    exit(); 
} 

$db->close(); 

?> 
+0

首先,打開錯誤報告'<?php ini_set( 'display_errors',1);的error_reporting(-1)'。另外,您已經使用** MySQLi **,那麼爲什麼不使用Prepared Statements來防止SQL注入?並且,什麼是'failure.php.php',雙擴展名.php.php? – Darren

+0

您確定要重定向到有效的網址嗎?此外,您正在嚴重冒SQL注入的風險。使用準備好的語句來防止它。 – miken32

+2

我在想你可能在標題之前輸出。 –

回答

-1

URL不能包含空格。您應該將空格更改爲「%20」,這是空格的百分比編碼等效項。在this page.上有百分比編碼的更多信息您也可以使用「+」符號來表示空格字符。

此外,請考慮啓用錯誤。如果你不這樣做,我們將無法知道究竟是什麼問題(考慮到頁面沒有顯示,這肯定是一個問題)。

+0

URL中的空格是什麼?我沒有看到空間。 –

+0

@ Fred-ii-可能是get參數'msg'中的那些? – nogad

+0

這不是一個URL,它是一個消息在另一個頁面中用GET方法'?msg'回顯。如果該文件具有'$ _GET',則給出這個。他們現在擁有的是完全有效的。 –