1

我有一个 PHP 'if' 条件,如果为真,我想用 javascript 将用户重定向到其他地方。但是它似乎不起作用,因为它总是重定向我,无论条件是否为真。

<?php
if (isset($_SESSION['lol'])) {
    ?><script type="text/javascript">
<!--
window.location = "http://www.test.org"
//-->
</script><?php
}
?>

这怎么可能?或者我怎样才能让它工作?

4

2 回答 2

3

只需在 PHP 中重定向:

<?
    if (isset($_SESSION['lol']) {
        header("Location: test.org");
    }
?>

编辑:但是如果你想使用你当前的代码,你需要回显脚本标签:

<?
    if (isset($_SESSION['lol'])) {
        echo "<script>window.location.href = 'test.org';</script>";
    }
?>
于 2013-04-08T15:16:18.400 回答
0

不管 Javascript 方法看起来多么简单,您都应该在 PHP 中进行重定向:

<?php
    header('Location: http://test.org');
    exit;
?>

首先,可能会出现 javascript 无法正常工作的情况(它可能被故意关闭,用户可能使用不兼容的浏览器,用户可能安装了 NoScript 等浏览器插件等)

此外,您应该在重定向后停止代码执行(这就是exit我的示例中存在的原因),以便恶意访问者无法忽略重定向而只是阅读页面内容。

于 2013-04-08T15:26:44.600 回答