php - Conditional Javascript Redirect With Back Button Checker -


i have done conditional redirect javascript (depending of referer). need detect if user got redirected , clicked button , got again page has been redirected from. in case need no redirect him again.

i have found solution here - failed combine php , javascript properly, there error - how detect if user has got page using button?

code:

<form name="ignore_me"> <input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" /> </form>  <script language="javascript" type="text/javascript"> var dirty_bit = document.getelementbyid('page_is_dirty'); if (dirty_bit.value == '1')  {  document.write("<p>do not redirect</p>");  } else {  <?php if((stristr($_server['http_referer'],"thoughts") != false) { ?>  <?php $setupform = '<form id="form1" method="post" action="http://yahoo.com">'; ?> <?php $submitform = 'document.getelementbyid(\'form1\').submit(); </form>'; ?> <?php echo $setupform;  ?> <?php echo $submitform; ?>  <?php } ?> }  function mark_page_dirty() { dirty_bit.value = '1';  } </script>   

what wrong here?

the error doesn't redirect - gives blank page code on it:

<form name="ignore_me"> <input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" /> </form>  <script language="javascript" type="text/javascript"> var dirty_bit = document.getelementbyid('page_is_dirty'); if (dirty_bit.value == '1')  {  document.write("<p>my first javascript</p>");  } else {   <form id="form1" method="post" action="http://yahoo.com">document.getelementbyid('form1').submit(); </form>  }  function mark_page_dirty() { dirty_bit.value = '1'; } 

i took @ code , here points:

  • when mixing php , js, remember, php code executed first, not read of js statements

you put block of php code if statement of js.

here possible solution you: php logic first:

$redir = false ; if((stristr($_server['http_referer'],"thoughts"))) {   $redir = true ; } 

html form:

<form id="check" action="a.php" method="post">   <input type="hidden" name="durty_bit" value="1" /> </form> 

js check:

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

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -