Re: Another sessions question

From: Date: Wed, 30 Apr 2003 04:53:24 +0000
Subject: Re: Another sessions question
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-145732@lists.php.net to get a copy of this message
1. Perhaps you are confusing the uses of arrays and vars? Are you wanting to do this: $error = 'your password was not correct'; //good Or this: $error['your password was not correct'] = ''; // bad way to do this Or this: $error['login'] = 'your password was not correct' // good Or this: $error[] = 'your password was not correct' // good way to queue up multiple errors 2. Clearing the array with $error = Array() doesn't clear the array, it just empties it, which is why you're getting "Array" on the page. You should be clearing the array with unset($error); 3. In regards to sessions, I don't think you NEED to be using sessions for the errors... they could be passed around in the URL. 4. Your code will be a lot cleaner, more secure, and debugging will be a little bit easier if you refer to variables with their superglobal arrays $_SESSION['error'] instead of $error; $_GET['error'] instead of $error; etc etc. Similarly $_SESSION['error'] = array('foo','bar'); $_SESSION['error'] = 'you did not enter a username'; unset($_SESSION['error']); etc etc. Justin on 01/05/03 3:54 PM, C.R. (odcs@rogers.com) wrote: > I have a login, registration, update, and a form if you forget your > password. I am using sessions to control the login and error messages. So > this is my problem > > When a user enters the login page a session is started, if the user enters > the wrong login info they will get an error message which is set in a > session variable called $error['whatever'] (this will change depending on > the error). If the user then decides he should register first, and goes to > the register page - he gets a message on the page that simply says 'Array'. > This is because the session is still active and $error['whatever'] is still > set, although I've cleared the array with - $error = array(); On each page > I have something like if($error) { echo $error['whatever']; }. I have used > done it this way to make things more uniform and understandable, but I may > also have shot myself in the foot - is there a way to get around this > without having to change the session variables for each of these pages. > > I hope I have explained this properly, or for that matter used sessions > properly - I am still trying to learn about sessions and problems like this > keep popping up. > > TIA > >

« previous php.general (#145732) next »