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.

Wat doe ik fout?
Hoi,

Bedankt voor je reactie, maar ik had juist naar die post gekeken en had het een en ander aangepast. Ik vind het wel vreemd dat ik tot nu toe altijd $_POST['submit'] heb gebruikt en dat het me nog nooit problemen heeft opgeleverd. Totdat jij erover begon had ik opeens er n probleem mee. Ik heb het aangepast van de submit.
Noppes Homeland op 23/07/2011 11:56:06

[quote="Ozzie PHP op 22/07/2011 23:42:19"]
Ik zou zelf nog meer controleren dan dat. Maar controle 1 kan toch zijn of er uberhaupt iets is ingevuld? Zo niet, sla dan de rest maar over. Daar is empty toch prima voor?

Met empty controleer je dus niet of er iets wel dan niet is ingevuld!!
[/quote]
Omdat je ook '0000' kunt invullen en empty() dan true terug geeft? Wat is dan volgens jou het juiste alternatief? if ($iets != "") Is dat dan de enige juiste manier?

Sven b op 23/07/2011 12:59:58

Hoi,

Bedankt voor je reactie, maar ik had juist naar die post gekeken en had het een en ander aangepast. Ik vind het wel vreemd dat ik tot nu toe altijd $_POST['submit'] heb gebruikt en dat het me nog nooit problemen heeft opgeleverd. Totdat jij erover begon had ik opeens er n probleem mee. Ik heb het aangepast van de submit.

$_POST['submit'] werkt ook wel gewoon hoor. Heel veel mensen doen het zo, maar bij de andere methode controleer je of er uberhaupt iets gepost is op die pagina. Dat is een nettere manier van werken. Zo moet je het eigenlijk zien.

Reageren