我正在创建我的应用程序的移动版本。这是设置页面的一部分(mysettings.php)。
if(!isset($_SESSION['access_token']))
{
echo("<script type='text/javascript'> window.top.location.href='http://www.example.com/mobile/login.php'</script>");
}
如果没有设置access_token,那么它应该重定向到login.php,但我不明白为什么它不起作用。
在渲染的源代码中我可以看到,因为没有发生重定向(重定向代码存在)
<script type='text/javascript'> window.top.location='http://www.example.com/mobile/login.php'</script>
<!DOCTYPE html>
<html>
<head>...
.
.
.</html>
我正在使用Chrome,这是我登录mysettings.php页面的源代码
<?php
session_start();
$logins=0;
?>
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Settings</h1>
</div><!-- /header -->
<div data-role="content">
<div class="ui-grid-a">
<div class="ui-block-a"><a href="mysettings.php" data-role="button" data-mini="true">Settings</a> </div>
<div class="ui-block-b"><a href="my.php" data-role="button" data-mini="true">My Pictures</a> </div>
</div>
</div><!-- /content -->
<div data-role="footer">
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
答案 0 :(得分:2)
您可以使用header
PHP函数执行重定向:
<?php
if(!isset($_SESSION['access_token'])) {
header("Location: http://www.example.com/mobile/login.php");
exit;
}
?>
请注意,这需要在发送任何HTML标记之前执行
答案 1 :(得分:0)
也许尝试使用php header("Location: http://some/url");
或尝试使用window.location.href
而不是top最后尝试将脚本改为文档标记而不是之前(可能有效?...)
答案 2 :(得分:0)
我补充说
data-ajax="false"
到mysettings.php
上的按钮,它开始正常工作。谢谢