Einloggen Problem

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

  • Einloggen Problem

    Hallo

    Als registrierter User möchte ich mich gern einloggen, aber erfindet die Daten nicht, wahrscheinlich weil die Syntax nicht korrekt geschrieben ist.
    Der SQL Aufruf lautet:
    PHP-Code:
    $svSQL "SELECT UserId 
                from 
    $cfgTabCustomer 
                where UserName='
    $saCustomer[UserName]'
                and UserPasswd=MD5('
    $saCustomer[UserPasswd]')
                LIMIT 1"

                
           if (
    DEBUG) echo "\n<!-- debug: $svSQL -->\n"
    Hab mir die Ausgabe des Debuger angesehen, diese lautet:
    <!-- debug: SELECT UserId
    from users
    where UserName='$'
    and UserPasswd=MD5('$')
    LIMIT 1 -->

    Nun frage ich euch. Müsste beim UserName='$' nicht der eingegebene Name und bei UserPasswd=MD5('$') das eingegebene Passwort erscheinen/stehen, statt das '$' ????
    Ich versteh noch nicht so viel von PHP und SQL, bin fleissig an lernen. Habe im PHP Manual nachgeschaut aber find nicht das was ich hier brauche. Ich denke die Syntax ist da nicht korrekt, aber ich hab da noch meine liebe Mühe damit.
    Hoffe mir kann da jemand helfen.

    Gruss
    Andreas

  • #2
    PHP-Code:
    $svSQL "SELECT UserId 
                from 
    $cfgTabCustomer 
                where UserName='"
    .$saCustomer['UserName']."'
                and UserPasswd=MD5('"
    .$saCustomer['UserPasswd']."')
                LIMIT 1"

    was passiert jetzt?
    hast du geprüft, ob in $saCustomer die richtigen werte stehen?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Noch immer das gleiche. Kann mich nicht anmelden.
      Im Debuger habe ich die gleiche Ausgabe '$' .

      Ueberprüfung vom loginscript:
      PHP-Code:
      $UserId=CheckUser('$saCustomer[UserName]''$saCustomer[UserPasswd]');
            if (
      $UserId!=false
      Sollte so richtig sein, denk ich mal.

      Kommentar


      • #4
        hab ich in meinem tutorial sowas stehen?

        versuch mal
        PHP-Code:
        $UserId=CheckUser($saCustomer['UserName'], $saCustomer['UserPasswd']); 
        wer erzählt euch denn immer, dass alle variablen in anführungszeichen gehören?!
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Nein, natürlich nicht. Bitte entschuldige meine Unwissenheit. Wie gesagt, bin erst am Anfang des lernens.
          Nun habe das so geändert und bekomme jetzt in der Ausgabe des Debugers den ersten Buchstaben des Username und Passwort.
          Wieso nicht das ganze wort???

          Kommentar


          • #6
            Nein, natürlich nicht. Bitte entschuldige meine Unwissenheit. Wie gesagt, bin erst am Anfang des lernens.
            Nun habe das so geändert und bekomme jetzt in der Ausgabe des Debugers den ersten Buchstaben des Username und Passwort.
            Wieso nicht das ganze wort???

            Kommentar


            • #7
              mach vor $UserId=CheckUser($saCustomer['UserName'], $saCustomer['UserPasswd']); mal
              PHP-Code:
              echo '<pre>';
              print_r($saCustomer);
              echo 
              '</pre>'
              was kommt raus?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Array
                (
                [UserName] => zzz
                [UserPasswd] => zzz
                )

                Genau das, was ich eingegeben habe.

                Kommentar


                • #9
                  poste mal bitte die komplette funktion checkUser
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Hier die Funktion CheckUser:
                    PHP-Code:
                    function CheckUser($saCustomer)
                    {
                       include (
                    "inc/cfg_sql.inc.php");
                       
                       
                    $connectionID OpenDatabase ();
                     
                       
                    // Eingabe des Users anhand BenutzerName und Passwort holen
                       
                    $svSQL "SELECT UserId 
                                from 
                    $cfgTabCustomer 
                                where UserName='"
                    .$saCustomer['UserName']."'
                                and UserPasswd=MD5('"
                    .$saCustomer['UserPasswd']."')
                                LIMIT 1"


                                
                           if (
                    DEBUG) echo "\n<!-- debug: $svSQL -->\n";
                                 
                                
                    $resultmysql_query($svSQL,$connectionID) or die(mysql_error()); 
                           if ( 
                    mysql_num_rows($result)==1
                           { 
                               
                    $user=mysql_fetch_assoc($result); 
                               return 
                    $saCustomer['UserId']; 
                           } 
                           else 
                               return 
                    false

                    Und hier die überprüfung des Formulars:
                    PHP-Code:
                    // Prüft ob Anmeldeformular abgeschickt wurde 
                    if (isset($_POST['send1']))
                    {
                       
                    // Überprüfe Formular auf leeren Benutzername oder Passwort 
                       
                    if (!$saCustomer['UserName'] || !$saCustomer['UserPasswd'])
                       {  include (
                    "$cfgTplPath/cfg_err.inc.php");
                          echo 
                    $cfgErrLogin[0];
                          include (
                    "$cfgTplPath/customer_login.tpl");
                       }
                       else 
                    // Ansonsten suche UserID anhand von Username und Passwort 
                       
                    {   
                          
                    //$UserId = CheckUser ($saCustomer);
                          
                    echo '<pre>';
                          
                    print_r ($saCustomer);
                          echo 
                    '</pre>';
                          
                    $UserId=CheckUser($saCustomer['UserName'], $saCustomer['UserPasswd']);
                          if (
                    $UserId!=false)         // Wenn gefunden und Wahr
                          
                    {
                             
                    Login($UserId);          // melde Benutzer an
                             
                    echo $cfgFileCenter;
                             
                    //include ("$cfgFileCenter");
                          
                    }
                          else                        
                    // Wenn nicht gefunden
                          
                    {  include ("$cfgTplPath/cfg_err.inc.php");
                             echo 
                    $cfgErrLogin[1];    // zeige Fehlermeldung 
                             
                    include ("$cfgTplPath/customer_login.tpl");
                          }
                       }
                    }
                    else
                    {
                       include (
                    "$cfgTplPath/customer_login.tpl");

                    Kommentar


                    • #11
                      du eumel!

                      wie rufst du die funktion auf? wieviele parameter übergibst du? wieviele hast du in der deklaration der funktion angegeben?

                      gebe beim aufruf auch nur $saCustomer an
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Entschuldige bitte

                        Kommentar


                        • #13
                          Du hast ja volkommen recht, ein wirklich saublöder Fehler. Schäm...
                          Habe das korigiert.
                          Nun wird mir der Benutzername und Passwort im Debuger korrekt angezeigt. Ich nehme mal an das die ' ' da auch nur einen String kennzeichnen. Weil ich kann mich immer noch nicht anmelden.
                          Bekomme immer noch die Meldung nicht angemeldet.
                          Habe mal bei
                          PHP-Code:
                          if ($UserId!=false)       
                                {
                                   echo 
                          '<pre>';
                                   
                          print_r($UserId);
                                   echo 
                          '</pre>';
                                   
                          Login($UserId); 
                          eingefügt, zur kontrolle ob die UserID übergeben wird.
                          Keine Anzeige.

                          Kommentar

                          Lädt...
                          X