Login mit MySQL-Abfrage funktioniert nicht

Hallo,

Ich habe folgendes einfaches Login geschrieben, doch wenn ich es ausführen möchte bekomme ich immer diese Fehlermeldung: SELECT benutzername, passwort FROM benutzerdaten WHERE benutzername = ‚Jonas‘
Warning: mysql_num_rows() expects parameter 1 to be resource, object given in […] on line 30

Nach einigem Suchen bin ich nun immer noch nicht auf meinen Fehler gestoßen. Kann mir vielleicht jemand helfen?
Schon einmal danke!!!

Hier mein Code:
[PHP]<?php
session_start();
ini_set(‚display_errors‘, 1);

error_reporting(E_ALL);
// Wenn Benutzername und Passwort ausgefüllt sind
if ( empty($_POST[‚benutzername‘]) == FALSE &&
empty($_POST[‚passwort‘]) == FALSE)
{
require_once (‚konfiguration_login.php‘);

$db_link = mysqli_connect ( MYSQL_HOST,
                            MYSQL_BENUTZER,
                            MYSQL_KENNWORT,
                            MYSQL_DATENBANK );

// Wenn Verbindung zu DB erfolgreich
if ( $db_link )
{
    $benutzername = $_POST['benutzername'];
    $passwort = md5($_POST['passwort']);

    $sql = "SELECT benutzername, passwort
            FROM benutzerdaten
            WHERE benutzername = '$benutzername'";

    echo "{$sql}\n";

    $erg = mysqli_query($db_link, $sql);
    $anzahl = mysql_num_rows($erg);

    // Wenn ein Treffer bei Suche nach benutzername
    if ( $anzahl > 0 )
    {
        $benutzernamedb = mysql_result($erg, 0, 'benutzername');
        $passwortdb = mysql_result($erg, 0, 'passwort');

        /*Wenn benuzername und passwort aus dem Formular mit den Daten
        (benutzernamedb und passwortdb) aus der DB übereinstimmen*/
        if ( $benutzername == $benutzernamedb &&
             $passwort == $passwortdb )
        {
            $_SESSION['benutzername'] = $benutzername;
            $_SESSION['login'] = TRUE;
        }
    }

}
else
{
    die('keine Verbindung möglich: ' . mysqli_error());
}

}
else if ( $_POST[‚hidden‘] == „v“)
{
$text = htmlentities(„Bitte füllen sie beide Felder aus!“);
echo $text;
}

if ( empty($_SESSION[‚benutzername‘]) == FALSE &&
$_SESSION[‚login‘] == TRUE )
{
echo „Login erfolgreich“;
}

ausgabe_formular ( $_POST[‚benutzername‘],
$_POST[‚passwort‘] );

//Funktionen
function ausgabe_formular( $benutzername,
$passwort )
{
echo ‚‘;

echo '<p>Benutzername: ';
echo '<input type="text" name="benutzername" value="';
echo $benutzername;
echo '" size="20"';
echo 'maxlength="50" />';
echo '</p>';

echo '<p>Passwort: ';
echo '<input type="password" name="passwort" value="';
echo $passwort;
echo '" size="20"';
echo 'maxlength="50" />';
echo '</p>';

echo '<input type="hidden" name="hidden" value="v" />';

echo '<input type="submit" name="Login" value="login" />';

echo '</form>';

}

?>[/PHP]

Güße hallojs

Du vermischt mysql und mysqli, das kann nicht gehen.

Hey bdt600,
danke für die schnelle Hilfe! Jetzt funktioniert es.

Grüße hallojs

Noch ein paar Tipps:
[ol]
[li]Den Benutzernamen sollten du einmal durch mysqli_real_escape_string jagen[/li][li]Die Where-Bedigung kannst du mit dem Passwort erweitern, dann ersparst du dir den späteren Vergleich[/li][li]Füttere google mal mit „PHP_SELF xss“[/li][li]Wieso gibst du das Formular mit 'zig echo’s aus?[/li][/ol]

Danke für die Tipps!
Besonders der dritte, habe ich doch gelesen das man es genau so machen soll.:frowning:

Grüße hallojs

Tja, manche Tutorials sind leider Schrott und/oder sind nicht auf dem aktuellen Stand der Technik.