問題は、この設定
であります
$config['sess_save_path'] = NULL;
あなたが$config['sess_driver'] = 'files';
を使用する場合は、それらのファイルは、CodeIgniterのindex.php
ファイルの使用これと同じレベルである「セッション」という名前のフォルダになりたいならば、あなたは、例えば
$config['sess_save_path'] = 'the/absolute/path_to_your/session_files';
を必要としています。
$config['sess_save_path'] = FCPATH.'sessions/';
定数FCPATH
CIのindex.php
が配置されているフォルダへの絶対パスです。通常、これはパブリックHTMLファイルのルートフォルダでもあります。 FCPATH
は、Linuxでは/var/www/yoursitename/
、WindowsではC:\Users\YourName\Documents\www\yoursitename\
のようになります。
"public" htmlファイルの外にセッションフォルダを置くことは良いセキュリティポリシーと考えられます。つまり、FCPATH
より上のディレクトリです。この場合、「セッション」フォルダはパブリックHTMLファイルと同じレベルにあります。設定はこれです。
$config['sess_save_path'] = substr(FCPATH, 0, strpos(FCPATH, 'www/'))."sessions/");
上記'www/'
が公開(ルート)のhtmlフォルダの名前と同じにする必要があることに注意してください。
また、ファイルがそのフォルダへの書き込み権限が正しく設定されている必要があります。 documentationを参照してください。
セッションライブラリをautoload.phpにロードしましたか? –
はい、ちょうどこのようになります:$ autoload ['libraries'] = array( 'database'、 'email'、 'session'); –
行 '$ config ['sess_save_path'] = NULL;'を削除するか、実際のサーバーパスに設定してください – splash58