преобразовать в codeigniter - PullRequest
       0

преобразовать в codeigniter

0 голосов
/ 15 декабря 2010

У меня проблема с преобразованием в CI, я не знаком с сессиями в CI, помогите мне, пожалуйста

if (!isset($_SESSION["gids"])) {
    $_SESSION["gids"] = array();
}

//check for current product in visitor's shopping cart content
$i=0;
while ($i<count($_SESSION["gids"]) && $_SESSION["gids"][$i] != $_GET["add2cart"]) $i++;

if ($i < count($_SESSION["gids"])) //increase current product's item quantity
{

}
else //no such product in the cart - add it
{
    $_SESSION["gids"][] = $_GET["add2cart"];
}

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

Для установки переменной сеанса используйте:

$this->session->set_userdata('gids')

Для получения данных из переменной сеанса:

$this->session->userdata('gids'); // returns falls if gids does not exists

Для получения данных из переменной GET:

$this->input->get('add2cart');

Ссылка: Класс ввода CodeIgniter Класс сеанса CodeIgniter

0 голосов
/ 15 декабря 2010

Сначала вы должны знать, что по умолчанию CodeIgniter сохраняет свои переменные сеанса в файле cookie.Если вы хотите, чтобы сеанс хранился где-то, где могут храниться данные большого размера, измените настройки, чтобы он использовал таблицу базы данных для хранения данных сеанса.Откройте файл system / application / config.php и измените строку $ config ['sess_use_database'] в разделе переменных сеанса на:

$config['sess_use_database'] = TRUE;

, а также создайте таблицу базы данных сеанса:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
PRIMARY KEY (session_id)
);

Чтобы использовать сеансы, вы должны сначала загрузить библиотеку сеансов: (например, в system / application / controller / cmilestone.php)

function CMilestone(){
        parent::Controller();
        $this->load->library('Session');
}

Затем вы можете установить сеанс внутри одного из методов:

function something() {
   if ($this->session->userdata('gids') === false)  $this->session->set_userdata('gids',array());
   $i=0;
   $gids = $this->session->userdata('gids');
   while ($i<count($gids) && $gids[$i] != $_GET["add2cart"]) $i++;

 if ($i < count($gids)) //increase current product's item quantity
 {

 }
 else //no such product in the cart - add it
 {
     $gids[] = $_GET["add2cart"];
     $this->session->set_userdata('gids',$gids);
 }

Но я думаю, что вы действительно должны использовать POST для выполнения операций.Если вы хотите использовать xss-фильтр POST и CI, то $ _GET ["add2cart"] будет заменено на $ this-> input-> post ('add2cart', true)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...