2012-04-13 57 views
0

使用此代碼嘗試顯示錯誤時,頁面將重定向到myaccount,但只有在必填字段已完成時才應該在那裏重定向,例如;如果birth_country沒有選擇必填字段錯誤未出現

if(empty($birth_country)) 
    { 
     $err[] = "ERROR - Enter Birth Country"; 
      header("Location: personal.php?msg=$err[0]"); 
    } 

出現

錯誤消息,但是如果選擇了它,應該重定向到...

header("location: myaccount.php?id=" . $_SESSION['user_id']. ""); 
exit(); 

但是它總是轉到不管我的帳戶什麼 感謝

回答

0

就像Frits說的那樣,如果你想讓它看到,你將不得不將錯誤打印到屏幕上;但是,在headerheader不起作用之前,您無法打印出任何HTML。如果你想在重定向頁面上打印錯誤,那麼我會建議將錯誤信息放在一個$_SESSION cookie中,然後撥打echo這個cookie /變量在重定向頁面上。但是,這樣做,你將需要在問題頁面的頂部,您重定向頁面的頂部使用php session_start()爲了使用$_SESSION變量

而且,你的第二個header

header("location: myaccount.php?id=" . $_SESSION['user_id']. ""); 
exit(); 

看起來應該像這樣:

header("Location: myaccount.php?id=$_SESSION['user_id']") 

通過使用雙引號,你並不需要添加$_SESSION[]標籤,然後在末尾添加空白""

+0

它說不能用[]讀取 – user1296762 2012-04-14 07:04:46

+0

你是什麼意思? – 2012-04-14 09:04:02

+0

當使用您的推薦標題時,我的PHPSTORM說錯誤代碼 – user1296762 2012-04-14 09:51:28

1

你的第一個標題後面也寫上exit。你的代碼只是繼續,它可能會發出第二個位置標題,否定第一個。

+0

我得到的網址欄上的錯誤不在屏幕上'http://localhost/euisample/personal.php?msg =錯誤%20-%20Enter%20Birth%20Country' – user1296762 2012-04-13 22:22:32

+1

是的,那就是你這樣做,把錯誤的URL。如果你想在屏幕上顯示它,你必須把它拿出來:P像'echo $ _GET ['msg']' – Halcyon 2012-04-13 22:38:46

相關問題