On Sat, 2010-05-29 at 07:40 -0400, Floyd Resler wrote:

> On May 28, 2010, at 9:43 PM, Jason Pruim wrote:
> 
> > Hey Everyone,
> >
> > So I'm sitting here on a friday night trying to figure out how in  
> > the world I'm going to fix an issue that should probably be simple  
> > to me but is escaping me at the moment....
> >
> > Take this authentication function:
> >
> > <?PHP
> >
> > function authentication($authUser, $authPass, $cfgtableAuth){
> >
> >     // Keep in mind, PASSWORD has meaning in MySQL
> >     // Do your string sanitizing here
> >     // (e.g. - $user = mysql_real_escape_string($_POST['user']);)
> >     $authUser = mysql_real_escape_string($_POST['txtUser']);
> >     $authPass = mysql_real_escape_string($_POST['txtPass']);
> >     $md5pass = md5($authPass);
> >
> >            $loginQuery = "SELECT * FROM {$cfgtableAuth} WHERE  
> > userLogin='".$authUser."' AND userPass='".$md5pass."' LIMIT 0,1;";
> >
> >            $loginResult = mysql_query($loginQuery) or die("Wrong  
> > data supplied or database error"  .mysql_error());
> >         $row1 = mysql_fetch_assoc($loginResult);
> >             if($row1['access'] == "5000000"){
> >                    foreach (array_keys($_SESSION) as $key)
> >                        unset($_SESSION[$key]);
> >
> >                     die('account disabled');
> >             }
> >
> >             if(is_array($row1)){
> >
> >                    $_SESSION['userInfo'] = array( "userLogin" =>  
> > $row1['userName'], "loggedin" => TRUE, "userName" =>  
> > $row1['userName'], "userPermission" => $row1['userPermission']);
> >
> >                    error_log("User has logged in: ".  
> > $row1['userLogin']);
> >
> >                }else{
> >                     //$_SESSION['userInfo'] =array("loggedin" => FALSE);
> >                     die('authentication failed');
> >
> >             }
> >             return TRUE;
> >
> >     }
> >
> > ?>
> >
> > Here is how I am displaying the login form:
> >
> > <?PHP
> > session_start();
> >
> > $link = dbconnect($server, $username, $password, $database);
> >
> > $page = $_GET['page'];
> >
> > echo <<<CSS
> >    <body>
> >    <div class="contentwrapper">
> >
> > CSS;
> > include("nav.php");
> >
> > if ($_SESSION['userInfo']['loggedin'] == TRUE) {
> >
> > MAIN PAGE DISPLAY HERE
> >
> > }else{
> >
> >     //Display login info
> > echo <<<FORM
> >    <div class="dark">
> >     <form method="post">
> >             <p>
> >                        You must login to proceed!<BR />
> >                     User Name: <input type="text" size="20" 
> > name="txtUser"><BR />
> >                     Password: <input type="password" size="20" 
> > name="txtPass"><BR />
> >                     <input type="submit" value="Login"><BR />
> >             </p>
> >     </form>
> > </div>
> > FORM;
> >
> > if(isset($_POST['txtUser'])) {
> > $authUser = $_POST['txtUser'];
> > $authPass = $_POST['txtPass'];
> > $auth = authentication($authUser, $authPass, $cfgtableAuth);
> >
> > }
> >
> > }
> >
> > ?>
> >
> > Now... the authentication actually works, and it logs me in  
> > properly, but I have to click the login button twice.... Ideally I  
> > should just do it once, so I'm wondering if anyone can spot my  
> > grievous misstep here?
> >
> > Thanks in advance for the help and pointers I am bound to receive  
> > from this list! :)
> >
> 
> Your problem kind of made me laugh.  Not because you're having this  
> problem but because the problem you're having that you want to correct  
> is something a co-worker of mine did by design.  She writes in FoxPro  
> and on her login page you actually  have to click the login button  
> twice in order to log in!  She did it that way because she has a  
> profile button on the login page.  Still, clicking on a login button  
> twice is annoying! :)
> 
> Take care,
> Floyd
> 
> 


The problem I often see in this area is where the login check is
performed in an include file, and then included in every page, including
the login page itself. Takes a little while sometimes to figure out why
it is stuck in an eternal loop!

Thanks,
Ash
http://www.ashleysheridan.co.uk


Reply via email to