1

codeigniterモデルでログイン機能を使用しようとしていますが、そこで Cookie を取得できません。

bool false を返します。

問題の検索を試みましたが、問題の 1 つは Cookie が設定されていないことでしたが、ドメイン localhost の下のブラウザーで Cookie が設定されています。そして、以前に別のプロジェクトで localhost で Cookie を使用しようとしましたが、codeigniter を使用せずに、localhost で Cookie を取得できました。

ここで$_COOKIE['username']は、無効なインデックス「ユーザー名」というエラーがスローされ、$this->input->cookie('username')が返されbool(false)ます。しかし、ブラウザに「ユーザー名」Cookie が表示されます。

設定および取得された Cookie は別のファイルにあります。

public function checkLogin(){

    $this->load->helper('cookie');

    $row['user']    = $this->input->cookie('username', TRUE);
    $row['handle'] = $this->input->cookie('email', TRUE);
    $row['id']      = $this->input->cookie('pid', TRUE);
    $row['type']    = $this->input->cookie('type', TRUE);
    $row['slug']    = $this->input->cookie('slug', TRUE);
    $row['cuid']    = $this->input->cookie('cuid', TRUE);

    return  $this->input->cookie('username', false);
    }
}

Cookieを別のファイルに設定しましたが、

setcookie("username",$user, time()+60*60*60*24*30);
setcookie("email",$handle, time()+60*60*60*24*30);
setcookie("pid",$row['id'], time()+60*60*24*30*60);
setcookie("type",$type, time()+60*60*24*30*60);
setcookie("slug",$row['slug'], time()+60*60*24*30*60);
setcookie("city",$row['city'], time()+60*60*24*60*30);
setcookie("cuid", $code, time()+60*60*24*60*30);

必要な詳細情報をお尋ねください。モデルではなく、コントローラーでコンストラクト関数 (2 つのアンダースコア) を使用しました。Cookie が設定されているフォームは、コントローラーまたはモデルではなく、ルート フォルダーにあります。そして、私も使用してCookieを設定しようとし$this->input->set_cookie();ました。

4

1 に答える 1

1

localhost は、Cookie を設定するファイルに従ってパスを設定できます。

パスを明示的に宣言します。

setcookie("username",$user, time()+60*60*60*24*30, "/");

パスが「/」の Cookie はどこでも取得できますが、それ以外の場合は取得できません。

于 2013-07-01T09:43:55.783 に答える