Re: Begining PHP...Have Questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks to everyone so far who has responded, but the other posts are going
down a different road than what I currently need.

In my code below I am building a login page.  I am continuing to do
different things to debug this problem myself and I think I have narrowed it
down a bit.  Like I said in my previous post...the program does work without
error, it just doesnt produce the expected results.  When I enter username1
and password 1 I get pasword1.  When I enter username2 and password2 I get
password2.  When I enter username2 and password1 I get password2.  This isnt
a very effective login program.

If you look at the last if statement:
    if (!$_POST['passw'] = mysql_result($result,0,"pass")){
      $error = "Invalid Password.<br>";
      echo "$error<br>";
    } else {
      printf("Password is %s<br>\n", mysql_result($result,0,"pass"));
    }

I am trying to validate what is entered in the form with what is in the
database.  That looks like good code to me, but like I said before, when I
enter username2 and password1 I get password2.  I think $result should only
contain the row that username2 is in so the pass field should have
password2.  I believe it does.  But If I put password1 in the form and the
program checks to see if it is equil to password2 it should echo the error.

You may be able to tell, but I am getting really confused by this.

If anyone can help with this I would really appreciate it.

Aaron




"Aaron Todd" <aaloki88@xxxxxxxxxxx> wrote in message
news:20040719165504.2786.qmail@xxxxxxxxxxxxxxx
> I am just starting out with PHP and I have created a simple login program
> that is supposed to check users input with a mysql database.  I am doing 5
> verifications before the program is completed...Check for the Submit
button,
> check for a valid email address(which is the username), check for a valid
> password, check to see if the username exists in the database, and finally
> check to see if the password matches the database for the coresponding
> username.  Currently you dont get access to a site you only get told what
> your password is in the database.
>
> Everything is technically working, but its not perfect and I think I need
> some help.  I have entered 2 records in the database for testing purposes.
> When I put in username1 and password1 it works.  The program returns the
> coresponding password.  When I change to username2 and still put in
> password1 it will return password1.
>
> I have done some debuging and I am unsure of what is really happening.  My
> code is below.  Would anyone be able to tell me what I am doing wrong.
>
> Thanks,
>
> Aaron
>
> <html>
> <body>
> <?php
> if ($submit) {
>   //VALID USERNAME/EMAIL ADDRESS
>   if
>
(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[!#$%&\'*+\\/0-9=?A-Z^_`a
> -z{|}`]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $username)) {
>     $error = "You must enter a valid email address for your
username.<br>";
>     echo "$error<br>";
>   } else {
>     $db = mysql_connect("localhost", "username", "password");
>     mysql_select_db("database",$db);
>     $query = "SELECT * FROM users WHERE email LIKE '".$username."'";
>     echo "$query<br>";
>     $result = mysql_query($query,$db);
>     $num_rows = mysql_num_rows($result);
>     echo "There are $num_rows records matching $username<br>";
>     //VALID PASSWORD
>     echo "Entered User Name:  $username<br>";
>     echo "Entered Password:  $passw<br>";
>     if (strlen($passw) < 6 || !preg_match('/[a-z]/i', $passw) ||
> !preg_match('/[0-9]/', $passw)) {
>       $error = "Invalid Password.  Must be greater than six characters
> containing at least one number.<br>";
>       echo "$error<br>";
>     } else {
>       //USERNAME/EMAIL ADDRESS IN DATABASE
>       if (!$num_rows){
>         $error = "Username was not found.  Please Register.";
>         echo "$error<br>";
>         die(mysql_error());
>       } else {
>         //ENTERED PASSWORD IN DATABASE
>         if (!$passw = mysql_result($result,0,"pass")){
>           $error = "Invalid Password.<br>";
>           echo "$error<br>";
>         } else {
>           printf("Password is %s<br>\n", mysql_result($result,0,"pass"));
>         }
>       }
>     }
>   }
> } else {
>
>   ?>
>
> <form method="post" action="<?php echo $PHP_SELF?>">
>
>   User Name:<input type="Text" name="username"><br>
>
>   Password:<input type="Text" name="passw"><br>
>
>   <input type="Submit" name="submit" value="Enter information">
>
>   </form>
>
> <?php
>
> } // end if
>
>
> ?>
>
> </body>
>
> </html>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux