0

私のサイトで、外部ページの「訪問」に問題があります。問題は Cookie の作成にあります。私のスクリプトは、最初の訪問時に Cookie を作成しようとします。ページが外部ページ (W3C など) から読み取られると、リダイレクト ループが発生します。どうすればheader("location:*");ブラウザでしか実行できませんか。

4

3 に答える 3

2

特定のケースを実行しないでください。全員を同じように扱います。「検出」を行うのに苦労するでしょう。

リダイレクトに GET パラメータを追加します。パラメータが存在する場合は、もうリダイレクトしないでください。

于 2012-08-21T07:11:00.647 に答える
1

Not all browsers will accept cookies. Not all things that are not browsers will reject cookies. Trying to use the type of user agent to guess if it will accept your cookies is doomed to failure.

Change your workflow instead:

  1. Redirect to the set-a-cookie page
  2. Set a cookie
  3. Redirect to a different is-there-a-cookie page
  4. Display error message or redirect to the page they came in on

Better yet, don't require cookies until cookies are actually required (which is probably "When the user logs in" rather then "When you want to start gathering analytics data"). Note that the preceding sentence includes some largish assumptions.

于 2012-08-21T07:13:19.010 に答える
0

「User-agent」文字列を使用すると、コードが条件付きステートメントで実行されるのを簡単にブロックできます。

echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
于 2012-08-21T07:10:04.563 に答える