簡體   English   中英

將CodeIgniter與普通的PHP會話一起使用,在哪里添加session_start();

[英]Using CodeIgniter with normal PHP sessions, where to add session_start();

我在使用CodeIgniters實現在重定向后被刪除的會話時遇到了一些麻煩所以我正在恢復正常的PHP會話。

session_start();的最佳位置在哪里session_start(); 假設我想在每個頁面上調用它而不將其添加到每個控制器構造函數中?

我猜它把它放在主要的index.php的頂部會工作正常,只是想確保這樣做不會破壞任何東西或者是否有更好的/標准的地方放置它?

這就是我總是使用包含應用程序范圍代碼的擴展控制器的原因。

要擴展codeigniter控制器,請將此代碼放在名為MY_Controller.php的文件中,並將其保存到核心文件夾中。

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        session_start();
    }
}

如果您決定使用此解決方案,則所有控制器都需要擴展MY_Controller。

創建核心系統類

你可以很容易地把它們放在index.php 這是您的codeigniter應用程序的入口點,並在每個請求時調用。

雖然通常不建議這樣做,但是當您升級codeigniter版本時,您需要記住將自定義項復制到index.php。

而不是index.php,您可以使用prerequest 鈎子

不能使用session_start(); 直接在codeigniter中。 相反,你必須使用:

$this->library->load('session');
$this->session->set_userdata(array('name' => 'name','age' =>
 'age','etc' => 'etc');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM