UCP- finde den Fehler nicht

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • UCP- finde den Fehler nicht

      Heiho Kompanen!

      Ehm bin grade am Bauen eines USer Panels und steh da grade etwas auffer Matte! ;)

      PHP-Quellcode

      1. <?php
      2. include("config.php");
      3. session_start();
      4. error_reporting(0);
      5. $submit = $_POST['submit'];
      6. $username = sanitize($_POST['username']);
      7. $password = sanitize($_POST['password']);
      8. if($submit)
      9. {
      10. if($username && $password)
      11. {
      12. $query = mysql_query("SELECT username, password FROM user WHERE username = '$username'");
      13. if(mysql_num_rows($query) == 1)
      14. {
      15. while($row = mysql_fetch_assoc($query))
      16. {
      17. $dbusername = $row['username'];
      18. $dbpassword = $row['password'];
      19. }
      20. if($username == $dbusername && $password == $dbpassword)
      21. {
      22. $_session['username'] = $dbusername;
      23. echo header('location: index.php');
      24. }
      25. else echo "Falsches Passwort!";
      26. }
      27. else echo "Der Benutzer existiert nicht!";
      28. }
      29. else echo "Tippe dein Namen und Passwort ein!";
      30. }
      31. ?>
      32. <form action='index.php' method='POST'>
      33. <input type="text" name="Benutzer" value='<?php echo $username?>'/>
      34. <input type="passwort" name="password"/>
      35. <input type='submit' name="submit" value='login'/>
      36. </form>
      Alles anzeigen


      Immer wenn ich dann den Namen+PW eingebe kommt: Tippe dein Namen und Passwort ein!

      Bin bisl ratlos wo der Fehler liegt.

      localhost samp user
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Kenn mich da jetzt nicht so aus, da ich selber nicht wirklich viel PHP kann, aber:

      if($username && $password)

      Fehlt da nicht was? z.b. == true? Oder wird das direkt von Apache erkannt (wegen dem &&)?
      Falls nicht, könnte das der Grund sein, warum er auf
      }
      else echo
      "Tippe dein Namen und Passwort ein!";

      springt.
    • Kaev;291775 schrieb:

      Kenn mich da jetzt nicht so aus, da ich selber nicht wirklich viel PHP kann, aber:

      Fehlt da nicht was? z.b. == true? Oder wird das direkt von Apache erkannt (wegen dem &&)?
      Falls nicht, könnte das der Grund sein, warum er auf

      springt.


      denninho;291776 schrieb:

      Ne ;)
      Fehler ist gelöst, unten in der HTML Dekalrarion habe ich Benutzer zu username und Passwort zu password geändert.
      Gruß


      Trotzallem fragt man so keine Variablen ab wenn es keine true/false Variablen sind.
      Entweder sollte man :

      PHP-Quellcode

      1. if(isset($username) && !empty($username) && isset($password) && !empty($password)) {


      besser wäre sogar noch :

      PHP-Quellcode

      1. if(isset($username) && !empty(str_replace(" ","",$username)) && isset($password) && !empty(str_replace(" ","",$password))) {


      So kommt es auch bei mehreren leerzeichen auf keinenfall durch.
    • PHP-Quellcode

      1. <?php
      2. include("config.php");
      3. session_start();
      4. error_reporting(0);
      5. $username = sanitize($_POST['username']);
      6. $password = sanitize($_POST['password']);
      7. if(isset($_POST['action']) && $_POST['action'] == "login") {
      8. if(isset($username) && !empty(str_replace(" ","",$username)) && isset($password) && !empty(str_replace(" ","",$password))) {
      9. $query = sprintf("SELECT `username`,`password` FROM `user` WHERE `username` = '?'", mysql_real_escape_string($username));
      10. $result = mysql_query($query);
      11. if(mysql_num_rows($query) == 1) {
      12. $row = mysql_fetch_row($result);
      13. if($password == $row[1]) { //Bitte Passwörter nicht Clean Speichern , immer Verschlüsselt in einer DB speichern
      14. $_SESSION['username'] = $row[0];
      15. echo header('location: index.php');
      16. } else }
      17. echo "Falsches Passwort!";
      18. }
      19. } else {
      20. echo "Der Benutzer existiert nicht!";
      21. }
      22. } else {
      23. echo "Tippe dein Namen und Passwort ein!";
      24. }
      25. }
      26. echo "<form action=\"index.php\" method=\"POST\">
      27. <input type=\"text\" name=\"username\" value=\"".$username."\" />
      28. <input type=\"password\" name=\"password\" />
      29. <input type=\"submit\" name=\"action\" value=\"login\"/>
      30. </form>";
      31. //Feldname "submit" sollte man vermeiden , vorallem wenn man mit JavaScript das Script erweitern möchte. z.B. zur vorherigen Prüfung oder ähnliches.
      32. ?>
      Alles anzeigen
    • Es gibt mehr als nur dich hier im Forum die vllt mal die ein oder andere Hilfe bei ähnlichem problem haben , so haben diese direkt mehrere lösungen zur auswahl. Also bleib mal locker auf dem Hocker , dann nimm dein Abo raus und fertig.

      EDIT : Vorallem sind wir nur dabei deine Sicherheitslücken , die du nun einmal drin hast in diesem bisschl Code , etwas zu schliessen.