1

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

setInterval ( "checkHistory()", 1000 );

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

2 に答える 2

3

申し訳ありませんが、PHP を使用してそれを行うことはできません。唯一のオプションは、どこかで JavaScript を使用することです。

ただし、PHP セッションとリクエスト URI という別の手法を使用して、あなたがやろうとしていると私が信じていることを達成することはできます。

これには、ユーザーがアクセスした URL を変数 (または MySQL を使用することもできます) に保存することが含まれます。この変数は、現在のセッション内の Web サイトのどこからでも参照できます。

(テストされていない) 例を次に示します。

<?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;
?>
于 2012-05-02T16:22:20.260 に答える
0

コードでは、$_SERVER['php_self'] の値を含む配列を保持し、serialize()それをセッション変数に格納できます。ただし、これはあなたがやろうとしていることには十分ではないかもしれません. よくわかりませんremovegateway()が、このコードは戻るボタンが使用されないようにしようとしていますか?

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

戻るボタンを禁止することは一般的に悪いことと考えられているため、やり方を再考して、より良い解決策を考えたほうがよいかもしれません。

于 2012-05-02T16:22:56.563 に答える