2

リモートサーバーに設定されないCookieがあり、ローカルで検索できます。エラーメッセージはありません。var_dump は Null を取得し、エコーは空白です。

<php
 setcookie('ymp','14', time()+3600);
 session_start();
?> 

JavaScript Cookieをうまく設定できます。開始タグはページの 1 行目です。

何か案は

ありがとうゲイリー

編集時

以下に投稿したコメントがいくつかあります。これは3つのファイルプロセスです。

ページ 1 では、上記のように Cookie を設定します。

デバッグ用の 2 ページ目

<php var_dump($_COOKIE['ymp']); echo'<br />'.$_COOKIE['ymp'];?>

ページ3、そしてこれもすべてローカルで機能しました

 <?php
 if($_COOKIE['ymp']!=='14')
 {die('Sorry, you have not had your delightful little pastry yet.... try again.');}

?>

js cookie を設定し、別の cookie 名を反映するようにコードを変更したところ、問題なく動作しました。

また、サーバーとの時差が 2 時間あるため、時間を +86400 にリセットしましたが、これは実際には必要ではないと思います。

助けてくれてありがとう

ゲイリー

4

4 に答える 4

0

新しいページ リクエストが行われるまで、Cookie の値を読み取ることはできません。これは、Cookie データの値がページ リクエストと共に送信されるためです。そのため、値が設定されて新しいページ要求が行われるまで値にアクセスすることはできません。

また、session_start()Cookie には影響しません。それらは2つの異なるものです。(セッションは通常、Cookie を使用してセッション ID を保存しますが、それは無関係です)。

于 2012-11-18T01:40:23.807 に答える
0

Cookie のパスやドメインを指定していないことが原因である可能性があります。代わりにこれを試してください:

<?php
    setcookie('ymp','14', time()+3600, '/', 'yourdomain.com')
?>
于 2013-05-19T14:21:53.323 に答える
0

この問題は解決しませんでした。同じホストの別のドメインに新しいファイルを書き込むことになり、Cookie に別の名前と値を付けました (2 桁の値を持つ 3 文字の名前の Cookie が小さすぎる可能性はありますか??)そして、それは想定どおりに機能しました。

皆様のご協力に感謝いたします...忙しすぎて、CSIの調査をどのように、なぜ行うのかについて行うことができません。

ゲイリー

于 2012-11-18T14:24:28.437 に答える
0

これはかなり奇妙です。これは、PHP の構成と関係があると思われます。

setcookie関数の戻り値が何であるかを確認してください。関数呼び出しの前に出力が既に送信されている場合がありますFALSEスクリプトの開始時に言及しましたが、他のエンティティがデータを出力している可能性があります (サーバー上で事前に実行されたスクリプトでしょうか?)

また、ブラウザが特定のドメインからの Cookie を受け入れないように設定されている可能性もあります。設定を確認してください。

その他の関連するコードを提供し、Cookie が設定されているかどうかを確認する方法を示してください。

于 2012-11-18T01:47:04.690 に答える