我有一个网页,我们称其为main.php,其中显示了足球场的图像以及分布在该场上的一些球员。但是,该页面使用list.php作为加载播放器列表的右侧框架。

发生的情况是,当用户在字段(main.php)上单击某个球员时,假设在守门员(GK)的图像上,来自世界各地团队的GK列表将加载到右侧列表帧(列表)中。 php)。这是通过使用ajax。

到目前为止,我们还不错。

当前的情况是,会话超时且用户从字段中单击某个播放器时,不会加载右侧的列表,而是该列表中的播放器列表消失,并且在屏幕上显示“请登录”消息右侧框架(list.php)

目的是,当会话超时时,我希望整个网站重定向到主页index.php

问题是,我已经将重定向代码放在负责显示消息“请登录”的代码之前。但是发生的是,重定向发生在框架内,所以我最终让main.php显示了该字段,而list.php显示了主页!

这是我添加的代码。

$user_id = NSession::get('user_id');
 if (!isset($user_id))
{
        NSession::removeall();
        General::Redirect('index.php');
}


他们正在使用Smarty。顺便说一句,我在main.php的顶部添加了相同的代码,现在,如果用户尝试不登录而访问main.php,它将把他重定向到主页,因此该代码有效!

n.b.该项目不是我的,它属于我工作的公司。
而且我不知道哪个代码正在检查会话,我所知道的全部是,如果用户在会话超时后从该字段单击播放器,则“请登录”消息将显示在框架中。

最佳答案

我猜重定向基本上与使用header()函数相同。无法使用php重定向指定目标,因为它是服务器端-指定目标是客户端。

您需要在屏幕上打印如下内容:

<script type="text/javascript">window.open('index.php','_parent');</script>


这样会将用户重定向到索引。

08-06 02:46