标题的PHP语法问题

时间:2010-08-13 15:09:09

标签: php syntax

似乎无法使用语法:

<?php 
if isset $_POST['tutorial'] {
    header('Location: /phonebooks?tutorial=1b');
} else {
    header('Location: /phonebooks?phonebook_created=1');
};
?>

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您在if条件和$_POST['tutorial']附近缺少括号,这是isset的参数。它应该是:

<?php 
if (isset($_POST['tutorial']))
{
  header('Location: /phonebooks?tutorial=1b');
}
else
{
  header('Location: /phonebooks?phonebook_created=1');
}
?>

正如评论中所指出的,Location标题也需要绝对网址(因此,您需要指定/phonebooks?tutorial=1b而不是http(s)://yourdomain.com/phonebooks?tutorial=1b

答案 1 :(得分:3)

好的,首先,您需要使用括号。多个括号。

第一组需要绕过if结构的内容:

if ( ... ) {

第二组需要绕过isset()函数调用:

isset($_POST['tutorial'])

这条线变为:

if (isset($_POST['tutorial'])) {

您还有另一个问题。不要将位置标头与相对网址一起使用。这违反了HTTP规范。总是使用绝对URL,否则你可能会破坏一些网络服务器(我知道IIS讨厌它)或浏览器......