Jump to content

Cannot figure out simple admin login


Oblivion13

Recommended Posts

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

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);
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.