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.

Edited by Oblivion13
Link to comment
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);
}
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.