nettuts による CI を使用した「ショッピング カートの作成」チュートリアルに従っています。最初の5分すら入っていないし、問題が発生している。
セッション システムが機能しておらず、データが渡されていないようです。いくつか読んだところ、CIは通常のphpセッションを使用せず、セッションIDを識別子として使用してデータベースに保存していることがわかります。
それで、すべてのデータベース設定が正しいことを確認し、見つけたスタックの回答に従ってセッションテーブルとフィールドを設定しました。CI がセッション テーブルにデータを書き込んで保存しているのがわかりますが、カートはページ全体にアイテムを保持していません。
オートローディングしています
$autoload['libraries'] = array('database', 'cart');
$autoload['helper'] = array('form', 'html', 'url');
これを設定しました
$config['encryption_key'] = '';
^ 私の暗号化キーは文字と数字で構成されていますが、それを使用しても問題ありません。
これがfalseに設定されているのを見たので、trueに設定しました
$config['sess_use_database'] = TRUE;
これがカートコントローラーの始まりです…</p>
class Dazcart extends CI_Controller
{
//adds item to shopping cart
function Addtocart()
{
$item = array(
'id' => '42',
'name' => 'Octane Lean Build Fast',
'qty' => 1,
'price' => 347,
'options' => array ('flavor' => 'chocolate')
);
$return = $this->cart->insert($item);
echo "<pre>";
print_r($this->cart->contents());
echo "</pre>";
}
function Showcart()
{
$cartcontents = $this->cart->contents();
echo "<pre>";
print_r($cartcontents);
echo "</pre>";
}
}
/Dazcart/Addtocart をロードするたびに、print_r ステートメントを介してアイテムがカートに正常に保存されたことを確認します。
しかし、/dazcart/Showcart をロードすると、print_r ステートメントは空の配列を表示するだけで、セッションを介してデータが渡されていないことがわかります。>: (
これが初心者のものであることは知っていますが、今では何時間も費やしており、Code Igniter は初めてです。これを理解して先に進みたいので、もっと学び、サイトを立ち上げて実行できるようにします. #欲求不満
あなたの助けに感謝。
アップデート:
確かにここに設定ファイルの私のセッション設定があります
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_use_database'] が最初は false であることに気付きました。これを true に設定しました。
CI が通常の php セッションを使用しない場合、セッション ダンプを行うにはどうすればよいですか?