Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Login - Fehler

Einklappen

Neue Werbung 2019

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

  • PHP Login - Fehler

    Hey liebe Community!

    Ich bin relativ neu was das programmieren allgemein angeht und habe mich nachdem ich mich mit der HTML und CSS Basis vertraut gemacht habe an PHP gewagt.
    Das erste was ich erzeugen wollte, war sowohl ein Registrierungs- als auch ein Loginsystem. Ersteres hat ohne Probleme funktioniert und schnurrt wie ein Kätzchen, das zweite krieg ich allerdings beim besten Wille nicht zum Laufen. Ich habe mir bereits einige Stunden den Kopf über meinem Code zerbrochen ohne den/die Fehler auftreiben zu können. Daher bin ich zu dem Entschluss gekommen, mir nun hier die Entsprechende Hilfe zu suchen und mal zu fragen ob jemand sich das ganze mal angucken und eventuell auf Schnitzer überprüfen könnte.
    Ich habe das ganze hier in einem Pastebin( http://pastebin.com/RcDiv8Jn ) für jeden zur Einsicht einmal hochgeladen - die Entfernten Daten am Anfang des Scripts habe ich der sicherheit halber entfernt, diese sind jedoch im original Script zu 100% richtig, sollte jemand auf diese Idee kommen.

    Vielen Dank Schonmal im Vorraus!
    ~Ploog

    P.S. Ich hoffe einfach mal, dass das hier das richtige Forum ist und eine solche Frage auf dieser Seite überhaupt gestattet ist - wenn nicht entschuldige ich mich für die unannehmlichkeiten.

    [MOD: PHP-Code hier ergänzt]

    PHP-Code:
    <?php
            $verbindung 
    mysql_connect("entfernt""entfernt""entfernt")
            or die (
    "Fehler im System");
            
    mysql_select_db("jericho") or die ("Verbindung zur Datenbank war nicht erfolgreich");

            
    session_start();
            
    $output 0;



            if(!isset(
    $_SESSION["username"]) and !isset($_GET["page"]))  {
            
    $output 0;
            }

            if(
    $_GET["page"] == "log")  {


            
    $user strtolower($_POST["user"]);
            
    $password md5($_POST["password"]);

            
    $user_exist = ("SELECT * FROM userdaten WHERE Username = '".$user."' AND Passwort = '".$password."'");

            if(
    $user_exist === true)  {
            
    $_SESSION["username"] = $user;
            
    $output 1;
            } else {
            
    $output 2;

        }
        }
    ?>

    <html>
     <head>
             <meta name='viewport' content='width=device-width, initial-scale=1' />
            <meta charset="utf-8" />
            <title>Login</title>
        <?php
            
    if($output === 1) {

        
    ?>
            <meta http-equiv="refresh" content="3; URL=hash.php" />
        <?php
        
    }
        
    ?>
     </head>
     <body>
        <?php
            
    if ($output === 0) {
        
    ?>
              Bitte logge dich ein: <br>
              <form method="post"> action="?page=log"
              Username: <input type="text" name="user"  /> <br>
              Passwort: <input type="password" name="password"  /> <br>
              <input type="submit" value="Einloggen"  /> <br>
              Noch kein Account?  <a href='register.php'>Hier registrieren!</a>
              </form>
        <?php
        
    }
            if (
    $ouput === 1) {
        
    ?>
              Login erfolgreich! Du wirst sofort weiter geleitet
        <?php
        
    }
            if (
    $output === 2) {
        
    ?>
             Passwort oder Username falsch, bitte probier es nochmal! <br>
             <a href='index.php'>Zurück </a>
        <?php
        
    }
        
    ?>
     </body>
    </html>

  • #2
    Willkommen hier im Forum,

    Punkt 1: mysql_* ist veraltet und in Php7 schon nichtmehr vorhanden. Gerade wenn du jetzt anfängst zu lernen schau dir nicht solchen murks an, sondern machs richtig mit PDO.
    Hier mal ein ganz guter Einstieg dazu: http://www.peterkropff.de/site/php/pdo.htm
    Auch die restlichen Tutorials von Peter Kropff sind zu empfehlen und einigermaßen zeitgemäß.

    Punkt 2: für Passwörter gibt es in Php integriete Funktionen password_hash und password_verify, die solltest du nutzen.

    Punkt 3: wenn du Php lernen willst lass das Html-Gerüst weg. Wie dein Skriptergebnis aussieht sollte im Lernprozess nicht im Vordergrund stehen, dafür bringst du dir immer zusätzliche "Unsicherheitsfaktoren" mit rein und machst dir mehr Aufwand als nötig

    Punkt 4: Dein problem kannst du lösen indem du Punkt 1 befolgst und dich einarbeitest. Dein aktuelles Problem ist, dass du deine sql-Anfrage nur als String vorliegen hast und garnicht an deine Datenbank schickst, aber danach dann überprüfst ob dieser string === true ist, was wohl nie eintreten wird.

    Ansonsten noch hier fürs Forum, Code direkt in Php-Tags (findest du im erweiterten Editor) und nicht über Pastebin, das ist für alle komfortabler,

    Liebe Grüße
    ChromOxid

    Kommentar


    • #3
      das zweite krieg ich allerdings beim besten Wille nicht zum Laufen
      Dann finde als erstes mal heraus warum - das ist dein Job: https://php-de.github.io/jumpto/faq/#debugging

      Scheinbar hast du auch ein Problem mit dem Encoding.

      PHP-Code:
        <a href='index.php'>Zurück </a
      Schau mal hier: https://php-de.github.io/jumpto/utf-8/
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar

      Lädt...
      X