Re: PHP 4 SESSION + MYSQL + MOD_REWRITE

From: Date: Wed, 13 Dec 2000 22:13:53 +0000
Subject: Re: PHP 4 SESSION + MYSQL + MOD_REWRITE
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-30196@lists.php.net to get a copy of this message
On the page where you are unsure what variables to use, add a line at the top of your page: <?php phpinfo();?> This will show you what variables are available, and you should be able to figure out what to use. ----- Original Message ----- From: <RalphGzman@aol.com> Newsgroups: php.general Sent: Wednesday, December 13, 2000 11:24 AM Subject: [PHP] PHP 4 SESSION + MYSQL + MOD_REWRITE > Ok, I've been breaking my head on this one for a while now. This is my first time working with sessions. I am following one of the examples in the "Web Application Development with PHP 4" book. I am storing sessions in a mysql db then passing the session from page to page doing a URL rewrite with mod_rewrite. This part of it is working correnctly. > > But I am confused as to how I retrive the session_id or any of the other session variables. > > The entries in the sessions table look like this: > > COLUMN 1: id > -------------------------- > 16d77df44f8b0ed2627a9f27c3a7bc8c > > COLUMN 1: data > -------------------------- > session_id|s:12:"976724840763";counter|i:1;username|s:5:"joe";password|s:7:" towtruck"; > > COLUMN 3: timestamp > -------------------------- > 20001213082720 > > This is the function that starts the session and sends header for the url rewrite: > > function session_start_from_rewrite() > { > global $HTTP_HOST, $REQUEST_URI; > > ereg("/([0-9a-z]{32})", $REQUEST_URI, $regs); > $session_id = $regs[1]; > > if(!isset($session_id) || empty($session_id)) > { > srand((double)microtime()*1000000); > $session_id = md5(uniqid(rand())); > > $destination = > "http://$HTTP_HOST/$session_id$REQUEST_URI"; > header("Location: $destination"); > } > > session_id($session_id); > session_start(); > } > > After authenticating use, this code saves session vars to db and calls the session_start_from_rewrite() function to start the session: > > process_login.php > -------------------------- > .. > if ($exist_user) { > $counter = 0; > session_set_save_handler("sess_mysql_open", "", > "sess_mysql_read", "sess_mysql_write", "sess_mysql_destroy", "sess_mysql_gc"); > session_start_from_rewrite(); > session_register("session_id"); > session_register("counter"); > session_register("username"); > session_register("password"); > $counter++; > } else { > .. > } > > To test sessions I created a seperate temp page with the following: > > .. > session_start_from_rewrite(); > > $echo "$username"; > $echo "$password"; > $echo "$session_id"; > . > > But I get blank. > > So my questions are: > > 1. Do I need to store the session id with the rest of my variables in the data column as I am doing now? > > 2. When I verify wether session id is set, do I check for $session_id or $PHPSESSID? > > 3. Why can't I retrieve session variables on my temp page, what am I missing? > > Shine some light on me with this one! > > Thanks in advance. > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net >

« previous php.general (#30196) next »