Einfacher Login mit mysql und php

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

  • Einfacher Login mit mysql und php

    Hallo,
    mein Problem liegt darin, dass ich nicht weiß, wie man die daten sprich das Passwort und den Benutzernamen mit den aus der Datenbank vergleichen kann.
    um daraus dann festzustellen, dass ein richtiger Benutzername und das zugehörige PW eingegeben wurde.
    dannach sollte man schon auf den "Internen" Bereich zutritt haben...

    ich suche also einen simplen Login mittels mysql.


    Zum quelltext:

    ich habe mir erstmal ausgeben lassen, ob es einen Benutzernamen und ein Passwort gibt. ( das kommt dann anschließend wieder weg, war ja nur zum testen )
    dannach habe ich das formular erstellt, aber wie ich nun den abgleich machen soll weiß ich nicht, stelle mich da warscheinlich immer zu blöd an.

    ich will auch nicht mit session arbeiten.
    das ganze soll ja nur ein simples Projekt werden im Info unterricht.
    die seite geht nie online und wird auch nie auf sicherheit überprüft.

    PHP-Code:
    <html>
    <title>Login</title>
    <form method="post" action="login.php">
    <?php

    $host
    ='localhost';
    $user='root';
    $password='';

    $res=mysql_connect($host,$user,$password) or die('Das war wohl nix ! Mysql meldet:<br>'.mysql_error());

    $res=mysql_select_db('audi') or die('War wieder nix - die Datenbank gibts wohl nicht');


    $sql="SELECT * FROM `user`";
    $res=mysql_query($sql) or die("Das gibts doch nicht - immer noch was falsch ? !<br>".mysql_error()."<br>$sql");
    $num=mysql_num_rows($res);
    echo 
    "Ah, ich habe $num Datensätze gefunden<br>";

    While(
    $datensatz=mysql_fetch_array($res))
    {

        echo 
    "<p>";
        echo 
    "name " $datensatz['name']."<br>";
        echo 
    "passwort    :"  $datensatz['passwort']."<br>";
        echo 
    "</p>";


    }

    ?>

    <label>Benutzername : </label><input name="username" type="text">
    <br>
    <label>Passwort : </label><input name="userpass" type="text">
      <br>
      <input name="login" type="submit" value="weiter zum Login">
    </form>

    <br>
    <br>
    <br>
    <br>
    <a href="javascript:history.back()">Zurück</a>
    </html>

  • #2
    Erstmal ein Tutorial lesen: http://tut.php-quake.net/login.html

    Kommentar


    • #3
      Original geschrieben von PHP-Desaster
      Erstmal ein Tutorial lesen: http://tut.php-quake.net/login.html

      hm na so kompliziert wollte ich das aber nicht... ..ist zudem mit session...

      Kommentar


      • #4
        Für ein sehr einfaches System bist du mit deinem Code nicht so weit weg. Ein wenig modifiziert sieht das dann etwa so aus:
        PHP-Code:
        <html>
        <head>
        <title>Login</title>
        </head>
        <body>
        <?php

        if(!empty($_POST['go'])){
            
        // DB-Login etc .....

            
        $sql "SELECT 
                        passwort
                    FROM 
                          user
                    WHERE
                          name = '" 
        $POST['username'] . "'";
                      
            
        $res mysql_query($sql) or die("Das gibts doch nicht - immer noch was falsch ? !<br />" mysql_error() . "<br />$sql");
            
        $num mysql_num_rows($res);
            echo 
        "Ah, ich habe $num Datensätze gefunden<br />"// löschen    // Wenn mehr als einer, stimmt auch etws nicht!
            
        if($num == 1){
                    
        $datensatz mysql_fetch_array($res);
                    echo 
        "<p>";                                        // löschen
                    
        echo "name " $datensatz['name'] . "<br />";                // löschen
                    
        echo "passwort    :"  $datensatz['passwort'] . "<br />";    // löschen
                    
        echo "</p>";                                        // löschen
            
        else{
                    echo 
        "Benutzer " $POST['username'] . " existiert nicht";
            }
            if(
        $datensatz['passwort'] == sha1($_POST['userpasswort'])){     // Oder was für eine Verschlüsselung du benutzst
                
        header("Location: wo du halt dann hin weiterleiten willst");
            }
        }
        ?>
        <form method="post" action="login.php">
        <label>Benutzername : </label><input name="username" type="text" />
        <br>
        <label>Passwort : </label><input name="userpass" type="text" />
          <br />
          <input name="login" type="submit" name='go' value="weiter zum Login" />
        </form>
        <br />
        <br />
        <a href="java script:history.back()">Zur&uuml;ck</a>
        </body>
        </html>
        Die mit //löschen bezeichneten Zeilen müssen dann natürlich raus, da die Weiterleitung sonst nicht funktioniert. Und wenn der Login für mehr als eine bestimmte Seite gelten soll, kommst du wohl um Sessions nicht herum.
        Gruss
        H2O

        Kommentar


        • #5
          name = '" . $POST['username'] . "'";
          Ist aber auch nicht dein ernst oder?

          1) $_POST *klugscheiss*
          2) SQL Injection
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            Re: Einfacher Login mit mysql und php

            Vorschlag

            PHP-Code:
            $sql "SELECT userdaten FROM user WHERE username = '".mysql_real_escape_string($_POST['username'])."' && userpass = '".mysql_real_escape_string($_POST['userpass'])."' ";
            $res mysql_query($sql);
            $row mysql_fetch_array($res);

            if(!empty(
            $res)) {
            echo 
            $row['userdaten'];

            Kommentar


            • #7
              Re: Re: Einfacher Login mit mysql und php

              Vorschlag
              or die( mysql_error() ); hinter dem mysql_query und empty($row) anstatt empty($res).

              Btw: Passwort nicht im Klartext speichern!

              Kommentar

              Lädt...
              X