我正在使用xajax框架
我希望将我的网址重定向到for循环。 每次最后都去home.php
我的示例代码就是这个
for($i=0;$i<4;$i++) {
if($i == 1) {
header("index.php")
} else {
header("home.php")
}
}
答案 0 :(得分:6)
好吧,因为'$ i'的起始值是0,所以else块将在第一次被调用时指向home.php。
为什么甚至有一个循环来做到这一点?这毫无意义。
答案 1 :(得分:2)
该代码的重点是什么?您的脚本中只能有一个重定向。
而且,它应该写成这样:
header('Location: home.php');
exit;
没有退出,代码一直在运行。
答案 2 :(得分:0)
这是一个简单的错误,我自己陷入了很多,但是header()可以设置很多不同的标题;您需要实际指定Location标头(使用要重定向到的页面):
header("Location: index.php")
答案 3 :(得分:0)
关键是重定向后,它会加载一个全新的页面。 PHP将所有内容都重新启动,因此您的循环将以新的方式启动。这意味着在每个页面上$ i将从0开始并循环到3。
标题(“位置...不会自动重定向您,您已向用户发送内容或停止页面(使用exit或die)发送标题。因此您的for循环将始终重定向到home.php,因为它是for循环中设置的最后一个标题,而不是因为它是第一个。
答案 4 :(得分:-2)
我同意这篇文章:redirect problem in for loop in PHP
但是如果你仍然想要这样做,你可以通过传递一个定义你的循环已经执行的变量来找到一些解决方法+你应该在重定向页面时结束执行。
您可以使用此代码并按照自己的方式进行更改:
if(!isset($_GET['ex']) || $_GET['ex'] != '1') //can use ether isset or/and check its value
{
for($i=0;$i<4;$i++)
{
if($i == 1)
{
header("index.php?ex=1");
die(); //or exit();
} else {
header("home.php?ex=1");
die(); //or exit();
}
}
}