login page simple question

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
james7801
Forum Newbie
Posts: 5
Joined: Sun Jan 04, 2009 3:32 pm

login page simple question

Post by james7801 »

cant seem to get this code to display a error on same page if the login wrong

thank you if you can assist


<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input name="myusername" type="text" id="myusername">
<input name="mypassword" type="text" id="mypassword">
<input type="hidden" name="action" value="1"/>
<input type="submit" name="Submit" value="Login">
</form>

<?php
if (isset($_POST['action']) == '1' ){
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
header("location:login.php");
echo "Error with login";
}
}
?>
reyes99
Forum Commoner
Posts: 38
Joined: Tue May 22, 2007 10:35 pm

Re: login page simple question

Post by reyes99 »

Hi I am a newbie too but it seems that if you are echoing the error after you call the page it will never display the error. I would try this echo the error and then the header line will refresh after 5 seconds and then load the login.php page giving the user 5 seconds to read the message.

else {
echo "Error with login";
header("refresh: 5; login.php";

Hope this helps.
james7801
Forum Newbie
Posts: 5
Joined: Sun Jan 04, 2009 3:32 pm

Re: login page simple question

Post by james7801 »

oh i see what you mean

waiting for 5 secs isnt really that professional

is there any other things i can try

any good tut
reyes99
Forum Commoner
Posts: 38
Joined: Tue May 22, 2007 10:35 pm

Re: login page simple question

Post by reyes99 »

You can try this with a link back to login.php or put a button linking back.

Code: Select all

<?php
echo "this is an error<br>";
echo "<a href='login.php;'>Click here to log in again</a>";
?> 
 
james7801
Forum Newbie
Posts: 5
Joined: Sun Jan 04, 2009 3:32 pm

Re: login page simple question

Post by james7801 »

is there no way of keeping it on the same page?
User avatar
Syntac
Forum Contributor
Posts: 327
Joined: Sun Sep 14, 2008 7:59 pm

Re: login page simple question

Post by Syntac »

There is a way. Only call a redirect if the login is correct. Otherwise, have it print the error in the appropriate place.

(Also, I would put the PHP code at the top.)
james7801
Forum Newbie
Posts: 5
Joined: Sun Jan 04, 2009 3:32 pm

Re: login page simple question

Post by james7801 »

oh yea so simple

great idea

thanks for all the help guys
Post Reply