3

だから私は自分のためにブログを作っていて、自分に管理者権限を与えるためにクッキーを設定しています。その存在を手動で確認しました。

そして、Apacheサーバーを使用してラップトップでコードをテストしましたが、コードは正常に動作します.

私は2つのphpページを持っています

最初に Cookie を検出し、フォームからこの php ページに投稿します。

<?php



if(isset($_POST['tt'])){

    if(isset($_COOKIE['name'])){
        echo "something";

何かが印刷されている

上記のページは、Cookie を検出する唯一のページです。さらに 7 つのファイルがあり、どれも Cookie を検出しません。ここにトップページを載せます

    if(isset($_GET['cat'])){
    $t = $_GET['cat'];
    $mod = "where `cat`=$t";
}

    $ref = mysql_query("SELECT * FROM `content`".$mod);
    while($row = mysql_fetch_assoc($ref)){
        $tit = $row['title'];
        $cno= $row['cno'];
        $brief = $row['brief'];
        $cat = $row['cat'];
        $time = $row['time'];
        $t = "";
        if(isset($_COOKIE['name'])) echo "something";

何かが印刷されていません

また、1) 最初のコード セグメントを除いて、他のどのページも post メソッドを使用せず、Cookie をチェックするにデータを取得します。残りのページには、上に示したように Cookie をチェックする前に get メソッドがある場合がありますが、どれもありません。 Cookie をチェックする前にポスト メソッドを使用します。

これはphpの設定の問題だと思いますか?

4

2 に答える 2

4

CookieはパスCookieである可能性があります。つまり、1つのページにのみ送信されます。Firebugの[Cookie]タブ(または同様のツール)を使用してこれが当てはまるかどうかを確認し、Firebugの[ネットワーク]タブ(または同様のツールまたはWireshark)を使用してCookieが実際にブラウザから送信されているかどうかを確認します。

于 2013-01-01T02:36:49.283 に答える
3

どこで/どのようにCookieを設定していますか?pathPHP Cookieを設定する場合、[n](オプション)の4番目の引数があります。

http://php.net/manual/en/function.setcookie.php

例えば:

setcookie("cookiename","cookievalue", $time);現在のURLパスにのみ設定されます

一方:setcookie("cookiename","cookievalue", $time,"/"); そのドメインのすべてのページ/フォルダにCookieを設定します。

グーグルクロームでCTRL+SHIFT + Jを押し、[リソース]タブをクリックすると、Cookieとそれが有効なパスを見つけることができます。それを確認します。おそらくこれが理由ですか?

于 2013-01-01T02:45:02.320 に答える