【问题标题】:redirect to a specific page from php从php重定向到特定页面
【发布时间】:2013-06-12 11:35:50
【问题描述】:

您好,我正在使用以下代码在 PHP 中打开页面

header('Location :login.php');

但问题是这是在页面的 div 里面做的,当我点击页面是在 DIV 里面而不是在填充屏幕上加载时,我应该在这里写什么来解决这个问题?

编辑

我正在加载这样的页面

javascript,在 main.php 中

var div = document.getElementById('content');
var url = 'my.php';
div.innerHTML = '<iframe style="width:100%;height:100%;" frameborder="0" src="' + url + '" />';

我在my.php中给出了一个注销链接,这里我需要打开一个登录页面并销毁main.php页面

【问题讨论】:

  • 你是通过 ajax 加载的吗?
  • 不,页面是使用javascript加载到一个div中
  • 那么您需要更改 javascript 以将其加载到 &lt;body&gt; 而不是 &lt;div&gt;
  • 这样比较好用模板引擎分离逻辑。
  • 查看我更新的问题

标签: php


【解决方案1】:

不要像现在这样返回重定向(仅重定向您的框架),您必须重定向顶部框架。

由于您的代码在 IFRAME 中加载,因此您需要更改 TOP 框架位置,或者返回标题,返回以下 javascript:

<script type="text/javascript">
window.top.location = "http://www.example.com/path/login.php";
</script>

诀窍是使用window.top 而不是window

【讨论】:

    【解决方案2】:

    您在发送标头之前显示内容。

    if ( !headers_sent() ) {
        header("Location: login.php");
    } else {
        echo '<meta http-equiv="refresh" content="0;url=login.php">';
    }
    

    Javascript 重定向。

    <script type="text/javascript">
    window.location = "http://www.domain.com/login.php";
    </script>
    

    【讨论】:

    • 这没有任何意义。如果他的问题真的是他发送标题太晚了,他会得到一个“Headers alreay sent”PHP 错误。在这种情况下,META 技巧将毫无用处,而 ob_start() ob_clean() 会更好。无论如何,这根本不是他遇到的问题。编辑: jscript 建议好一点,但不会更改父框架 URL。
    • @Alex-Info.net 我在更新之前提供的信息。这是一个变成 JavaScript 的 php 问题。元技巧有效。
    • 除非他幸运地仍然在 中,否则 META 将无法工作:stackoverflow.com/a/1447933/2446119
    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多