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
Post a Comment