1

セッション ヘルパーと Cookie ヘルパーの両方を実行することは可能ですか? CIのドキュメントを文字に落としてその方法で実行するか、ネイティブphpだけでCookieを操作しようとしても、私が試しているため、Cookieを設定することができません。どちらにしても、Cookie は設定されません。

私はそれらを次のように設定しようとしました:

$this->input-set_cookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife);
and
setcookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife);

そして、私は彼らと一緒に仕事をしようとしました

echo $this->input->cookie('AutoRemember');
and
echo $_COOKIE['AutoRemember'];

Cookie ヘルパーは、セッション ヘルパーと同様に自動ロードされるため、ロードされます。セッションヘルパーは魔法のように機能しますが、クッキーは頭痛の種です。私がしたいのは、Cookie を設定して、自分のサイトに「remember me」機能を持たせることだけです。これを行うには 5 分かかりますが、何かを設定するか、またはビューで設定できるようにするか、コントローラーで設定して何も設定しないようにします。

Chrome と FireFox の両方に Cookie がどこにも保存されていないように見えるため、ブラウザの問題ではないようです。

セッションと Cookie の両方を使用する場合、または Cookie の設定に関しては codeigniter のゴミであり、どちらの方法を試しても労力を無駄にします。

4

1 に答える 1

1

Expression Engine コード (Ellis Labs が提供する CI を使用するアプリ) の一部を調べると、関数内で PHP ネイティブsetcookie関数を呼び出してset_cookieいるため、おそらくこれが正しい方法です。

Cookie ヘルパーをセッション ライブラリと並行して実行しても問題はないようです。つまり、Session クラスがsetcookieCookie ヘルパーを使用するのではなく、直接呼び出していることに注意してください (コード CI を再利用する方法です!)。

一般に、PHP 関数の呼び出しはsetcookieCI をバイパスし、何があっても機能するはずです。最善の策は、おそらく最初から始めてsetcookie、それを機能させようとすることです。

setcookieからの戻り値を確認してください。false出力が既に開始されていて、それが原因で機能していない場合。CI Cookieヘルパーを試してみたのと同じ問題かもしれません。

于 2012-06-26T17:00:55.437 に答える