我有3個文件,account.php,的index.php和browser.php。爲什麼我的PHP頭('Location:...')調用忽略HTTP GET請求?
成功登錄之後account.php調用下面的函數:
header('Location: index.php?m='.base64_encode('Signed in'));
爲了這的index.php電話:
header('Location: ./browser.php?m='.$_GET['m']);
而且browser.php顯示:
if(isset($_GET['m']))
echo '<h3 style="color:green">'.base64_decode($_GET['m']).'</h3>';
的問題是標題( '位置:...')呼叫從的index.php到browser.php滴後什麼 '?'。每次url只顯示browser.php
這是怎麼回事?
[編輯]
井問題是固定的,通過在index.php一些可怕如果else邏輯。 執行下列不起作用(將始終運行最新的標頭):
if(isset($_GET['m']))
header('Location: browser.php?m='.$_GET['m']);
if(isset($_GET['e']))
header('Location: browser.php?e='.$_GET['e']);
header('Location: browser.php');
我不得不重新調整它像這樣:
if(isset($_GET['m']))
header('Location: browser.php?m='.$_GET['m']);
else if(isset($_GET['e']))
header('Location: browser.php?e='.$_GET['e']);
else
header('Location: browser.php');
但坦白地說,這是所有不相關的,我應該使用$ _SESSION保存重定向上的變量。感謝大家!
爲什麼不使用會話呢?通過網址傳遞登錄信息似乎是一個非常糟糕的主意 – knittl 2011-03-19 22:46:57
'header('Location:index.php?m ='。base64_encode(')'));'Use sessions請爲這個東西。 – Charles 2011-03-19 22:55:25
總是把'退出;'用'header'重定向後' – Galen 2011-03-20 00:00:10