似乎不能正确使用语法来得到它: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