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

  • PHP
    $ergebnis = mysqli_query($conid, $sql);


    Also wenn er was findet, kommt hier nen Array zurück, wenn er nix findet ein false. (ich bin mir nicht sicher aber meine theorie)


    Verstehst du wieso man die Zeilen von false nicht zählen kann?

  • 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
    echo "SELECT
        *
    FROM
        `autority`
    WHERE
        LOWER(`benutzername`) = '" .mysqli_real_escape_string( $conid, $benutzername ). "' AND
        `passwort` = '" .mysqli_real_escape_string( $conid, $passwort ). "' AND
        `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...

  • Wieso eigentlich LOWER und jetzt HIGHER (was es mMn nicht gibt: es heiß dann UPPER) ??


    Hast Du die Abfrage mal so abgeschickt? (in php my admin zB)
    Nicht einfach "rumwurschteln" - Du musst Dich an solche Sachen rantasten und Stück fpr Stück verstehen, was da passiert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!