From: [EMAIL PROTECTED] Operating system: Debian 2.3 (testing/unstable) with kernel 2.4.2 PHP version: 4.0.4pl1 PHP Bug Type: *Session related Bug description: complex objects and references not saved Here is a sample code that produces totally random results. Elements of container become integers, switch places or even become objects from other script run on the server before when saving and restoring sessions. ///////////////example////////////////////////////////////// class elt { var $a; var $b; var $c; function elt($a, $b, $c) { $this->a=$a; $this->b=$b; $this->c=$c; } function print_elt() { echo htmlspecialchars($this->a.' '.$this->b.' '.$this->c).' <br> '; } } class container { var $arr; function container() { $this->arr=array(); } function put($elt) { $num=sizeof($this->arr); $this->arr[$num]=$elt; $this->arr['num_'.$num]=&$this->arr[$num]; } function get_by_num($num) { return $this->arr[$num]; } function get_by_text($num) { return $this->arr['num_'.$num]; } } session_register('x'); if (isset($x)) { $tmp=$x->get_by_num(0); $tmp->print_elt(); $tmp=$x->get_by_text(0); $tmp->print_elt(); $tmp=$x->get_by_num(1); $tmp->print_elt(); $tmp=$x->get_by_text(1); $tmp->print_elt(); $tmp=$x->get_by_num(2); $tmp->print_elt(); $tmp=$x->get_by_text(2); $tmp->print_elt(); } else { $x=new container; $x->put(new elt(1, 2, 3)); $x->put(new elt('aaa', 'bbb', 'ccc')); $x->put(new elt('x', 'y', 'z')); } ////////////end of example////////////////////////////////// I use precompiled Debian packet (at the moment I'm writing this 4.0.4pl1-5) with modules xml, pgsql, ldap and imap. As server I use apache (Debian packet version 1.3.14-2.3) Here is my ini file: //////////////////php.ini/////////////////////////////////// engine = On short_open_tag = On asp_tags = Off precision = 14 y2k_compliance = Off output_buffering = Off output_handler = implicit_flush = Off allow_call_time_pass_reference = On safe_mode = Off safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH disable_functions = highlight.string = #DD0000 highlight.comment = #FF8000 highlight.keyword = #007700 highlight.bg = #FFFFFF highlight.default = #0000BB highlight.html = #000000 expose_php = On max_execution_time = 30 memory_limit = 8M error_reporting = E_ALL & ~E_NOTICE display_errors = On display_startup_errors = Off log_errors = Off track_errors = Off warn_plus_overloading = Off variables_order = "EGPCS" register_globals = On register_argc_argv = On post_max_size = 8M gpc_order = "GPC" magic_quotes_gpc = On magic_quotes_runtime= Off magic_quotes_sybase = Off auto_prepend_file = auto_append_file = default_mimetype = "text/html" include_path = doc_root = user_dir = enable_dl = On file_uploads = On upload_max_filesize = 2M allow_url_fopen = On [Syslog] define_syslog_variables = Off [mail function] SMTP = localhost sendmail_from = [EMAIL PROTECTED] [Debugger] debugger.host = localhost debugger.port = 7869 debugger.enabled = False [Logging] [Java] [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [MySQL] mysql.allow_persistent = On mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = [mSQL] msql.allow_persistent = On msql.max_persistent = -1 msql.max_links = -1 [PostgresSQL] pgsql.allow_persistent = On pgsql.max_persistent = -1 pgsql.max_links = -1 [Sybase] sybase.allow_persistent = On sybase.max_persistent = -1 sybase.max_links = -1 sybase.min_error_severity = 10 sybase.min_message_severity = 10 sybase.compatability_mode = Off [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [browscap] [Informix] ifx.default_host = ifx.default_user = ifx.default_password = ifx.allow_persistent = On ifx.max_persistent = -1 ifx.max_links = -1 ifx.textasvarchar = 0 ifx.byteasvarchar = 0 ifx.charasvarchar = 0 ifx.blobinfile = 0 ifx.nullformat = 0 [Session] session.save_handler = files session.save_path = /tmp session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.serialize_handler = php session.gc_probability = 1 session.gc_maxlifetime = 1440 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 1 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatability_mode = Off [Assertion] [Ingres II] ingres.allow_persistent = On ingres.max_persistent = -1 ingres.max_links = -1 ingres.default_database = ingres.default_user = ingres.default_password = [Verisign Payflow Pro] pfpro.defaulthost = "test.signio.com" pfpro.defaultport = 443 pfpro.defaulttimeout = 30 [Sockets] sockets.use_system_read = On extension=imap.so extension=ldap.so extension=pgsql.so extension=xml.so /////////////////end of php.ini///////////////////////////// -- Edit Bug report at: http://bugs.php.net/?id=9606&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]