1

#varのURLのようにURLから値を取得mydomain.com/index.php#1したいので、URLからhas(#)値を取得したいのですが、これは1いくつかの調査の後、この記事を取得しましたhttp://www.stoimen.com/blog/2009/04/15/ read-the-anchor-part-of-the-url-with-php/

私はこのコードを使用して has(#) 値を取得します。これは正常に機能しますが、私のコードではJavaScript 機能しません:php

<script language="javascript">
var query = location.href.split('#');
document.cookies = 'anchor=' + query[1];
alert(query[1]);
</script>
<?php
echo $_COOKIE['anchor'];
?>

このコードは私にalert価値を与えますが、価値はJavaScriptありませんecho。そのための解決策はありますか?

4

5 に答える 5

1

さらに、JSで間違ったプロパティを設定しているようです(.cookieではなく.cookies):

document.cookie = 'anchor' + query[1];
于 2012-05-25T07:42:56.863 に答える
1

設定しているCookieは、次のページのリクエストまでPHPに表示されません。あなたがリンクしている記事はこれを明確に述べています:

もちろんはい。これは正しく機能していません。実際、2回目の読み込みからは正常に機能していますが、ページの最初の読み込みでは、$_COOKIE配列の内部にアンカーキーがありません。これは、ブラウザがクライアントでCookieを設定する前に、コードのこの部分が実行されるためです。

その記事には「回避策」が示されていますが、率直に言って、この種のことはごみであり、PHPに読み取らせたい場合は、この情報(のみ)をクエリフラグメントに入れないでください。

于 2012-05-25T07:38:37.737 に答える
1

送信した記事ごとに、次のようなリダイレクトを行う必要があります。

<?php if (!$_COOKIE['anchor']){ ?>
<script language="javascript">
  var query = location.href.split('#');
  document.cookie = 'anchor=' + query[1];
  window.location.reload();
</script>
<?php } ?>

<?php
echo $_COOKIE['anchor'];
?>
于 2012-05-25T07:38:44.323 に答える
0

次のリロードまでphpに渡されないCookieを設定しています。私が間違っている?

クライアントのダイナミクスは、チェーンの終わりです。

于 2012-05-25T07:34:54.823 に答える