Page 1 of 1
LOGIN problem -Solved
Posted: Wed Jan 04, 2012 12:12 pm
by dlsmoker
Hi all, I'm new here and I hope some of you could help me. I just watched all the video tutorials, but the login script do not work.
I tried some others alternatives. First, a simple code with the mysql_num_rows command, but I get an error: parameters axpected to be one, boolean given. With this command I check if username and password are on the same row.
The second, I tried to re-make of halls, but I always get Password incorrect.
This is the registration:
<?php
require_once('connect.php'); // I have session_start here
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
$_SESSION['confirm'] = $_POST['confirm'];
$_SESSION['email'] = $_POST['email'];
if(($_SESSION['username'] == "") || ($_SESSION['password'] == "") || ($_SESSION['confirm'] == "") || ($_SESSION['email'] == "") )
{
echo 'Missing fields or incorrect. <br>
Click <a href="signup.html">here</a> here to go back.';
}
else if(($_SESSION['password'] == $_SESSION['confirm']))
{
echo 'Thank you. <br>
You have been successfully signed up. Click <a href="index.html">here</a> to go to home page';
$reqSQL = "INSERT INTO `game`.`users` (`username`, `password`, `email`)
VALUES ('".$_SESSION['username']."', '".$_SESSION['password']."', '".$_SESSION['email']."')";
mysql_query($reqSQL);
$_SESSION['username'] = '';
$_SESSION['password'] = '';
$_SESSION['confirm'] = '';
$_SESSION['email'] = '';
}
else {
echo 'Password and Confirm Password did not match. <br>
Click <a href="signup.html">here</a> here to go back.';
}
?>
This is the login:
<?php
<?php include_once 'connect.php'; ?>
<?php
if ($_POST){
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$password = md5($password);
$query = "SELECT username,password FROM users WHERE username='$username'";
$result = mysql_query($query) or die("Could not query usernames");
$result2 = mysql_fetch_array($result);
if ($result){
if ($result2['password'] == $password){
$_POST['username'] = $username;
echo "<big>Logged in successfully<br>";
echo "<A href='game.php'>Continue</a></big>";
} else {
echo "Wrong password. <br><br>";
}
} else {
echo "That username is not registered. <br><br>";
}
} else {
}
?>
The registration script works and it add fields in the db, but I can't access with the login script.
If I type a username that is in the DB, it says WRONG PASSWORD.
if I type a username thaat do Not exist in the DB, it says Username not registered. That means that it can connect to db and search for the username, but is the password I have the problem. Please help
Re: LOGIN problem
Posted: Wed Jan 04, 2012 12:25 pm
by MikeD
Looks like you're forgetting to put the password into MD5 on your registration.
Also, I don't see a query where you check the username and password.
Here is halls tutorial register, reguser, login, authenticate.
Code: Select all
<?php
include 'connect.php';
?>
<form method ="post" action="reguser.php">
Type Username Here: <input type="text" name="player" size="21"><br>
Type Password Here: <input type="text" name="password" size "15"><br>
ReType Password Again: <input type="text" name="pass2" size "15"><br>
Type Email Address: <input type="text" name="email" size "60"><br>
<input type="submit" value="submit">
<?php
print "<select name='classchoice' length='20'>";
$classinfo="SELECT * from classes";
$classinfo2=mysql_query($classinfo) or die("Could not select classes");
while ($classinfo3=mysql_fetch_array($classinfo2))
{
print "<option>$classinfo3[name]</option>";
}
print "</select><br>";
?>
</form>
<?php
print "<center><h3>Class Starting modifiers</h3></center>";
print "<center>";
print "<table border='0' width='70%' cellspacing='20'>";
print "<tr><td width='25%' valign='top'>";
print "</td>";
print "<td valign='top' width='75%'>";
$selectclass="SELECT * from classes";
$selectclass2=mysql_query($selectclass) or die("could not select Classes");
print "<table border='1' bordercolor='black' bgcolor='#ffffff'>";
print "<tr><td><font color='cc0033'>Class<font color='ffffff'>_____________</td><td><font color='cc0033'>Attack<font color='ffffff'>_</font><td><font color='cc0033'>Defense<font color='ffffff'>_</font></td><td><font color='cc0033'>Hit Points<font color='ffffff'>_</font></td><td><font color='cc0033'>Spell Points<font color='ffffff'>_</font></td></tr>";
while($selectclass3=mysql_fetch_array($selectclass2))
{
print "<tr><td>$selectclass3[name]</td><td>$selectclass3[attack]</td><td>$selectclass3[defense]</td><td>$selectclass3[hpoints]</td><td>$selectclass3[spoints]</td></tr>";
}
print "</table>";
print "</td></tr></table>";
print "</center>";
?>
Code: Select all
<?php
include 'connect.php';
?>
<?php
$player=$_POST['player'];
$password=$_POST['password'];
$pass2=$_POST['pass2'];
$player=strip_tags($player);
$email=$_POST['email'];
$email=strip_tags($email);
$classchoice=$_POST['classchoice'];
if ($email == "")
{
echo "You didn't enter a email address!<br>";
echo " <A href='register.php'>Go back</a>";
exit;
}
if ($password==$pass2)
{
$isplayer="SELECT * from players where name='$player'";
$isplayer2=mysql_query($isplayer) or die("Could not query players table");
$isplayer3=mysql_fetch_array($isplayer2);
if(!$_POST['password'] || !$_POST['pass2'])
{
print "You did not enter a password<br>";
echo " <A href='register.php'>Go back</a>";
exit;
}
else if($isplayer3 || strlen($player)>21 || strlen($player)<1)
{
print "There is already a player of that name or the name you specified is over 16 letters or less than 1 letter";
echo " <A href='register.php'>Go back</a><br>";
exit;
}
else
{
$isaddress="SELECT * from players where email='$email'";
$isaddress2=mysql_query($isaddress) or die("not able to query for password");
$isaddress3=mysql_fetch_array($isaddress2);
if($isaddress3)
{
print "There is already a player with that e-mail address";
echo " <A href='register.php'>Go back</a><br>";
exit;
}
else
{
$password=md5($password);
//////////////////////////////new for video 9//////////////
$classquery="SELECT * from classes where name='$classchoice'";
$classquery2=mysql_query($classquery) or die("Could not query classes");
$classquery3=mysql_fetch_array($classquery2);
$SQL = "INSERT into players(name, password, email, level, exper, attack, defense, hpoints, maxhp, spoints, maxspoints,pclass) VALUES ('$player','$password','$email','1','0','$classquery3[attack]','$classquery3[defense]','$classquery3[hpoints]','$classquery3[hpoints]','$classquery3[spoints]','$classquery3[spoints]','$classquery3[name]')";
mysql_query($SQL) or die("could not register");
print "Thank you for registering!";
}
}
}
else
{
print "Your password didn't match or you did not enter a password";
echo " <A href='register.php'>Go back</a><br>";
exit;
}
echo " <A href='login.php'>Login Page</a><br>";
?>
Code: Select all
<form method="POST" action="authenticate.php">
User Name <input type="text" name="player" size="21">
Password <input type="password" name="password" size="21" mask="x">
<br>
<input type="submit" value="Login" name="submit">
<br><br>Not Registered? <a href='register.php'>Register
Code: Select all
<?php
include_once 'connect.php';
session_start();
if (isset($_POST['submit']))
{
$player=$_POST['player'];
$password=$_POST['password'];
$player=strip_tags($player);
$password=strip_tags($password);
$password=md5($password);
$query = "select name,password from players where name='$player' and '$password'";
$result = mysql_query($query) or die("Could not query players");
$result2 = mysql_fetch_array($result);
if ($result2)
{
$_SESSION['player']=$player;
echo "<big>Logged in successfully<br>";
echo "<A href='index.php'>Continue</a></big>";
}
else
{
echo "<big>Wrong username or password.<A href='login.php'>Try Again</a></big>";
}
}
?>
Re: LOGIN problem
Posted: Wed Jan 04, 2012 12:33 pm
by dlsmoker
Yes You are right with the md5 thing, I corrected it but with the same results. The registration is different, I used another code and it works becouse it inserts values in the table in the DB. The problem is with the login script. Whatever I type I get "Wrong password" so the issue is with the if() where I check if that username has that password. Any advice ?
Re: LOGIN problem
Posted: Wed Jan 04, 2012 12:42 pm
by Sebastian
Actually there is a mistake in authenticate.php
Code: Select all
$query = "select name,password from players where name='$player' and '$password'";
I think it should be
Code: Select all
$query = "select name,password from players where name='$player' and password='$password'";
either way you can log with any password knowing just the login
Ive noticed it yesterday by an accident when i was making my game
regards
Sebastian
Re: LOGIN problem
Posted: Wed Jan 04, 2012 1:07 pm
by MikeD
Sebastian wrote:Actually there is a mistake in authenticate.php
Code: Select all
$query = "select name,password from players where name='$player' and '$password'";
I think it should be
Code: Select all
$query = "select name,password from players where name='$player' and password='$password'";
either way you can log with any password knowing just the login
Ive noticed it yesterday by an accident when i was making my game
regards
Sebastian
Oh yeah I forgot about that problem in the tutorial login.
Re: LOGIN problem
Posted: Wed Jan 04, 2012 1:12 pm
by MikeD
Code: Select all
if ($_POST){
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$password = md5($password);
$query = "SELECT username,password FROM users WHERE username='$username'";
$result = mysql_query($query) or die("Could not query usernames");
$result2 = mysql_fetch_array($result);
if ($result){
if ($result2['password'] == $password){
$_POST['username'] = $username;
echo "<big>Logged in successfully<br>";
Should be
Code: Select all
if (isset($_POST['login'])){
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$password = md5($password);
$query = "SELECT username,password FROM users WHERE username='$username' AND password='$password'";
$result = mysql_query($query) or die("Could not query usernames");
$num_rows = mysql_num_rows($result);
if ($num_rows == '1'){
//insert session code
echo "<big>Logged in successfully<br>";
Re: LOGIN problem
Posted: Wed Jan 04, 2012 3:54 pm
by dlsmoker
hank you for the quick answers, I solved the problem! Now there is another last thing.
When I try to encrypt the password, I fail to log in.
When I register, the password is sent in the DB encrypted, but when I try to log in with the same password and with the same code (md5()), it says wrong password.

Any advice ?
Re: LOGIN problem
Posted: Wed Jan 04, 2012 4:25 pm
by Chris
Make sure the length of the password stored in the database is at least 32. If this is the case, show us the register code.
Re: LOGIN problem
Posted: Wed Jan 04, 2012 7:24 pm
by MikeD
dlsmoker wrote:hank you for the quick answers, I solved the problem! Now there is another last thing.
When I try to encrypt the password, I fail to log in.
When I register, the password is sent in the DB encrypted, but when I try to log in with the same password and with the same code (md5()), it says wrong password.

Any advice ?
Code: Select all
$_SESSION['password'] = $_POST['password'];
need to MD5 that
Code: Select all
$_SESSION['password'] = $_POST['password'];
$_SESSION['password']=md5($_SESSION['password']
I think that's what you need.
Re: LOGIN problem
Posted: Wed Jan 04, 2012 8:46 pm
by Chris
MikeD wrote:dlsmoker wrote:hank you for the quick answers, I solved the problem! Now there is another last thing.
When I try to encrypt the password, I fail to log in.
When I register, the password is sent in the DB encrypted, but when I try to log in with the same password and with the same code (md5()), it says wrong password.

Any advice ?
Code: Select all
$_SESSION['password'] = $_POST['password'];
need to MD5 that
Code: Select all
$_SESSION['password'] = $_POST['password'];
$_SESSION['password']=md5($_SESSION['password']
I think that's what you need.
Why are you storing the password in a session? Or is this possibly beyond my logic?