Re: problem with my login script

From: Date: Tue, 02 Oct 2012 10:11:14 +0000
Subject: Re: problem with my login script
Groups: php.general 
Request: Send a blank email to php-general+get-319326@lists.php.net to get a copy of this message
Better solution than mine (that don't even make a code) As a Oo developer, a run away from using switch, so I should never use break too... Good to know. By the way, what's the problem with it? Enviado por Samsung Mobile Bálint Horváth <hbalint@gmail.com> escreveu: The problem was already solved. I forgot to send a copy to the list... Rodrigo, break!? Ohh man, it's a crazy idea... A developer DOES NOT use break at all (in a loop)... (switch is an exception) In the other hand Thomas, you should use while and count the lines and u need to test if username found... Yeah, this script is near to the good solution: <?php session_start(); $users = file("users.inc.php"); if (!empty($_POST['username']) && !empty($_POST['password'])) {     if (filter_var($_POST['username'], FILTER_VALIDATE_EMAIL)) {         $ui = 0;         while ($ui < count($users) && $error != "0") {             $user = explode(' ', trim($users[$ui]));             if ($_POST['username'] == $user[1]) {                 $_SESSION['logged_in'] = 1;                 $_SESSION['username'] = $user[1];                 $error = "0";             } else{                 $error = "2";             }             $ui++;         }     } else {         $error = "4";     } } else {     $error = "3"; } if ($error == "0") {     print("redirecting"); } else {     print("error: " . $error); } ?> On Tue, Oct 2, 2012 at 8:52 AM, Thomas Conrad <koopasforever@gmail.com>wrote: > I'm currently learning php and as a challenge, I'm creating a login > script using text files to store the information (until I learn how to > handle databases with php). > The problem I'm having is the if statement in my while loop is only > evaluated on the last iteration of the while loop, so its only > comparing the last username in the file and no others. > > Heres the code: > > <?php >         session_start(); > >         $users = file("../inc/users.inc.php"); > >                 if($_POST['username'] && >$_POST['password']){ > >                         if(ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", > $_POST['username'])){ > > >                                 while(list($id ,$username) = >each($users)){ >                                         >if($_POST['username'] == > $username){ >                                                 >$_SESSION['logged_in'] = 1; >                                                 >$_SESSION['username'] = > $username; > >                                         } >                                 } >                                 >if($_SESSION['logged_in'] != 1){ >                                         $error = >"2"; >                                 } >                         }else{ >                                 $error = "4"; >                         } >                 }else{ >                         $error = "3"; >                 } > >         if($error){ >                 header("Location: > http://koopasforever.com/scripts/login.php?error=$error"); >         }else{ >                 header("Location: >http://koopasforever.com/"); >         } > > > ?> > > I have checked all my variables and they all contain the proper information > > Some help would be greatly appriciated, Thanks > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.general (#319326) next »