Oblivion13 Posted October 7, 2014 Share Posted October 7, 2014 I am trying to learn php and I cannot figure out how to get a simple login form going. I am getting this error. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given I have no clue what I am doing wrong. I am following the "HowTo". Here is my code Index.php ( Login Form ) <form name="form1" method="post" action="checklogin.php"> <div id="wrappermiddle"> <h2>Login</h2> <div id="username_input"> <div id="username_inputleft"></div> <div id="username_inputmiddle"> <input name="myusername" type="text" id="myusername" value="Email Address"> <img id="url_user" src="./images/mailicon.png" alt=""> </div> <div id="username_inputright"></div> </div> <div id="password_input"> <div id="password_inputleft"></div> <div id="password_inputmiddle"> <input name="mypassword" type="text" id="mypassword" value="Password"> <img id="url_password" src="./images/passicon.png" alt=""> </div> <div id="password_inputright"></div> </div> <div id="submit"> <input type="image" src="./images/submit.png" name="Submit" value="Login"> </form> </div> checklogin.php <?php $host="localhost"; // Host name $username="MY DB USER"; // Mysql username $password="Password"; // Mysql password $db_name="MY DB Name"; // Database name $tbl_name="admin"; // 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 { echo "Wrong Username or Password"; } ?> Any help would be greatly appreciated. Link to comment https://forums.phpfreaks.com/topic/291497-cannot-figure-out-simple-admin-login/ Share on other sites More sharing options...
Frank_b Posted October 7, 2014 Share Posted October 7, 2014 after rule 23 with the mysql_query function you should check if $result is not FALSE. If $result has the value FALSE then you should use mysql_error() to get the error message: $result=mysql_query($sql); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $sql; die($message); } Link to comment https://forums.phpfreaks.com/topic/291497-cannot-figure-out-simple-admin-login/#findComment-1492981 Share on other sites More sharing options...
Frank_b Posted October 7, 2014 Share Posted October 7, 2014 after that you will get an error that will help you to solve your problem. Mysql_* functions are deprecated. I advise you to use mysqli_* functions with prepared statements OR the PDP class. Link to comment https://forums.phpfreaks.com/topic/291497-cannot-figure-out-simple-admin-login/#findComment-1492983 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.