2012-05-02 13 views
1

ここで私はJavaScriptで何をしますか? PHPでそれを行う方法はありますか? 私はこの機能を必要とするが、JavaScriptは使用できないプロジェクトに取り組んでいます。PHPを使用して履歴の変更を検出していますか?

setInterval ("checkHistory()", 1000); 

function checkHistory() { 
    if (oldHistLength != history.length) { 
     removegateway(); 
     oldHistLength = history.length; 
    } 
} 
+0

あなたはサーバー側からブラウザの履歴を読みたいのですか? – glenatron

+0

なぜjsを使用しないのですか?あなたは単にajaxリクエストでphpにデータを送ることができます。 – CKKiller

+0

@ChristopherKenney私はPeggyがJavaScriptを全く使用できないと言っています。私は正しい? – CJxD

答えて

2

申し訳ありませんが、PHPを使用して行うことはできません。あなたの唯一の選択肢はどこかでJavaScriptを使うことです。

しかし、PHPセッションとURIを要求する別の方法でやりたいことを達成できます。

これは、ユーザのアクセスしたURLを、現在のセッション内のウェブサイトのどこでも参照できる変数(またはMySQLを使用できる)に格納することを含みます。 、あなたは$ _SERVER [「PHP_SELF」]の値は、serialize()それを含む配列を維持し、セッション変数に格納することができ、あなたのコードで

<?php 
session_start(); 

// Retrieve/create the current list 
if(isset($_SESSION['history'])) { 
    $history = $_SESSION['history']; 
} else { 
    $history = new array(); 
} 

// Add the current URL to the history array 
array_push($history, $_SERVER['REQUEST_URI']); 

// Do anything else you want to here 

// Store the array again 
$_SESSION['history'] = $history; 
?> 
0

はここ(未テスト)の例です。これはあなたがしようとしていることには十分ではないかもしれません。私はremovegateway()が何をするのか分からないが、このコードはバックボタンが使われないようにしようとしているのだろうか?

ページがキャッシュされないようにすると、配列内の最後の値と現在のページとを比較し、一致する場合は戻るボタンが検出されることがあります。これは、フロントエンドの前のページに戻る方法がない場合にのみ可能です。

バックボタンを防ぐことは一般的には悪いことであると考えられますので、あなたがやっていることを再考してより良い解決策を考え出す方がよいでしょう。

関連する問題