Php 带后退按钮检查器的条件Javascript重定向
我用javascript做了一个条件重定向(取决于referer)。然而,现在我需要检测用户是否被重定向,然后他单击后退按钮,再次转到他被重定向的页面。在这种情况下,我不需要再次重定向他 我在这里找到了一个解决方案-但是我没有将php和javascript正确地结合起来,所以总是有一个错误- 代码:Php 带后退按钮检查器的条件Javascript重定向,php,javascript,redirect,back-button,conditional-statements,Php,Javascript,Redirect,Back Button,Conditional Statements,我用javascript做了一个条件重定向(取决于referer)。然而,现在我需要检测用户是否被重定向,然后他单击后退按钮,再次转到他被重定向的页面。在这种情况下,我不需要再次重定向他 我在这里找到了一个解决方案-但是我没有将php和javascript正确地结合起来,所以总是有一个错误- 代码: var dirty_bit=document.getElementById('page_是_dirty'); 如果(脏_位值=='1'){ 文档。写入(“不重定向””; } 否则{ 我看了一下您的
var dirty_bit=document.getElementById('page_是_dirty');
如果(脏_位值=='1'){
文档。写入(“不重定向””;
}
否则{
我看了一下您的代码,下面是一些要点:
- 当混合使用PHP和JS时,请记住,PHP代码将首先执行,它不会读取任何JS语句
您将一块PHP代码放入JS的if语句中
以下是一个可能的解决方案:
PHP逻辑优先:
$redir = false ;
if((stristr($_SERVER['HTTP_REFERER'],"thoughts"))) {
$redir = true ;
}
HTML格式:
<form id="check" action="a.php" method="post">
<input type="hidden" name="durty_bit" value="1" />
</form>
JS检查:
var check = getElementById("check") ;
if (check && check.durty_bit == 1){
document.write("<p>Do Not Redirect</p>");
} else {
<?php if ($redir){ ?>
document.write('<form id="form1" method="post" action="http://yahoo.com"> </form>');
document.getElementById("form1").submit() ;
<?php } ?>
}
var check=getElementById(“检查”);
if(check&&check.durty_位==1){
文档。写入(“不重定向””;
}否则{
文件。写(“”);
document.getElementById(“form1”).submit();
}
什么错误?请提供更多详细信息。我添加了错误内容。它根本不做任何重定向。核心重定向工作正常,我进行了测试,但一旦添加了javascript后退按钮条件,它就失败了。谢谢,但它似乎不起作用。表单不应该是操作一,而应该是隐藏的。php执行后,这就是我得到的代码-这两个页面似乎没有重定向,这就是问题所在-
<form id="check" action="a.php" method="post">
<input type="hidden" name="durty_bit" value="1" />
</form>
var check = getElementById("check") ;
if (check && check.durty_bit == 1){
document.write("<p>Do Not Redirect</p>");
} else {
<?php if ($redir){ ?>
document.write('<form id="form1" method="post" action="http://yahoo.com"> </form>');
document.getElementById("form1").submit() ;
<?php } ?>
}