Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z odczytaniem cookie
Forum PHP.pl > Forum > Przedszkole
Testosteron
Witajcie. Mam dziwny problem. Na początek przedstawię fragment kodu:
  1.  
  2. $user_check = $this->db->query("SELECT login, password FROM register WHERE login = '" .$login. "' AND password = '" .$pass. "'");
  3. if($user_check->num_rows == 1){
  4. //jeśśli user istnieje
  5. $a = $login.$pass;
  6. setcookie('hello', $a, time()+99999);
  7. echo $_COOKIE['hello'];
  8.  
  9. } else {
  10. //jeśli podane dane są błędne
  11. echo 'Błędne dane';
  12. }


Cookie jest tworzone (zarówno nazwa jak i wartość jest ok), lecz nie wyświetlane. Zmienna sesyjna jest wyświetlana ok, z tym, że w przedstawionym wyżej fragmencie została wycięta. Pokazuje mi się komunikat, że nie zdefiniowałem zmiennej 'hello'. Pod odświerzeniu strony wszystko jest ok


Używam frameworka CodeIgniter. Na koniec wrzucam cały kod kontrolera. Od razu mówię, że dopiero uczę się CI.
  1. <?php
  2.  
  3. class Log extends ci_Controller{
  4. function index(){
  5. $this->load->database();
  6. $this->load->library('form_validation');
  7. $this->load->library('code_cookie');
  8.  
  9. //jeśli nie zostały wprowadzone dane do formularza
  10. if(isset($_SESSION['log'])) {
  11. $login = $this->code_cookie->uncode_id($_SESSION['log']);
  12. $password = $this->code_cookie->uncode_pass($_SESSION['log']);
  13. echo 'Jesteś zalogowany jako ' . $login . ' o hasle ' . $password;
  14. }elseif(isset($_COOKIE['log'] )){
  15. $login = $this->code_cookie->uncode_id($_COOKIE['log']);
  16. $password = $this->code_cookie->uncode_pass($_COOKIE['log']);
  17. echo 'Jesteś zalogowany jako ' . $login . ' o hasle ' . $password;
  18. } else{
  19.  
  20. if(isset($_POST['login']) && isset($_POST['pass']) ){
  21. //jeśli zmienne $login i $pass zostały wprowadzone
  22. $login = trim($this->form_validation->xss_clean($_POST['login']) );
  23. $pass = trim($this->form_validation->xss_clean(sha1($_POST['pass']) ) );
  24.  
  25. //sprawdź, czy wprowadzone dane są poprawne
  26.  
  27. $user_check = $this->db->query("SELECT login, password FROM register WHERE login = '" .$login. "' AND password = '" .$pass. "'");
  28.  
  29. if($user_check->num_rows == 1){
  30. //jeśśli user istnieje
  31. $a = $login.$pass;
  32. setcookie('hello', 'hello', time()+99999);
  33. echo 'Zmienna hello = ' .$_COOKIE['hello'];
  34.  
  35. } else {
  36. //jeśli podane dane są błędne
  37. echo 'Login lub hasło jest błędne';
  38. }
  39.  
  40. } else {
  41. $this->load->view('log');
  42. }
  43.  
  44. }
  45.  
  46. }
  47. }
  48. ?>


Z góry thx za odpowiedź.
Damonsson
Cookies jest widoczne dopiero po kolejnym odświeżeniu strony.
Testosteron
OK. Ustawiłem wartość sesjii i bezpośrednio po zalogowaniu odczytuję z niej a w między czasie tworzę cookie i jest ok. Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.