In het volgende script ben ik aan een login pagina aan het werken. Ja, encrypten ontbreekt en ja, ik heb geen htmlentities/ mysql_real_escape_string gebruikt. Mij gaat het er even om om een simpele count te doen.
<?php
require_once("header.php");
echo '<br/>';
echo '<br/>';
if(isset($_POST['submit'])){
if(!empty($_POST['name']) AND !empty($_POST['password'])){
$name = $_POST['name'];
$pass = $_POST['password'];
if (preg_match ('/^[A-Za-z. -]+$/', $name)){
if(mysql_select_db("database", $connect)){
$pass_check = mysql_query("SELECT COUNT(*) FROM person WHERE name == '$name' AND password == '$pass'");
if(!mysql_query($pass_check)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
$count = mysql_result($pass_check,0);
if ($count == 1) {
echo "Het wachtwoord komt overeen.<br/>";
} elseif ($count ==0 AND !empty($_POST['password'])) {
echo "Dit wachtwoord bestaat niet.<br/>";
echo $count;
}
}
else{
echo 'Couldnt connect to db!';
}
}
else {
echo 'Didnt used the right characters!';
}
}
else {
echo 'U dient de verplichte velden in te vullen.';
$name = FALSE;
$pass = FALSE;
}
}
?>
<form action="" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="name" size="20" maxlenght="20"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Registreer"></td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
require("footer.php");
?>
Dit is mijn foutmelding:
Error: Could not select:Query was empty
Er is een fout opgetreden!
Foutsoort: WARNING
Foutmelding: mysql_result() expects parameter 1 to be resource, boolean given
Bestand: C:\xampp\htdocs\logtest\login.php
Regel: 17
Dit wachtwoord bestaat niet.
[size=xsmall]Toevoeging op 22/07/2011 15:04:33:[/size]
Owhnee, ik krijg deze foutmelding... zat met verkeerde bestand in de weer...
Er is een fout opgetreden!
Foutsoort: WARNING
Foutmelding: mysql_result() expects parameter 1 to be resource, boolean given
Bestand: C:\xampp\htdocs\logtest\testcount.php
Regel: 13
Error: Could not select:Query was empty
Dit wachtwoord bestaat niet.
Deze foutmelding heb ik al 2 uur dus ik zou niet weten hoe ik dit moet oplossen.
Ozzie php, bij aantal rijen krijg ik niks op het scherm.
[size=xsmall]Toevoeging op 22/07/2011 15:08:57:[/size]
Er is een fout opgetreden!
Foutsoort: WARNING
Foutmelding: mysql_fetch_array() expects parameter 1 to be resource, boolean given
Bestand: C:\xampp\htdocs\logtest\testcount2.php
Regel: 7
aantal rijen = NULL
Nogmaals, kijk naar je foutafhandeling. Echo de uitgevoerde query als je query mislukt. Dan zie je pas wat er fout gaat! De fout zit op dit moment in de uitgevoerde query...
if(isset($_POST['submit'])){
$query = "SELECT COUNT(*) as aantal FROM person WHERE name = '".$name."' AND password = '".$pass."'";
echo $pass . $name . '<br/>';
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo 'aantal rijen = ';
var_dump($row[0]);
die();
}
Error:
Er is een fout opgetreden!
Foutsoort: WARNING
Foutmelding: mysql_fetch_array() expects parameter 1 to be resource, boolean given
Bestand: C:\xampp\htdocs\logtest\testcount2.php
Regel: 8
aantal rijen = NULL