não pode usar session no codeIgniter

Eu tenho uma session no meu controlador de formulário, a session é criada quando o usuário salvar a session afetar a página do formulário, então meu problema é:

se eu carregar a página sem clicar em salvar um índice indeterminado [índice de session] aparece erro

então eu criei a session na página inicial, mas o problema é se eu carreguei a página do formulário sem visitar a página inicial no primeiro erro de índice indefinido. Eu tentei chamar o método session_start() mas recebi esse erro. Foi encontrado um erro PHP

Gravidade: Mensagem de aviso: uma session já havia sido iniciada – ignorando session_start () Nome do arquivo: views / Form.php Número da linha: 5

Recomendo vivamente a utilização da biblioteca de session CI padrão. Você pode autoload a session em autoload.php . Sua session começará automaticamente, não é necessário chamar session_start() .

Em seguida, substitua $_SESSION['save']="true" com $this->session->set_userdata('save', 'true'); .

Eu acho que você precisa verificar se a session['save'] é verdadeira ou não, então de antemão você deve declarar por padrão que a session['save'] é ” false ” no controlador padrão que é especificado nas rotas.php e também certifique-se de que o índice de session['save'] já esteja definido no seu controlador de página do formulário, verifique como este:

 if ($this->session->userdata('save')) { // do something when exist } else { $this->session->set_userdata('save', 'false'); } 

Não tenho certeza por que você está tentando implementar seu próprio gerenciamento de session dentro da CI como uma das poderosas ferramentas que a CI oferece é um sistema de gerenciamento de session flexível, simples e poderoso.

Mesmo assim, certamente uma solução simples para o seu enigma é simplesmente verificar se a variável da session está definida ou não na sua forma, e se não estiver configurada, defina-a como um valor de 0. No seu controlador, você pode lidar com isso , ou seja, verifique se o valor é 0 e, em caso afirmativo, comece uma session e atribua a variável da session, ou atire o usuário, ou faça o que for necessário para fazer quando a session não for encontrada ou estiver definida como 0 indicando uma session não foi ativada.

Sua session começará automaticamente, não há necessidade de chamar session_start () em cada controlador. A biblioteca de sessões do codeigniter cuida disso.

Primeiro, você precisa carregar a biblioteca de sessões. application / config / autoload.php

 $this->load->library("session"); 

Se você já carregou, não há necessidade de carregar novamente.

Para definir dados na session

 $this->session->set_userdata("KEY","VALUE"); 

Para obter dados da session

 $this->session->userdata("KEY");