Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Login Script l�uft nicht auf dem Server

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Login Script l�uft nicht auf dem Server

    Hallo,

    mein Login Script l�uft bei mir lokal ohne Probleme aber auf dem Server funktioniert es einfach nicht. Nach dem Select wird das if else nicht ausgef�hrt. Habe es schon mit mysql_num_rows und mysql_fetch_row probiert, hat aber nichts geholfen. Help!

    PHP-Code:
    if(isset($login))
    {
                                include 
    "connect.inc.php";
                                
    $cpass=md5($pass);

                                
    $sqlab "select `username`, `password` from `user` where `username`= '$user'";
                                
    $sqlab .= "and `password`= '$cpass'";


                                
    $_POST["res"] = mysql_query($sqlab)or die ("Error - Query failed: ".mysql_error());



                                
    $_POST["erg"]=mysql_fetch_object($_POST["res"]);

                                if(
    $_POST["erg"]==FALSE)
                                {

                                    echo 
    "<div id=loginerror>Wrong username or password</div>";

                                }
                                else
                                {
                                    echo 
    "<div id=loginausgabe>Welcome [b]$user[/b].
    "
    ;
                                    echo
    "<input name='enter' class='button' type='button' value='>>Enter<<' onclick=location='setlink.php'></div>";
                                    
    session_register("cpass");

                                }


        } 


  • #2
    Hallo,

    dein Code ist sehr schlecht, $_POST, $_GET, etc sollten unbedingt readonly sein, also bitte nur auslesen. Dass if-else nicht ausgeführt wird (weder if noch else) kann nicht sein.

    http://tut.php-q.net

    Kommentar


    • #3
      Stimmt schon $_Post macht hier wenig Sinn aber daran liegt es nicht, hab wieder auf readonly umgestellt. Irgendwie bekomme ich keinen Rückgabewert von mysql_fetch_object.
      Tx für die schnelle Antwort

      Kommentar


      • #4
        so ist es etwas sauberer:

        PHP-Code:
        <?php

        if (isset($login)) {

            
        // Wenn keine Verbindung zur Datenbank da ist,
            // kannst du schlecht Queries absetzen...
            // deshalb besser require();
            
        require("connect.inc.php");

            
        // Werte, die du an mysql übergibst, sollten
            // escape't werden, sonst mögliche SQL-Injection (google)
            
        $query=  "SELECT username FROM user WHERE username='"mysql_real_escape_string($user) ."' ";
            
        $qiery.= "AND password='"md5($pass) ."'";

            
        // Am besten gibst du mysql_query noch ein Datenbank-
            // handle mit, was von mysql_connect() zurückgegeben wird,
            // ist sauberer...
            
        $resmysql_query($query$dbhandle);

            
        // Dann guckst du einfach, ob du mindestens einen Daten-
            // satz zurückbekommen hast.
            
        if (mysql_num_rows($res) >= 1) {

                
        // Login erfolgreich

            
        } else {

                
        // Fehlerhafter Login

            
        }

        ?>
        sollte nebenbei auch noch funktionieren

        Gruss

        Kommentar


        • #5
          Hi,
          so hab jetzt meinen code mal gesäubert wie oben beschrieben. Sieht schon besser aus . Habe gerade festgestellt das mit dem Select selber was nicht stimmt. Habt ihr ne Ahnung was es sein könnte? Auf dem lokalen Server läuft es ja??

          Kommentar


          • #6
            Evtl. liegt es an der verschlüsselung, das select funktioniert bis username wenn ich noch zusätzlich password ausgeben möchte gehts nicht mehr

            Kommentar


            • #7
              Hi,
              so ich hab den Fehler, das Problem war, das die Spalte Password auf varchar(15) eingestellt war. Wird aber mit md5 verschlüsselt können max 255 Zeichen entstehen also hab ich die Spalte auf varchar(255) umgestellt und es läuft. Juhuii

              Kommentar


              • #8
                Wer hat eigentlich das Gerücht in die Welt gesetzt, dass md5() eine Verschlüsselung ist?

                Kommentar


                • #9
                  Zitat von Tecnomaniac
                  Hi,
                  so ich hab den Fehler, das Problem war, das die Spalte Password auf varchar(15) eingestellt war. Wird aber mit md5 verschlüsselt können max 255 Zeichen entstehen also hab ich die Spalte auf varchar(255) umgestellt und es läuft. Juhuii
                  255 zeichen ? bei md5 ... dachte der hashwert hätte immer eine feste länge von 32 zeichen

                  -> http://de.wikipedia.org/wiki/Md5
                  robo47.net - Blog, Codeschnipsel und mehr
                  | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                  Kommentar


                  • #10
                    Vielleicht, um noch ein paar Anregungen zu holen:
                    http://forum.developers-guide.net/thread54.html

                    Grüße Ben.
                    privater Blog

                    Kommentar


                    • #11
                      Fettes Merci

                      Hi,

                      vielen Dank für die vielen Tips, hat mir echt weitergeholfen und hab sogar noch was dazugelernt

                      Kommentar

                      Lädt...
                      X