首页 > 解决方案 > 只有当变量满足特定条件时,有没有办法在 php 中重定向?

问题描述

我有类似的东西

这可能吗?

if(this works){
echo "this works";
header( "refresh:5;url=wherever.php" );
}else{
echo "it didnt work";
header( "refresh:5;url=somewhereelse.php" );
}

标签: phpif-statementredirect

解决方案


不,但只是因为您在尝试执行 header() 之前执行了回显,您无法在发送任何页面之后将标题发送到浏览器。echo将开始向页面发送数据的过程,就像任何事情一样,甚至是在你<?php这样做之前的一个空格

但是假设您在运行此代码之前没有其他输出发送到浏览器,您可以这样做

if($sometest){
    header( "refresh:5;url=wherever.php" );
    echo "this works";
}else{
    header( "refresh:5;url=somewhereelse.php" );
    echo "it didnt work";
}

然而实际上,当您重定向到另一个页面时,回声永远不会到达浏览器(当前页面),所以您可以这样做

if($sometest){
    header( "refresh:5;url=wherever.php" );
}else{
    header( "refresh:5;url=somewhereelse.php" );
}

如果您真的需要查看消息,则必须将其添加到重定向页面的查询字符串中,或​​者将其放入 SESSION 中,然后重定向页面必须查找消息并将其作为其页面内容的一部分发送.


推荐阅读