javascript を使用して条件付きリダイレクトを実行しました (リファラーによって異なります)。ただし、ユーザーがリダイレクトされたかどうかを検出する必要があり、ユーザーが戻るボタンをクリックして、リダイレクト元のページに再びアクセスしました。この場合、彼を再度リダイレクトする必要はありません。
ここで解決策を見つけました - しかし、php と JavaScript を適切に組み合わせることができなかったので、常にエラーが発生します -ユーザーが戻るボタンを使用してページに移動したかどうかを検出するにはどうすればよいですか?
コード:
<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>
ここで何が問題なのですか?
エラーは、単にリダイレクトされないことです-コードが記載された空白のページが表示されます。
<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';
}