繁体   English   中英

php中没有标题时如何重定向?

[英]How redirect without header in php?

我有controllerLoginUsu.php

<?php

require "dao/daoLoginUsu.php";  

class LoginUsuario{

    public function setDatos($aInput) {

        $obj = json_decode($aInput, true);

       $Dao = new daoLoginUsuario();
       $Dao->setDataDato($obj);

       $msj = $Dao->setDataDato($obj);


      session_start();
      if ($msj === 'si') {
          $_SESSION['msj'] = "si";
          return $msj;
          header("http://localhost:8080/formulario_web/formulario/formulario_lazos.php");
          exit; 

      }
   } 
}
?>

在启动会话并返回$ msj之后,我需要重定向,但带有标头不起作用。 一些其他解决方案?

对不起,我的英语。

如果要重定向而没有标题,请尝试以下操作:

echo "<script>";
echo "location.replace('classes.php?add=sucess')";
echo "</script>";

您忘记了位置。

尝试:

header("Location: http://localhost:8080/formulario_web/formulario/formulario_lazos.php");

您永远不会到达header()调用:

 return $msj;  // terminate function IMMEDIATELY
 header("http://localhost:8080/formulario_web/formulario/formulario_lazos.php"); // never reached

return应该在AFTER header()

答案实际上是以下两种方法的混合

如果要发布header()那么您将不希望return任何内容,因为您将强制加载新表单。 当然, return将停止执行此方法,并且在您的情况下,标头甚至都不会执行。

您也忘记添加location: header()语句的一部分。

所以

if ($msj === 'si') {
    $_SESSION['msj'] = "si";
    header("Location: http://localhost:8080/formulario_web/formulario/formulario_lazos.php");
    exit; 
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM