Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Metoda nie wysyła ciastka
Forum PHP.pl > Forum > Przedszkole
daw22
Witam,
Mam taki problem stowrzyłem klasę, która sprawdza i ustawia język. Problem w tym, że dobrze sprawdza język z ciasteczek, jednakże nie potrafi wysłać ciastka do klienta odwiedzającego stronę.
Na początek pokażę plik language.class.php
  1. <?php
  2. class Language
  3. {
  4. const MHP_L_PL = 'PL';
  5.  
  6. const MHP_L_EN = 'EN';
  7.  
  8. const MHP_L_DF = 'PL'; # Domyślny język
  9.  
  10. public function getLang()
  11. {
  12. if ( isset( $_COOKIE['mhp_lang'] ) )
  13. {
  14. switch ( $_COOKIE['mhp_lang'] )
  15. {
  16. case self::MHP_L_PL :
  17. $gl = self::MHP_L_PL;
  18. break;
  19. case self::MHP_L_EN :
  20. $gl = self::MHP_L_EN;
  21. break;
  22. default:
  23. $gl = self::MHP_L_DF;
  24. }
  25. }
  26. else
  27. {
  28. $gl = self::MHP_L_DF;
  29. }
  30. return $gl;
  31. }
  32.  
  33. /**
  34.  * Ustawia kod języka, sprawdzając COOKIE i GET['l']
  35.  *
  36.  */
  37. public function setLang()
  38. {
  39. if ( !isset( $_COOKIE['mhp_lang'] ) )
  40. {
  41. if ( isset( $_GET['l'] ) && is_string( $_GET['l'] ) )
  42. {
  43. setcookie( 'mhp_lang', ''.$_GET['l'].'', 3600 * 24 * 30 );
  44. }
  45. else
  46. {
  47. setcookie( 'mhp_lang', self::MHP_L_DF, 3600 * 24 * 30 );
  48. }
  49. }
  50. else
  51. {
  52. if ( isset( $_GET['l'] ) && is_string( $_GET['l'] ) )
  53. {
  54. setcookie( 'mhp_lang', ''.$_GET['l'].'', 3600 * 24 * 30 );
  55. }
  56. else
  57. {
  58. setcookie( 'mhp_lang', $this -> getLang(), 3600 * 24 * 30 );
  59. }
  60. }
  61. }
  62. }
  63. $LANGUAGE = new Language();
  64. ?>


A teraz jego wywołanie index.php:

  1. <?php
  2. ini_set('display_error', 1);
  3. require_once('kernel/language.class.php'); # Załadowanie klasy Language
  4. $LANGUAGE -> setLang(); # Ustawienie języka
  5. require_once('lang/lang_' . $LANGUAGE -> getLang() . '.php' ); # Załadowanie paczki językowej
  6. ?>


Skrypt dobrze odczytuje jaką paczkę ma załadować, i tutaj do Was prośba czy mógłby ktoś podpowiedzieć, pokazać błąd dlaczego nie wysyła cookie do użytkownika?

Z góry dziękuję,
Pozdrowionka
nevt
nie:
  1. <?php
  2. setcookie( 'mhp_lang', ''.$_GET['l'].'', 3600 * 24 * 30 );
  3. ?>

ale:
  1. <?php
  2. setcookie( 'mhp_lang', $_GET['l'], time() + 3600 * 24 * 30 );
  3. // albo
  4. setcookie( 'mhp_lang', $_GET['l']);
  5. ?>

analogicznie w pozostałych wywołaniach.
twoja klasa wysyłała cookie, ale z terminem ważności dawno, dawno temu, w odległej ...

powodzenia.
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.