Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带后退按钮检查器的条件Javascript重定向_Php_Javascript_Redirect_Back Button_Conditional Statements - Fatal编程技术网

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'){ 文档。写入(“不重定向””; } 否则{ 我看了一下您的

我用javascript做了一个条件重定向(取决于referer)。然而,现在我需要检测用户是否被重定向,然后他单击后退按钮,再次转到他被重定向的页面。在这种情况下,我不需要再次重定向他

我在这里找到了一个解决方案-但是我没有将php和javascript正确地结合起来,所以总是有一个错误-

代码:


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 } ?>
}