为了账号安全,请及时绑定邮箱和手机立即绑定

PHP页面重定向

/ 猿问

PHP页面重定向

PHP
翻阅古今 2019-09-21 15:27:49

PHP是否可以在执行函数后进行重定向调用?我正在创建一个函数,希望将其重定向到位于同一根文件夹中的文件。能做到吗


 if {

      //i am using echo here

 }


 else if ($_SESSION['qnum'] > 10) { 

            session_destroy();

            echo "Some error occured.";

            //redirect to user.php

        }


查看完整描述

3 回答

?
jeck猫

是的,您将使用标题功能。


/* Redirect browser */

header("Location: http://www.yourwebsite.com/user.php"); 

exit();

exit()在此之后立即调用是一个好习惯,这样就不会执行其下面的代码。


另外,从文档中:


请记住,必须先通过常规HTML标记,文件中的空白行或从PHP发送任何实际输出,然后调用header()。使用include()或require(),函数或另一个文件访问函数读取代码,并在调用header()之前输出空格或空行,这是一个非常常见的错误。使用单个PHP / HTML文件时,存在相同的问题。


这意味着您不应在header()函数之前回显任何内容,因为这样做很可能会引发错误。另外,您还需要在所有其他输出之前验证此代码是否已运行。


查看完整回答
反对 回复 2019-09-21
?
慕桂英4014372

使用javascript作为故障保护将确保用户被重定向(即使标头已经发送)。干得好:


// $url should be an absolute url

function redirect($url){

    if (headers_sent()){

      die('<script type="text/javascript">window.location=\''.$url.'\';</script‌>');

    }else{

      header('Location: ' . $url);

      die();

    }    

}

如果您需要正确处理相对路径,那么我已经为此编写了一个函数(但这不在问题范围内)。


查看完整回答
反对 回复 2019-09-21
?
明月笑刀无情

 $url='the/url/you/want/to/go';

   echo '<META HTTP-EQUIV=REFRESH CONTENT="1; '.$url.'">';

这对我来说很好。


查看完整回答
反对 回复 2019-09-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信