Hallo,
Ik heb geprobeerd een inlog systeem te maken, maar op de een of andere manier blijf ik maar steeds dezelfde error krijgen met mysql_num_rows. en ook als ik de goede gegevens invul blijft hij maar zeggen dat ik een verkeerde username en password heb ingevuld.
Misschien dat jullie me kunnen helpen.

error code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in **********/checklogin.php on line 25

mijn code:

<?php

ob_start();
$host="*******";
$username="*******";
$password="*******";
$db_name="*******";
$tbl_name="*******";
$link=mysql_connect("$host", "$username", "$password");

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];


$myusername = stripslashes($myusername);
$encrypted_mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$encrypted_mypassword = mysql_real_escape_string($mypassword);
$result=mysql_query("SELECT * FROM ".$tbl_name." WHERE username='".$myusername."' and password='".$mypassword."'", $link);

// Hier zit de fout ergens
$count=mysql_num_rows($result);

if($count==1){

session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>

Als jullie me kunnen helpen zou dit top zijn!
bedankt,

Joost
Pieter Rekvelt op 02/04/2013 19:42:55

if( ! $result === FALSE ) zou het mi moeten zijn.

If not FALSE (dus TRUE) word de if uitgevoerd.
Bij FALSE de else.


Als ik het zo doe, geeft hij aan dat ik verkeerde combinatie inlognaam en wachtwoord heb ingevuld. Zowel bij goede combinatie als foute.

[size=xsmall]Toevoeging op 02/04/2013 22:23:55:[/size]

- SanThe - op 02/04/2013 20:08:44

<?php
$_SESSION['ingelogd'] = false;
if( $result === false )
{
echo "ERROR: ".mysql_error();
}
elseif(mysql_num_rows($result) != 1)
{
echo ' Foute inloggegevens';
}
else
{
$_SESSION['ingelogd'] = true;
header("location:login_succes.php");
}
?>

Geen inloggegevens in een session zetten.


Als ik deze code neer plak
<?php

mysql_connect("localhost","****","*******","******");
mysql_select_db("**********")or die("cannot select DB");

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];


$myusername = stripslashes($myusername);
$encrypted_mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$encrypted_mypassword = mysql_real_escape_string($mypassword);

$Ssql = "SELECT * FROM users WHERE inlognaam=$myusername AND wachtwoord=$mypassword";

$result = mysql_query($Ssql);


$_SESSION['ingelogd'] = false;
if( $result === false )
{
echo "ERROR: ".mysql_error();
}
elseif(mysql_num_rows($result) != 1)
{
echo ' Foute inloggegevens';
}
else
{
$_SESSION['ingelogd'] = true;
header("location:login_succes.php");
}

?>

krijg ik deze error:
ERROR: Unknown column '******' in 'where clause'

Dus ik weet niet.
(****** = inlognaam )
Klopt. Je mist namelijk de enkele quotes voor mysql.
$Ssql = "SELECT * FROM users WHERE inlognaam='" . $myusername . "' AND wachtwoord='" . $mypassword . "'";
JA! Eindelijk werk alles!
Hartelijk dank voor jullie hulp!

joost
Even een tip haal de database gegevens uit je code. Nu weet iedereen je database gegevens.

Reageren