Jessica: Benutzerlogin

Hallo ! Ich habe da ein kleines Problem bei meinem Benutzerlogin. Ich bekomme immer nur meine gewünschte Fehlermeldung ..echo"<p align='center'>Ihre Anmeldung war leider erfolglos. Bitte überprüfen Sie Ihre Zugangsdaten.</p><br>";.., wenn der Kunde sich falsch eingetragen hat. Mit der Weiterleitung hapert es aber. Weiss vielleicht jemand warum ?!

Hier mein Skript :

<?php
....
// SQL-Abfrage
$abfrage = "Select vorname,nachname,strasse,ort,email,username,passwort,anrede from benutzer where username='".$usrname."'";

// Abfrage durchfuehren
$Query_Result = mysql_query($abfrage) or die ("<font face='Verdana' size='1'>Fehler in der Abfrage.</font> Fehlercode:
".msql_erno().": ".msql_error());
$Anzahl_Zeilen = mysql_affected_rows();

// Abfrage Kundendaten
list($vorname,$nachname,$strasse,$ort,$email,$username,$passwort,$anrede) = mysql_fetch_row($Query_Result);

if ($Anzahl_Zeilen == 0)
{
echo"<span class='d'>";
echo"<p align='center'><img border='0' src='../../images/pfeil.gif'></p>";
echo"<p align='center'>Ihre Anmeldung war leider erfolglos. Bitte überprüfen Sie Ihre Zugangsdaten.</p><br>";
echo"<p align='center'><img border='0' src='../../images/pfeil.gif'></p>";
echo"</span>";
} elseif (($passwort == $pwd) and ($username!="") and ($Anzahl_Zeilen > 0)) {
header("location: kunde.php3");
} elseif (($username=="Gast") or ($username=="gast")) {
header("location: gast.php3");
}
?>

Danke schon mal im voraus.

  1. Hallo,

    // SQL-Abfrage
    $abfrage = "Select vorname,nachname,strasse,ort,email,username,passwort,anrede from benutzer where username='".$usrname."'";

    ^^^
    Ist das evtl. ein "username"?

    Grüße aus Würzburg
    Julian

    1. Hallo,

      // SQL-Abfrage
      $abfrage = "Select vorname,nachname,strasse,ort,email,username,passwort,anrede from benutzer where username='".$usrname."'";
                                   ^^^
      Ist das evtl. ein "username"?

      Grüße aus Würzburg
      Julian

      ja, der Kunde soll sich über einen Benutzernamen ($usrname) und passwort ($passwort) einloggen. Stimmt der Eintrag nicht mit der SQL-Datenbank überein, wird eine Fehlermeldung ausgegeben ansonsten entsprechend weitergeleitet.

      Gruss
      Jessica

  2. Hi

    // SQL-Abfrage
    $abfrage = "Select vorname,nachname,strasse,ort,email,username,passwort,anrede from benutzer where username='".$usrname."'";

    Das kann man auch so schreiben...
    vorname,nachname,strasse,ort,email,username,passwort,anrede from benutzer where username='$usrname'";
    Sollte aber nicht der Fehler sein...

    // Abfrage durchfuehren
    $Query_Result = mysql_query($abfrage) or die ("<font face='Verdana' size='1'>Fehler in der Abfrage.</font> Fehlercode:
    ".msql_erno().": ".msql_error());
    $Anzahl_Zeilen = mysql_affected_rows();

    // Abfrage Kundendaten
    list($vorname,$nachname,$strasse,$ort,$email,$username,$passwort,$anrede) = mysql_fetch_row($Query_Result);

    Bist du sicher das die reihenfolge des Arrays so stimmt.
    Ich würde lieber das resultat in ein Array schreiben lassen und dann die einzelnen werte so abfragen
    $resultat=mysql_fetch_array()
    if($resultat['passwort']==$pwd) ....

    probiers mal so
    wenn nicht würde ich eine vernünftige Fehleranalyse durchführen. Lass dir doch mit echo oder var_dump() die variablen die du übrprüfst vorher ausgeben...

    Uli

  3. Hallo Jessica,

    hab jetzt (glaub ich) den Fehler:

    $Anzahl_Zeilen = mysql_affected_rows();

    " Diese Funktion arbeitet nicht in Verbindung mit SELECT-Anfragen, sondern nur bei Anweisungen, die Datensätze verändern." (http://www.php3.de/manual/de/function.mysql-affected-rows.php)

    Grüße aus Würzburg
    Julian

    1. » »» $Anzahl_Zeilen = mysql_affected_rows();
      stimmt auch wieder...
      $Anzahl_Zeilen = mysql_num_rows($result);
      sollte es sein...
      Uli