<?php class User { var $cookie_time; var $cookie_name; var $cookie_path; var $cookie_domain; var $cookie_secure; var $template; var $type; var $ip; var $host; var $agent; function User() { $this->cookie_name = $Config['cookie_prefix'] . "session"; $this->cookie_path = $Config['cookie_path']; $this->cookie_domain = $Config['cookie_domain']; $this->cookie_secure = $Config['cookie_secure']; if( $this->_get_cookie( $Config['cookie_prefix'] . "session" ) ) { } else { $this->template = $Config['template']; $this->type = USER_ANONYMOUS; } $this->ip = $this->_get_user_ip(); $this->host = gethostbyaddr( $this->ip ); $_SESSION['template'] = $this->template; } function _get_cookie( $value ) { return $_COOKIE[$value]; } else { return ""; } } function _get_user_ip () { return $_SERVER["HTTP_X_FORWARDED_FOR"]; } else { return $_SERVER['REMOTE_ADDR']; } } function save_user_data() { setcookie( $this->cookie_name, session_id(), $this->cookie_time, $this->cookie_path, $this->cookie_domain, $this->cookie_secure ); } } ?>
a tablica $Config wygląda tak:
<?php $Config['cookie_prefix'] = "main_"; $Config['cookie_path'] = "/"; $Config['cookie_domain'] = "localhost"; $Config['cookie_secure'] = 0; ?>
Problem jest następujący: po wywołaniu f-cji save_user_data(); ciasteczko się nie zapisuje, lecz gdy zastąpię tą linijkę:
<?php $this->cookie_domain = $Config['cookie_domain']; ?>
na:
<?php $this->cookie_domain = "localhost";//$Config['cookie_domain']; ?>
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??