Make sense, I haven't ever realizad how old the code appears like when it haves 
a break. Fell like C. Livin' n' learnin'. Thanks!


Enviado por Samsung Mobile

Bálint Horváth <hbal...@gmail.com> escreveu:

"As a Oo developer, a run away from using switch" - I don't understand this: 
OOP and switch could be good together and I also prefer switch eg. at action or 
page selection...

break is an old stuff and not a nice solution (like "goto")... killing a 
procedure!? -means wrong planning of an app! (and jumping in the code with goto 
also like this)


On Tue, Oct 2, 2012 at 12:11 PM, Rodrigo Silva dos Santos 
<rodrigos.santo...@gmail.com> wrote:
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 <hbal...@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 <koopasfore...@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
>
>

Reply via email to