web-dev-qa-db-ja.com

以前に訪問したページIDを取得する

現在のページを訪問する直前に訪問者が訪問したページのID(またはパーマリンク)、つまりブラウザ履歴の最後のページのIDを取得します。

これはできますか?どのようにそれをする方法がありますか?

5
ptriek

これを2つの部分に分けます。

まず、最後に訪れたページのURLを格納する変数を次のように作成します。

$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

次に、 substrstrpos を使用して、 ?= / の間のID番号の後にあるすべてを削除できます。このような:

$prev_url = 'http://www.yoursite.com/?p=123';
$id_block = substr($prev_url, strpos($prev_url, "?p=")+1);
$id = substr($id_block, 0, strpos($id_block, "/"));

あるいは、 jQuery/Javascript を使っても同じことができます。

私はこれをテストしていませんが、それはうまくいくはずです - どうやってそれを教えてください!がんばろう ;)

6
cr0z3r

私はそれが私のページの1つであるかどうかも確認することを私に可能にするためにこのようなトリックをしました:

//履歴から最後のページへのリンクを取得する

$prev_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;

// nullではないかどうか、ブログのURLが含まれているかどうかを確認する

if( !empty( $prev_url ) || strpos( $prev_url, (string)get_blog_details()->domain ) !== false ) :
    //Then display it only if it's one of my blog page ?>
    <a href="<?php echo $prev_url; ?>" class="previous-history-link">The last page from history</a>
<?php endif; ?>
0
Maxime Culea