[Funktion] Login überprüfen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Login überprüfen

    Hallo profis,

    trotz suche in den verschiedenen Foren habe ich bisher noch keinen geeigneten Hinweis bekommen.

    Ich möchte beim Login meinen Usern freistellen, ob sie sich mit ihrer User-ID oder ihrer Emailadresse + Passwort einloggen

    ich habe mir dafür folgenden Check geschrieben:

    function check_login()
    {
    global $id, $passwort, $email;
    $id=$email;
    if($id&&$passwort)
    {
    $data=mysql_query("SELECT id, passwort, email FROM kunden WHERE id='$id' AND passwort='$passwort'");
    $data=@mysql_result($data, 0);
    }
    else if($email&&passwort)
    {

    $data=mysql_query("SELECT id FROM kunden WHERE id='$email' AND passwort='$passwort'");
    $data=@mysql_result($data, 0);
    $data=mysql_query("SELECT id, passwort, email FROM kunden WHERE id='$id' AND passwort='$passwort'");
    $data=@mysql_result($data, 0);
    }
    if(!$data)
    {
    echo 'Ihre eingebenen Benutzerdaten sind nicht korrekt. ';
    echo ' Haben Sie Ihr <a href="../passwort.php">Passwort vergessen?</a>';

    exit;

    }
    }

    Leider funktioniert es nicht und ich bin wohl schon so blind, dass
    ich den Fehler nicht entdecken kann :-(

    Wer kann helfen?

    Gruß
    Jörn

  • #2
    Du überschreibst immer den Inhalt von $id.

    Und im elseif-Block benutzt du $id, da steht aber noch die E-Mail-Adresse drin.

    Kommentar


    • #3
      hmmm

      Hi,

      erstmal danke für die schnelle Antwort.
      Mein Problem ist ja, dass wenn jemand anstatt seiner
      ID seine E-Mailadresse eingibt, das Login trotzdem auf
      die ID übergeben muss.

      Also wenn ID und Passwort korrekt sind, funktioniert es.
      Gibt aber jemand seine E-Mail und sein Passwort ein, soll
      das überprüft werden und der Login trotzdem mit
      der ID und dem Passwort des Users gemacht werden.

      Gibt es da eine elegantere Lösung?

      Gruß
      Jörn

      Kommentar


      • #4
        so funktioniert es

        so funktioniert es mit der ID und Passwort...allerdings
        nicht mit der E-Mail und ich weiss nicht, wie die Abfrage
        aussehen kann


        function check_login()
        {
        global $id, $passwort, $email;
        if($id&&$passwort)
        {
        $data=mysql_query("SELECT id, passwort, email FROM kunden WHERE id='$id' AND passwort='$passwort'");
        $data=@mysql_result($data, 0);
        }

        if(!$data)
        {
        echo 'Ihre eingebenen Benutzerdaten sind nicht korrekt. ';
        echo ' Haben Sie Ihr <a href="../passwort.php">Passwort vergessen?</a>';

        exit;

        }
        }

        Kommentar


        • #5
          Code:
          SELECT
              COUNT(*)
          FROM
              tabelle
          WHERE
              (username = 'username' OR email = 'emailadresse') AND
              password = 'password'
          BTW: *VERSCHIEB* nach sql.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            so gehts

            HI,

            danke nochmal, denn so funzt es:

            function check_login()
            {
            global $id, $passwort, $email;
            if($id&&$passwort)
            {
            $data=mysql_query("SELECT * FROM kunden WHERE (id='$id' or email='$email') AND passwort='$passwort'");
            $data=@mysql_result($data, 0);
            $id=$data[id];
            }


            if(!$data)
            {
            echo 'Ihre eingebenen Benutzerdaten sind nicht korrekt. ';
            echo ' Haben Sie Ihr <a href="../passwort.php">Passwort vergessen?</a>';

            exit;

            }
            }

            Kommentar

            Lädt...
            X