2015-12-30 19 views
13

Pracuję z PHP 5.xx od lat, ale ostatnio zaktualizowałem do PHP 7. Nie mogę tworzyć sesji.Sesje w PHP 7

Przeczytałem dokumentację.

We wcześniejszych PHP, po prostu trzeba zrobić:

session_start(); 

rozpocząć sesję, ale to nie działa w PHP 7 i moja strona ładuje się. Dostarczyłem tablicę również w parametrze, jak udokumentowano na stronie PHP, ale wciąż ładuje stronę.

Próbowałem to:

session_start([ 
'cache_limiter' => 'private', 
'read_and_close' => true, 
]); 

Ale moja przeglądarka ładuje się i po kilku sekundach wyświetla 'Ta strona nie jest dostępna'

Apache błędy Restart:

[śro Dec 30 00: 45: 16.470001 2015] [mpm_winnt: notice] [pid 2384: tid 376] AH00455: Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.0 skonfigurowane - wznawianie normalnych operacji

[Wed 30 grudnia 00: 45: 16,470001 2015] [mpm_winnt: Błędy] [pid 2384: tid 376] AH00456: Apache salon VC14 Server wbudowany: Dec 9 2015 10:17:39

[Wed 30 grudnia 00: 45: 16.470001 2015] [core: notice] [pid 2384: tid 376] AH00094: Wiersz poleceń: 'c: \ xampp \ apache \ bin \ httpd.exe -d C:/xampp/apache'

[Śr 30. 30: 45: 16.470001 2015] [mpm_winnt: notice] [pid 2384: tid 376] AH00418: Parent: Utworzono proces potomny 1716

[Śr 30 grudnia 00: 45: 17.172064 2015] [ssl: warn ] [pid 1716: tid 384] AH01909: www.example.com:443:0 certyfikat serwera NIE zawiera identyfikatora, który pasuje do nazwy serwera

[Śr. 30 00: 45: 17.343941 2015] [ssl: warn] [pid 1716: tid 384] AH01909: www.example.com:443:0 certyfikat serwera NIE zawiera identyfikatora, który pasuje do nazwy serwera

[Śr. 30 00: 45: 17.375192 2015] [mpm_winnt: notice] [pid 1716: tid 384] AH00354: Dziecko: Uruchamianie 150 wątków roboczych.

+0

interesujące. Jakieś błędy pojawiły się na ekranie/w dzienniku błędów? – Raptor

+0

Moja zakładka ładuje się, a po kilku sekundach wyświetla się "Ta strona jest niedostępna" – Waleed

+0

brak logów w pliku 'error.log'? * Zakładając, że używasz Apache * Większość przypadków powolnego 'session_start()' jest spowodowana niepowodzeniem w tworzeniu plików sesji w określonym katalogu sesji. Sprawdź także ustawienia, aby zlokalizować katalog sesji i upewnij się, że ma on uprawnienia. – Raptor

Odpowiedz

-3

Użyłem

$sss = $this->Loginmodel->validation(); 
$this->load->library('session'); 


if ($this->form_validation->run() == FALSE) { 

    $this->load->view('navbar'); 
    $this->load->view('login'); 
    $this->load->view('footer'); 
} else if ($sss) {//if user is valid get session data to an array 
    foreach ($sss as $row) { 
     $sess_array = array(
      'type' => $row->type, 
      'name' => $row->name, 
      'email' => $row->email, 
      'user' => $row->name, 
      'music' => array(), 
      'ptype' => $row->type, 
      'id' => $row->id 
     ); 
     //set user as loged in 
     $this->session->set_userdata('logged_in', $sess_array); 
    } 

    $data = array(); 
    $session_data = $this->session->userdata('logged_in'); 
    $data['name'] = $session_data['name']; 
    $data['email'] = $session_data['email'];    
    $data['type'] = $session_data['type']; 

dla sesji .... W celu przyporządkowania różnych sesji, gdy użytkownik jest zalogowany w różnych przeglądarkach czasami.

Zanim to upewnij się, aby edytować plik konfiguracyjny autoload jeśli używasz kodu zapalnika ramy

$autoload['libraries'] = array('javascript', 'database', 'form_validation', 'session'); 
+0

Jak to jest istotne? – Michael

3

znalazłem jego błąd związany z wersją xampp tj x86 or x64 bitowym. Mam system z x64 bitowymi oknami i zainstalowałem xampp z php7, ale był to bit x86 bit. To był powód tego błędu: apache crashes.

Teraz oddzielnie zainstalowałem apach2.4 (x64) i PHP7.0.1, który działa teraz idealnie.