Php javascript重定向到主窗口不会';不考虑http选项(&;)

Php javascript重定向到主窗口不会';不考虑http选项(&;),php,javascript,http,redirect,Php,Javascript,Http,Redirect,我正在尝试在iframe中成功登录后使用javascript重定向到主窗口。 这是我的代码: if ($_GET['redirect']!='') { $redirect=$_GET['redirect']; $smart->assign('redirect',$redirect); } $redirect=$_GET['redirect']; echo $redirect; if(isset ($_SESSION['user'])&&$_SESS

我正在尝试在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>";
}
if($\u GET['redirect']!=''){
$redirect=$_GET['redirect'];
$smart->assign('redirect',$redirect);
}
$redirect=$_GET['redirect'];
echo$重定向;
如果(isset($\u会话['user'])和&$\u会话['user']!=''){
$user->email=$\会话['user'];
$user->addCorporate();
$user->sign();
$user->loadSession();
回声(“”);
echo“document.write('redirecting…');
如果($redirect!=''){
echo'self.parent.location=“”.$redirect.”;
}否则
echo'self.parent.location=“index.php”;
//echo$重定向;
//重定向($重定向);
回声“;
}
echo
$redirect
显示
http://xxxxxxxx/play.php?action=play&id=d59541b89828da34e9a8345a1bdafe2b

但是重定向到
http://xxxxxxxx/play.php
?(没有php选项)

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

如果您更改行:

 echo 'self.parent.location = "'.$redirect.'"';
为此:

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

发生了什么?

顺便说一句,丢失的东西不是PHP特有的,而是HTTP通用的,称为URL参数。不确定这是否是官方标题,但如果你这样称呼他们,可能会有助于吸引人们关注这个问题;显示xxxxxx/play.php?action=play(不带选项),这很奇怪。但也许在&?之后,你的字符串中实际上有换行符?因为它在您的问题中也显示为换行符(id从新行开始)。