Mam klasę:
  1. <?php
  2.  
  3. class User
  4. {
  5. var $cookie_time;
  6. var $cookie_name;
  7. var $cookie_path;
  8. var $cookie_domain;
  9. var $cookie_secure;
  10. var $template;
  11. var $type;
  12. var $ip;
  13. var $host;
  14. var $agent;
  15.  
  16. function User() {
  17. global $Config;
  18. $this->cookie_time = time() + 60 * 60 * 24 * 180;
  19. $this->cookie_name = $Config['cookie_prefix'] . "session";
  20. $this->cookie_path = $Config['cookie_path'];
  21. $this->cookie_domain = $Config['cookie_domain'];
  22. $this->cookie_secure = $Config['cookie_secure'];
  23. if( $this->_get_cookie( $Config['cookie_prefix'] . "session" ) ) {
  24. session_id( $_COOKIE[$Config['cookie_prefix'] . 'session'] );
  25. } else {
  26. $this->template = $Config['template'];
  27. $this->type = USER_ANONYMOUS;
  28. }
  29. $this->ip = $this->_get_user_ip();
  30. $this->host = gethostbyaddr( $this->ip );
  31. $_SESSION['template'] = $this->template;
  32. }
  33.  
  34. function _get_cookie( $value ) {
  35. if( isset( $_COOKIE[$value] ) ) {
  36. return $_COOKIE[$value];
  37. } else {
  38. return "";
  39. }
  40. }
  41.  
  42. function _get_user_ip () {
  43. if( isset( $_SERVER["HTTP_X_FORWARDED_FOR"] ) ) {
  44. return $_SERVER["HTTP_X_FORWARDED_FOR"];
  45. } else {
  46. return $_SERVER['REMOTE_ADDR'];
  47. }
  48. }
  49.  
  50. function save_user_data() {
  51. setcookie( $this->cookie_name, session_id(), $this->cookie_time, $this->cookie_path, $this->cookie_domain, $this->cookie_secure );
  52. echo $this->cookie_name . "<br>";
  53. echo session_id() . "<br>";
  54. echo $this->cookie_time . "<br>";
  55. echo $this->cookie_path . "<br>";
  56. echo $this->cookie_domain . "<br>";
  57. echo $this->cookie_secure . "<br>";
  58. }
  59. }  
  60. ?>

a tablica $Config wygląda tak:
  1. <?php
  2.  
  3. $Config['cookie_prefix'] = "main_";
  4. $Config['cookie_path'] = "/";
  5. $Config['cookie_domain'] = "localhost";
  6. $Config['cookie_secure'] = 0;
  7.  
  8. ?>

Problem jest następujący: po wywołaniu f-cji save_user_data(); ciasteczko się nie zapisuje, lecz gdy zastąpię tą linijkę:
  1. <?php
  2.  
  3. $this->cookie_domain = $Config['cookie_domain'];
  4.  
  5. ?>

na:
  1. <?php
  2.  
  3. $this->cookie_domain = "localhost";//$Config['cookie_domain'];
  4.  
  5. ?>


to ciasteczko się zapisuje. Więc o co chodzi?? Dlaczego jeśli informacja o domenie jest pobierana z tablicy to wtedy ciasteczko się nie zapisuje?? A jak ją przypiszę ręcznie w klasie lub dam pusta (NULL lub "") to ciasteczko się zapisuje??