2013-03-26 40 views
-1

我試圖檢查數據庫中的varchar「race」,如果它是null,則重定向到頁面。這是我的代碼,我已經確信,該變種是空但它什麼都不做,甚至在重裝 如何使PHP重定向如何進行重定向PHP

<?php 
    $check_bone_query = mysql_query("SELECT bone FROM users WHERE name = '".$user->name."'"); 
    { 
    if($check_bone_query == NULL){ 
    header('Location: /bone'); 
    } 
` } 
    ?> 
+0

確保它是唯一的頭部發送。在標題調用之後添加'die;'。 – 2013-03-26 18:02:23

+0

我如何['mysql_fetch_assoc'](http://php.net/mysql_fetch_assoc)? – deceze 2013-03-26 18:03:48

+0

@Jocelyn我們已經看到,在這種情況下,問題不是重定向,而是重定向不起作用的事實。 – 2013-03-26 18:31:51

回答

1

你不獲取任何記錄,所以也許使用mysql_fetch_assoc第一?

$row = mysql_fetch_assoc($check_bone_query); 
if (is_null($row)) { //or use empty() 
    header('Location: /bone'); exit; 
} 

P.S.擺脫MySQL_.*功能使用PDO的MySQLi

+0

在一些罕見的情況下,在php重定向之後不會執行'exit;'會關閉瀏覽器。是的...我已經看到了這個。多次。 – 2013-03-26 18:26:23

0

你執行的頭聲明的網頁(HTML代碼或回聲)加載任何東西之前,sinse不能使用header()函數,如果你已經取得的財產以後在響應主體

這樣:

<html> 
some html 
</html> 
<?php header(location: 'your new location'); ?> 

將無法​​正常工作 但:

<?php header(location: 'your new location'); ?> 
<html> 
    some html 
</html> 

+0

我可以問我我的答案錯了嗎? 因爲如果我做了什麼worng我想知道如何做到這一點下一次 – 2013-03-26 18:09:46

+0

我沒有downvote它,但如果你處理嚴格的PHP文件,標題行不一定是第一行。我在if/else語句中有時使用它 – 2013-03-26 18:12:39

+0

,但是當你在header()調用之前回復somthing時,它不會工作eather嗎? – 2013-03-26 18:13:31