似乎不能正確使用語法來得到它:PHP語法問題與頭
<?php
if isset $_POST['tutorial'] {
header('Location: /phonebooks?tutorial=1b');
} else {
header('Location: /phonebooks?phonebook_created=1');
};
?>
我在做什麼錯?
似乎不能正確使用語法來得到它:PHP語法問題與頭
<?php
if isset $_POST['tutorial'] {
header('Location: /phonebooks?tutorial=1b');
} else {
header('Location: /phonebooks?phonebook_created=1');
};
?>
我在做什麼錯?
您在if條件和$_POST['tutorial']
附近缺少括號,這是isset
的一個參數。它應該是:
<?php
if (isset($_POST['tutorial']))
{
header('Location: /phonebooks?tutorial=1b');
}
else
{
header('Location: /phonebooks?phonebook_created=1');
}
?>
正如在評論中指出,需要一個絕對URL的Location
頭以及(所以不是/phonebooks?tutorial=1b
,你需要指定http(s)://yourdomain.com/phonebooks?tutorial=1b
)。
根據RFC的規定,'Location:'標頭應該是完整的URI(即它們應該以'http://'或'https://'開頭。 – TRiG 2010-08-13 15:12:08
單個條件'if'聲明?這是一段時間,因爲我已經剔出了PHP技能 – 2010-08-13 15:12:58
@Anthony是的,括號是所有需要條件('if','for','while'等)的php關鍵字的條件。 ) – 2010-08-13 15:13:47
好的,首先,您需要使用括號。多個括號。
第一組需要去各地if結構的內容:
if (...) {
第二組需要去各地isset()
函數調用:
isset($_POST['tutorial'])
所以該行變爲:
if (isset($_POST['tutorial'])) {
您還有其他問題。不要在相關網址中使用位置標頭。它違背了HTTP規範。總是使用絕對URL,否則你可能會破壞一些網絡服務器(我知道IIS討厭它)或瀏覽器...
+1的解釋。 – 2010-08-13 15:31:38
這是基本的語法。在我看來,在繼續嘗試用PHP編寫代碼之前,你應該仔細閱讀它。這會讓事情在未來更順利。 – 2010-08-13 15:12:11