How do I handle mysql not found conditions?
How do I handle mysql not found conditions?
am 09.11.2007 18:25:36 von Big Moxy
The code below is my login validation script - check_login.php. I
have
been testing with a non-existent user and end up with a blank page.
Can someone please tell me what I'm doing wrong?
http://projects.missioninternet.com/dynamixsi/login.php
Thank you!
Tim
session_start();
require_once("Connections/usersDB.php");
// username and password sent from signup form
$userID=$_POST['userID'];
$password=$_POST['password'];
$userType=$_POST['clientType'];
// encrypt password
$encrypted_password=md5($password);
$_SESSION["password"] = $encrypted_password;
// if password encryption is not used
//$sql="SELECT * FROM $table_name WHERE userName='$userID' and
password='$password'";
//$result=mysql_query($sql);
// if password encryption is used
$sql="SELECT * FROM $table_name WHERE userName = '$userID'
and
userPassword = '$encrypted_password'";
$result=mysql_query($sql)or die($sql.' failed because
'.mysql_error());
if (!$result) {
$_SESSION['msg'] = "mysql query failed";
}
else {
$rows = mysql_num_rows($result) or
die(mysql_error());
if($rows > 0) {
$_SESSION['msg'] = "Success Rows: ".$rows;
}
else {
// Return to login page with error message
$_SESSION['msg'] = "Your email address or
password is incorrect. If
this is the first time you are using our system, enter your email
address, desired password and indicate your user status then click
'Register' instead of 'Login'.";
}
}
?>
"http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Login Error
Re: How do I handle mysql not found conditions?
am 09.11.2007 18:38:00 von luiheidsgoeroe
On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy wrote:
> $rows =3D mysql_num_rows($result) or die(mysql_error());
How do you think this well act if the result of mysql_num_rows() is 0?
-- =
Rik Wasmus
Re: How do I handle mysql not found conditions?
am 09.11.2007 18:52:30 von Big Moxy
On Nov 9, 9:38 am, "Rik Wasmus" wrote:
> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy wrote:
> > $rows = mysql_num_rows($result) or die(mysql_error());
>
> How do you think this well act if the result of mysql_num_rows() is 0?
> --
> Rik Wasmus
I want mysql_num_rows() = 0 to be treated as a not found condition.
Isn't that already handled?
Tim
Re: How do I handle mysql not found conditions?
am 09.11.2007 19:07:21 von luiheidsgoeroe
On Fri, 09 Nov 2007 18:52:30 +0100, Big Moxy wrote:
> On Nov 9, 9:38 am, "Rik Wasmus" wrote:
>> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy wrot=
e:
>> > $rows =3D mysql_num_rows($result) or die(mysql_error());
>>
>> How do you think this well act if the result of mysql_num_rows() is 0=
?
>
> I want mysql_num_rows() =3D 0 to be treated as a not found condition.
> Isn't that already handled?
0 converted to boolean is false, so your code die()'s. There is no actua=
l =
mysql error, so the die(mysql_error()) will die without any message. =
Remove the 'or die' clause, you already handle a 0 result in your if =
statement further on, and a faulty result with your 'or die' following t=
he =
mysql_query().
-- =
Rik Wasmus
Re: How do I handle mysql not found conditions?
am 09.11.2007 19:11:08 von Jerry Stuckle
Big Moxy wrote:
> On Nov 9, 9:38 am, "Rik Wasmus" wrote:
>> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy wrote:
>>> $rows = mysql_num_rows($result) or die(mysql_error());
>> How do you think this well act if the result of mysql_num_rows() is 0?
>> --
>> Rik Wasmus
>
> I want mysql_num_rows() = 0 to be treated as a not found condition.
> Isn't that already handled?
>
> Tim
>
>
Rik is correct.
Figure out what this statement does:
$rows = mysql_num_rows($result) or die(mysql_error());
Then figure out why it isn't good to use die() *anywhere* in production
code.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Re: How do I handle mysql not found conditions?
am 09.11.2007 19:57:49 von Big Moxy
On Nov 9, 10:11 am, Jerry Stuckle wrote:
> Big Moxy wrote:
> > On Nov 9, 9:38 am, "Rik Wasmus" wrote:
> >> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy wrote:
> >>> $rows = mysql_num_rows($result) or die(mysql_error());
> >> How do you think this well act if the result of mysql_num_rows() is 0?
> >> --
> >> Rik Wasmus
>
> > I want mysql_num_rows() = 0 to be treated as a not found condition.
> > Isn't that already handled?
>
> > Tim
>
> Rik is correct.
>
> Figure out what this statement does:
>
> $rows = mysql_num_rows($result) or die(mysql_error());
>
> Then figure out why it isn't good to use die() *anywhere* in production
> code.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================
How do I differtiate 0 from some other error? I want true errors to be
handled differently than the basic not found condition.
Tim
Re: How do I handle mysql not found conditions?
am 09.11.2007 20:07:35 von luiheidsgoeroe
On Fri, 09 Nov 2007 19:57:49 +0100, Big Moxy wrote:
> On Nov 9, 10:11 am, Jerry Stuckle wrote:
>> Big Moxy wrote:
>> > On Nov 9, 9:38 am, "Rik Wasmus" wrote:=
>> >> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy =
>> wrote:
>> >>> $rows =3D mysql_num_rows($result) or die(mysql_error());
>> >> How do you think this well act if the result of mysql_num_rows() i=
s =
>> 0?
>> > I want mysql_num_rows() =3D 0 to be treated as a not found conditio=
n.
>> > Isn't that already handled?
>>
>>
>> Rik is correct.
>>
>> Figure out what this statement does:
>>
>> $rows =3D mysql_num_rows($result) or die(mysql_error());
>>
>> Then figure out why it isn't good to use die() *anywhere* in producti=
on
>> code.
>
> How do I differtiate 0 from some other error?
A variable is never an error.
> I want true errors to be
> handled differently than the basic not found condition.
if($var) echo '$var cast to boolean is true';
else echo '$var cast to boolean is false';
if($var===3Dtrue){
echo '$var is a boolean and is true';
} else if($var===3Dfalse){
echo '$var is a boolean and is false';
} else {
echo '$var is not actually a boolean';
}
In this particular case you don't need strict comparison though. Just =
remove the or die() after mysql_num_rows() and your code will work as =
intended as far is I can see glancing over it quickly.
-- =
Rik Wasmus
Re: How do I handle mysql not found conditions?
am 09.11.2007 20:08:59 von Big Moxy
On Nov 9, 11:07 am, "Rik Wasmus" wrote:
> On Fri, 09 Nov 2007 19:57:49 +0100, Big Moxy wrote:
> > On Nov 9, 10:11 am, Jerry Stuckle wrote:
> >> Big Moxy wrote:
> >> > On Nov 9, 9:38 am, "Rik Wasmus" wrote:
> >> >> On Fri, 09 Nov 2007 18:25:36 +0100, Big Moxy
> >> wrote:
> >> >>> $rows = mysql_num_rows($result) or die(mysql_error());
> >> >> How do you think this well act if the result of mysql_num_rows() is
> >> 0?
> >> > I want mysql_num_rows() = 0 to be treated as a not found condition.
> >> > Isn't that already handled?
>
> >> Rik is correct.
>
> >> Figure out what this statement does:
>
> >> $rows = mysql_num_rows($result) or die(mysql_error());
>
> >> Then figure out why it isn't good to use die() *anywhere* in production
> >> code.
>
> > How do I differtiate 0 from some other error?
>
> A variable is never an error.
>
> > I want true errors to be
> > handled differently than the basic not found condition.
>
> if($var) echo '$var cast to boolean is true';
> else echo '$var cast to boolean is false';
> if($var===true){
> echo '$var is a boolean and is true';} else if($var===false){
>
> echo '$var is a boolean and is false';} else {
>
> echo '$var is not actually a boolean';
>
> }
>
> In this particular case you don't need strict comparison though. Just
> remove the or die() after mysql_num_rows() and your code will work as
> intended as far is I can see glancing over it quickly.
> --
> Rik Wasmus- Hide quoted text -
>
> - Show quoted text -
Thank you Rik and Jerry!!
Tim