Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Login-System Probleme

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Ich habe jetzt nun alles ausgebessert aber es funktioniert immernoch nicht!
    Mein Login-Script:
    PHP-Code:
    <?php
    include('config.php'); 
      
    $username mysql_real_escape_string($_POST['username']);
      
    $password mysql_real_escape_string($_POST['password']);
        
    $ergebnis mysql_query("SELECT * FROM game_user WHERE name = '".$_POST['username']."'");
        if(
    $username != "" AND $password != "") {
            
    $passwort sha1($password);
        
    $sql mysql_query("SELECT * FROM game_user WHERE (passwort = '$passwort') AND (name = '$username')");
        if (
    mysql_num_rows($sql) == 1) {
        
          
    $row mysql_fetch_assoc($sql);
          
    $_SESSION['erlaubt'] = true;
          
    $_SESSION['uid'] = $row->id;
          
    $_SESSION['username'] = $username;
          
    $_SESSION['grpid'] = $row->gruppen_id;
        } 

      if(
    $_SESSION['erlaubt']) {
      
        echo 
    "Du wurdest eingeloggt!";
        
    mysql_query("UPDATE user SET ip = '".$_SERVER['REMOTE_ADDR']."' WHERE username = '".$_SESSION['username']."'");
      }
      else
      {                           
        echo 
    "Login fehlgeschlagen!";
      }      
      }
      else
     { echo 
    "Du hast ein Feld ausgelassen!";
    }
    ?>
    Und mein Register-Script:
    PHP-Code:
    <?php
    include('config.php');
      
    $username mysql_real_escape_string($_POST['username']);
      
    $email mysql_real_escape_string($_POST['email']);
      
    $username_lower strtolower($username);
      
    $password mysql_real_escape_string($_POST['password']);
      
    $wdh $_POST['wdh'];
    $charakter $_POST["charakter"];
    $geschlecht $_POST["geschlecht"];
    $alter mysql_real_escape_string($_POST["alter"]);
    $pokemon $_POST["starterpokemon"];
    $ip $_SERVER['REMOTE_ADDR']; 
    $result mysql_query("SELECT * FROM user WHERE name = '".$username_lower."'");
    $num_rows "mysql_num_rows($result)";
    $emailaddy mysql_query("SELECT * FROM user WHERE mail = '".$email."'");
    $email_rows "mysql_num_rows($emailaddy)";
      if((
    $username == "") || ($password == "") || ($wdh == ""))
      {
        echo 
    "Du hast eines der Felder ausgelassen!";
      }
      else
      {
        if(
    $password != $wdh)
        {
          echo 
    "Die Passwörter stimmen nicht überein.";
        }

        elseif(
    $num_rows != 0)
            {
            echo 
    "Der Benutzername existiert schon!";
            }
                elseif(
    $email_rows != 0)
            {
            echo 
    "Die E-Mail Adresse wird schon benutzt!";
            }
        else
        {
          
    $passwort sha1($password);
          
    $sql "INSERT INTO game_user " .
    "VALUES ('', '$username', '$username_lower', '$email', '$passwort', '$ip', 'NOW()', '', '$geschlecht', '$alter', '', '$pokemon', '1', '10', '', '10000', '0', '$charakter', '10', '1', '', '1', '0', '')";
    if (
    mysql_query($sql)) {
     echo 
    "Registierung erfolgreich! ";
    } else {
    echo 
    "Es trat ein Fehler auf!";
    }
    $sql1 "INSERT INTO game_items " .
    "VALUES('', '$name', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')";
    if (
    mysql_query($sql1)) {
    echo 
    "Nun kannst du dich einloggen!";
    }
    }
    }
    ?>

    Kommentar


    • #17
      [...]es funktioniert immernoch nicht!
      Dann ist dein Script immer noch nicht fehlerfrei.
      [URL]http://hallophp.de[/URL]

      Kommentar


      • #18
        Der Post war ja jetzt sehr hilfreich!

        Kommentar


        • #19
          Genau wie deiner! Ich zitiere gerne noch einmal:
          [...]es funktioniert immernoch nicht!
          [URL]http://hallophp.de[/URL]

          Kommentar


          • #20
            Kannst du mal aufhören mit dem gespamme und unnötige Beiträge?*mitspamm*

            Kommentar


            • #21
              nun das mag dir nicht gefallen vTasker - aber Asipak bemängelt lediglich deine Fehlermeldung ..

              aber das hier .. ist Müll

              PHP-Code:
              "SELECT * FROM game_user WHERE (passwort = '$passwort') AND (name = '$username')"
              lass dort mal die Klammern IM Query weg ...und benutz endlich den Concat-Operator "." um die Zeichenkette vernünftig mit Variablen zu füllen

              und
              PHP-Code:
               mysql_query("UPDATE user SET ip = '".$_SERVER['REMOTE_ADDR']."' WHERE username = '".$_SESSION['username']."'"); 
              hier benutzt du immer noch die falsche Tabelle ...

              und im Registerscript steht auch noch die falsche Tabelle drin .. sag mal wozu erzählen wir dir dauernd, dass Tabelle user NICHT Tabelle game_user ist ????

              langsam komm ich auch zur Überzeugung, dass Lesen ganz bestimmt nicht deine Stärke ist ....
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              Kommentar


              • #22
                Wo genau im Register-Script???

                Kommentar


                • #23
                  PHP-Code:
                  $result mysql_query("SELECT * FROM user WHERE name = '".$username_lower."'");
                  $num_rows "mysql_num_rows($result)";
                  $emailaddy mysql_query("SELECT * FROM user WHERE mail = '".$email."'");
                  $email_rows "mysql_num_rows($emailaddy)"
                  dort .. im oberen Bereich

                  und obendrein sind die Gänsefüßchen um mysql_num_rows ganz großer Käse ...
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                  Kommentar


                  • #24
                    Zitat von vTasker Beitrag anzeigen
                    Kannst du mal aufhören mit dem gespamme und unnötige Beiträge?*mitspamm*
                    Gewöhne dir solche Beiträge bitte ab, und „funzt immer noch nicht“-Postings ebenso.

                    Lerne, wie man halbwegs logisch Fehlersuche betreibt - dazu gehören Kontrollausgaben, um Scriptablauf und Variableninhalte zu kontrollieren, und vernünftige Fehlerbehandlung (insb. Nutzung von mysql_error bei Datenbank-Operationen) und Kontrolle der Rückgabewerte kritischer Funktionsaufrufe.

                    Das sind alles Dinge, die du selber durchführen kannst.
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar


                    • #25
                      Hmm es funktioniert immernoch nicht!
                      Ich habe jetzt einfach ein neues Login-Script gestrickt aber nur ein bischen vereinfacht.
                      PHP-Code:
                      <?php
                        session_start
                      ();
                      include 
                      'config.php';
                        
                        
                      $username mysql_real_escape_string($_POST['username']);
                        
                      $password mysql_real_escape_string($_POST['password']);
                        
                        if((
                      $username != "") && ($password != ""))
                        {
                          
                      $passwort sha1($password);
                          
                      $sql mysql_query("SELECT * FROM game_user WHERE (passwort = '$password') AND (name = '$username')");
                          if(
                      mysql_num_rows($sql) == 1)
                          {
                            
                      $row mysql_fetch_object($sql);
                            
                      $_SESSION['erlaubt'] = true;
                            
                      $_SESSION['uid'] = $row->id;
                            
                      $_SESSION['username'] = $username;
                          }
                          else
                          {
                            
                      $_SESSION['erlaubt'] = false;
                          }
                        }
                        else
                        {
                          echo 
                      "Eines der Felder wurde ausgelassen!";
                        }

                        if(
                      $_SESSION['erlaubt'])
                        {
                          echo 
                      "Du wurdest eingeloggt!";
                        }
                        else
                        {
                          echo 
                      "Login fehlgeschlagen!";
                        }
                      ?>
                      Login schlägt aber leider immernoch fehl!

                      Kommentar


                      • #26
                        Richtig debuggen
                        1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
                        2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
                        3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
                        4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
                        5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
                        6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
                        7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
                        8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

                        Warum soll ich nicht SELECT * schreiben?
                        http://php.faq-page.net/q-sql-select.html

                        Kommentar


                        • #27
                          Ja ich ahbe jetzt wirklich alles komplett abgesucht aber den Fehler nicht gefunden
                          Kann mir einer den Fehler sagen oder wenigstens die Zeile? Ich wär wirklich dankbar.

                          Kommentar


                          • #28
                            Zitat von vTasker Beitrag anzeigen
                            Ja ich ahbe jetzt wirklich alles komplett abgesucht.
                            NEIN, HAST DU NICHT! Ich sehe nicht eine Debug-Ausgabe in dem Script!

                            Kommentar


                            • #29
                              Zitat von vTasker Beitrag anzeigen
                              PHP-Code:
                                  $passwort sha1($password);
                                  ^^^^^^^^^
                                  
                              $sql mysql_query("SELECT * FROM game_user WHERE (passwort = '$password') AND (name = '$username')");
                                                                                                 ^^^^^^^^^ 
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar


                              • #30
                                Damit du mal verstehst, was "Richtig debuggen" bedeutet:
                                PHP-Code:
                                <?php
                                  error_reporting
                                (E_ALL);
                                  
                                ini_set("display_errors"true);
                                  
                                  
                                session_start();
                                  
                                  include 
                                'config.php';
                                  
                                  if (isset (
                                $_POST['username'], $_POST['password']))
                                  {
                                      
                                $username mysql_real_escape_string($_POST['username']);
                                      
                                $password mysql_real_escape_string($_POST['password']);
                                  
                                      echo 
                                '$username = ' $username ', $password = ' $password "<br>";
                                      
                                      
                                $passwort sha1($password);
                                    
                                      
                                $query "SELECT 
                                                  id
                                                 FROM 
                                                   game_user 
                                                 WHERE 
                                                   passwort = '
                                $password'
                                                 AND 
                                                   name = '
                                $username'";
                                                   
                                     
                                // SPÄTESTENS HIER HÄTTEST DU WACH WERDEN MÜSSEN              
                                     
                                echo '$query = ' $query
                                     
                                // DA STEHT PLÖTZLICH DAS PASSWORT IM KLARTEXT AUF DEM BILDSCHIRM!
                                     
                                     
                                if(mysql_num_rows($result) == 1)
                                     {
                                        
                                $row mysql_fetch_object($result);
                                        
                                $_SESSION['erlaubt'] = true;
                                        
                                $_SESSION['uid'] = $row->id;
                                        
                                $_SESSION['username'] = $username;
                                     }
                                     else
                                     {
                                       
                                $_SESSION['erlaubt'] = false;
                                     }
                                  }
                                  else
                                  {
                                    echo 
                                "Eines der Felder wurde ausgelassen!";
                                  }

                                  if(
                                $_SESSION['erlaubt'])
                                  {
                                    echo 
                                "Du wurdest eingeloggt!";
                                  }
                                  else
                                  {
                                    echo 
                                "Login fehlgeschlagen!";
                                  }
                                ?>

                                Kommentar

                                Lädt...
                                X