Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\neu\login.php on line 88

  • Hi Leute,


    ich stelle grd meine Website auf mysqli um und bekomme nun folgene Fehlermedung dank <?php error_reporting(E_ALL); ?> :


    Zitat

    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\neu\login.php on line 88


    hier das passende code snippet (Betroffenes ist FETT markiert):




    Was mich wundert, dass er nicht schon beim vergleichen des hash meckert...
    hoffe ihr könnt mir helfen!

  • Naja, ich hab dein Code jetzt nicht gelesen .. aber wenn er sagt


    boolean given Dann bedeutet das das entweder true oder false übergeben wurde, anstatt ein Array oder was auch immer die Funktion erwartet.
    Daraus lässt sich erklären das dein $ergebnis wahrscheinlich den Inhalt false hat. -> Die abfrage aus der DB geht nicht denke ich.

  • könnte das auch was mit dem

    Zitat

    [PHP]$_SESSION['angemeldet'] = false;
    $benutzername = '';
    $passwort = '';
    $fehlermeldung = '';
    [/PHP]


    zu tun haben?


    EDIT: Weil er vergleicht ja nur den benutzernamen, der eingegeben wurde, das Passwort was eingegeben wurde, und ob das Mitglied aktiviert wurde...

  • häh Moment ja das verwirrt mich grd ein wenig...


    aber weshalb gibt er ein false zurück?


    Erklärung wäre sehr nett...


    EDIT:
    Also wenn ich das richtig versteh, liegt das an der Eingabe bzw dem Vergleich der Eingabe mit dem Eintrag in der DB...
    Wenn der Cookie Hash stimmt, so gibt er einen richtigen wert mit...


    Wenn aber die benutzereingabe mit der dem Eintrag in der DB nicht stimmt kann er keinen Wert zurückgeben d.h. False... das bedeutet das mit der Eingabe oder dem Eintrag in der DB was nicht stimmt nicht?

  • http://de1.php.net/manual/de/mysqli.query.php
    mysqli_query() gibt einfach false zurück, weil die db "nichts gefunden hat". (hat ja wolf schon gesagt)


    In solchen Fällen immer die Query ausgeben und in (zB) phpMyAdmin testen.

    PHP
    1. echo "SELECT
    2. *
    3. FROM
    4. `autority`
    5. WHERE
    6. LOWER(`benutzername`) = '" .mysqli_real_escape_string( $conid, $benutzername ). "' AND
    7. `passwort` = '" .mysqli_real_escape_string( $conid, $passwort ). "' AND
    8. `aktiviert` = 1";
  • Das bekomme ich raus wenn ich für meinen Vater das ganze eingebe:


    Zitat

    SELECT * FROM `autority` WHERE HIGHER(`benutzername`) = 'zippo2005' AND `passwort` = 'c82d888b9845549ea6607d91b01f7e86' AND `aktiviert` = 1


    Pswd ist natürlich in md5


    EDIT:


    wenn ich wieder auf normales SQL umstelle also statt mysqli, mysql benutze, so funktioniert es wieder...