【问题标题】:javascript redirecting to main window doesn't take into account http option (&)javascript 重定向到主窗口不考虑 http 选项 (&)
【发布时间】:2010-08-04 12:26:27
【问题描述】:

我正在尝试在 iframe 中成功登录后使用 javascript 重定向到主窗口。 这是我的代码:

    if ($_GET['redirect']!='') {
    $redirect=$_GET['redirect'];
    $smart->assign('redirect',$redirect);
}
$redirect=$_GET['redirect'];
echo $redirect;

if(isset ($_SESSION['user'])&&$_SESSION['user']!='') {

    $user->email=$_SESSION['user'];
    $user->addCorporate();
    $user->signIn();
    $user->loadSession();

    echo("<script language=\"javascript\" type=\"text/javascript\">");
    echo "document.write('redirecting...');";

    if ($redirect!='') {
       echo 'self.parent.location = "'.$redirect.'"';
   } else
        echo 'self.parent.location = "index.php"';
     //echo $redirect;

   // redirect($redirect);
    echo "</script>";
}

回显$redirect 显示http://xxxxxxxx/play.php?action=play&amp;id=d59541b89828da34e9a8345a1bdafe2b 但重定向到http://xxxxxxxx/play.php? (没有 php 选项)

【问题讨论】:

  • 顺便说一句,丢失的东西并不是 PHP 特有的,而是一般的 HTTP 并称为 URL 参数。不确定这是否是官方标题,但如果你这样称呼他们,也许它有助于吸引人们提出这个问题。

标签: php javascript http redirect


【解决方案1】:

这听起来很神秘。 下面是我将如何进行:关闭浏览器中的 JavaScript 并检查您创建的 JavaScript。然后,至少,您知道是否可能由于某种奇怪的原因打印出错误的 URL,或者问题是否出在重定向部分。

【讨论】:

  • echo 'alert("'.$redirect.'")';显示 xxxxxx/play.php?action=play(无选项)
  • 这很奇怪。但也许在 & 之后的字符串中实际上有换行符?因为它还在您的问题中显示为换行符(id 以新行开头)。
【解决方案2】:

如果换行:

 echo 'self.parent.location = "'.$redirect.'"';

到这里:

 echo 'alert("'.$redirect.'")';

会发生什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多