kostenloser Webspace werbefrei: lima-city


PHP Loginsystem umschreiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hi !

    Ich habe ein Loginsystem auf meiner Seite.

    Hier mal die login.php:

    <?php 
    session_start(); 
    ?> 
    
    <?php 
    $verbindung = mysql_connect("mysql.lima-city.de", "xxx" , "xxxx") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
    mysql_select_db("xxxx") or die ("Datenbank konnte nicht ausgewählt werden"); 
    
    $username = $_POST["username"]; 
    $passwort = md5($_POST["password"]); 
    
    $abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage); 
    $row = mysql_fetch_object($ergebnis); 
    
    if($row->passwort == $passwort) 
        { 
        $_SESSION["username"] = $username; 
        echo "Login erfolgreich. <br> <a href="member/start.php">Hier geht´s weiter</a>"; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href="index.php">Login</a>"; 
        } 
    
    ?>


    Hier die eintragen.php

    <?php 
    $verbindung = mysql_connect("mysql.lima-city.de", "xxxx" , "xxxxx") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
    
    mysql_select_db("xxxxxx") or die ("Datenbank konnte nicht ausgewählt werden"); 
    
    $username = $_POST["username"]; 
    $passwort = $_POST["passwort"]; 
    $passwort2 = $_POST["passwort2"]; 
    
    if($passwort != $passwort2 OR $username == "" OR $passwort == "") 
        { 
        echo "Bitte fülle alle Felder korrekt aus. <a href="registrieren.htm">Zurück</a>"; 
        exit; 
        } 
    $passwort = md5($passwort); 
    
    $result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'"); 
    $menge = mysql_num_rows($result); 
    
    if($menge == 0) 
        { 
        $eintrag = "INSERT INTO login (username, passwort) VALUES ('$username', '$passwort')"; 
        $eintragen = mysql_query($eintrag); 
    
        if($eintragen == true) 
            { 
            echo "Herzlichen Glückwunsch. Ihr neuer Benutzername <b>$username</b> wurde erstellt. Sie können sich nun einloggen. <a href="index.php">Login</a>"; 
            } 
        else 
            { 
            echo "Fehler beim Speichern des Benutzernames. <a href="registrieren.htm">Zurück</a>"; 
            } 
    
    
        } 
    
    else 
        { 
        echo "Dieser Benutzername ist leider schon vorhanden. <a href="registrieren.htm">Zurück</a>"; 
        } 
    ?>


    Momentan werden bei der Registrierung 2 Sachen abgefragt: Der Benutzername und das Passwort.

    Ich will aber, dass der User folgende Sachen angeben kann/muss:

    Username (Pflichtfeld)
    Passwort (Pflichtfeld)
    eMail-Adresse (Pflichtfeld)
    Vorname (Pflichtfeld)
    Nachname (Pflichtfeld)
    Schule
    Klasse

    Könnt Ihr mir das irgendwie einfügen.

    Ich komme damit nicht klar.






    Beitrag geändert: 16.12.2008 17:03:59 von davy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Naja,
    zuerst musst du deine mySQL-Tabelle so bearbeiten, dass du platz für die anderen 5 angaben hast. (sprich du gehst in deinem userCP auf PHPmyAdmin und fügst der tabelle 5 felder hinzu, alle mit dem Datentyp 'VARCHAR' und dahinter in klammern die maximale länge.
    So, dann musst du natürlich die Registrierungsseite so ändern, dass du in die <form> noch 5 weitere <input>-Felder einsetzt mit den namen der angaben (email, schule, etc)
    So und damit das ganze ausgewertet werden kann muss die 'eintragen.php' auch noch ein wenig verändert werden:

    aus (Zeile 7 - 9)
    <?php
        $username = $_POST["username"]; 
        $passwort = $_POST["passwort"]; 
        $passwort2 = $_POST["passwort2"]; 
    ?>

    wird
    <?php
        $username = $_POST["username"]; 
        $passwort = $_POST["passwort"]; 
        $passwort2 = $_POST["passwort2"];
        $email = $_POST["email"]; 
        $vname = $_POST["vname"]; 
        $nname= $_POST["nname"];
        $schule= $_POST["schule"]; 
        $klasse = $_POST["klasse"];
    ?>


    in zeile 11 wird aus
    <?php
        if($passwort != $passwort2 OR $username == "" OR $passwort == "") 
    ?>

    das hier:
    <?php
        if($passwort != $passwort2 OR $username == "" OR $passwort == "" OR $email == "" OR $vname == "" OR $nname == "") 
    ?>


    auch die zeile 23 muss geändert werden, aus
    <?php
        $eintrag = "INSERT INTO login (username, passwort) VALUES ('$username', '$passwort')";
    ?>

    wird
    <?php
        $eintrag = "INSERT INTO login (username, passwort, email, vname, nname, schule, klasse) VALUES ('$username', '$passwort', '$email', '$vname', '$nname', '$schule', '$klasse')";
    ?>



    ich hoffe, ich hab jetzt in der eile nichts vergessen.
    Du kannst das script natürlich noch ein bisschen erweitern, prüfen, ob die email-adresse schon vorhanden ist, oder ähnliches.

    ich hoffe, dass klappt..
    grüße

    Edit: deine änderung mit dem Pflichtfeld noch reingenommen. Schule und Klasse sind jetzt optional
    Edit2: Format


    Beitrag geändert: 16.12.2008 18:35:57 von oru
  4. projektverwaltung

    projektverwaltung hat kostenlosen Webspace.

    Aslo wenn du HTML, PHP und MySQL beherrschst sollte das generell einfach umsetzbar sein, ansonsten finde ich es unschön fertige Scripts zu nutzen die man wirklich gar nicht versteht
  5. c****c

    Übrigens, ich bin auch davy :biggrin:

    Danke, das hat super geklappt

    Jetzt wäre es noch super, wenn ich die 5 Felder:

    mail
    vname
    nname
    schule
    klasse

    auf einer Seite anzeigen könnte.

    Das heißt ich will eine Seite, wo dann diese 5 Sachen stehen, die der User bei der Registrierung angegeben hat.
  6. Willst du wirklich nicht PHP lernen, ich finde es nicht gut, dass du hier deine ganze Seite zusammen fragst und klebst..

    btt: Du musst die Werte aus der MySQL - Datenbank abfragen, in Variablen speichern und ausgeben.

    MfG
    s1m13

    PS: Ich will hier nicht den Forumsaustausch stoppen, aber ich finds halt nich gut..


    Beitrag geändert: 16.12.2008 17:59:18 von s1m13
  7. c****c


    Willst du wirklich nicht PHP lernen, ich finde es nicht gut, dass du hier deine ganze Seite zusammen fragst und klebst..

    btt: Du musst die Werte aus der MySQL - Datenbank abfragen, in Variablen speichern und ausgeben.

    MfG
    s1m13

    PS: Ich will hier nicht den Forumsaustausch stoppen, aber ich finds halt nich gut..


    Beitrag geändert: 16.12.2008 17:59:18 von s1m13



    Natürlich werde ich PHP lernen, ich hab nur wenig Zeit :biggrin:

  8. Jetzt wäre es noch super, wenn ich die 5 Felder:

    mail
    vname
    nname
    schule
    klasse

    auf einer Seite anzeigen könnte.


    Hmm.. vll sollte ich daraus einen Service machen - 'Modifiziere Scripts für Gulden'xD
    Am besten wäre es wirklich, wenn du PHP und mySQL lernen würdest. Für das was du hier verlangst brauchst du, wenn du deinen Kopf anstrengst ca 10 minuten.
    Alle wichtigen sagen stehen nämlich schon in den Scripts, die du zu Anfang gepostet hast. Ich zeigs dir:

    Auslesen von Daten aus deiner Tabelle (Steht in Zeile 13-15 deiner Login.php):
    <?php
        $abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1"; 
        $ergebnis = mysql_query($abfrage); 
        $row = mysql_fetch_object($ergebnis); 
    ?>

    ein paar kleine veränderungen und du hast ratzfatz deine zusatzdaten ausgelesen:
    <?php
        $abfrage = "SELECT username, email, vname, nname, schule, klasse FROM login WHERE username LIKE '".$_SESSION['username']."' LIMIT 1"; 
        $ergebnis = mysql_query($abfrage); 
        $row = mysql_fetch_object($ergebnis); 
    ?>


    Nach deinem Login wird der Username des eingeloggten Benutzers in deiner Session gespeichert. Du musst natürlich nur daran denken die Session am anfang deines Ausgabescripts zu starten. Wie das geht, steht auch in deiner Login.php (Zeile 2):
    <?
        session_start(); 
    ?>


    so schnell hast du in der variable $row, die ganzen Zusatzdaten des benutzers gespeichert. Diese musst du nur noch ausgeben:

    <?php
        echo 'Username: '.$row->username.'<br />';
        echo 'Email: '.$row->email.'<br />';
        echo 'Vorname: '.$row->vname.'<br />';
        echo 'Nachname: '.$row->nname.'<br />';
        echo 'Schule: '.$row->schule.'<br />';
        echo 'Klasse: '.$row->klasse.'<br />';
    ?>


    Das wars auch schon. du kannst die formatierung natürlich noch ändern (wäre schon peinlich, wenn du das jetzt so übernehmen würdest xD) und ich würe noch ein paar abfragen machen, zb: ob der wert in schule und klasse gesetzt ist, wenn er nicht gesetzt ist, muss man ja die ganze zeile nicht zeigen etc.

    Also wie gesagt, es ist nicht unbedingt schwierig aus einem vorhandenen script ein paar neue features zu kitzeln oder es einfach ein bisschen zu erweitern...

    solange du dir immer fleißig sicherheitskopien anlegst, kannst du auch in aller seelenruhe rumbasteln - kaputtgehen kann ja nichts.

    Grüße
  9. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.



    Hmm.. vll sollte ich daraus einen Service machen - 'Modifiziere Scripts für Gulden'xD
    Am besten wäre es wirklich, wenn du PHP und mySQL lernen würdest. Für das was du hier verlangst brauchst du, wenn du deinen Kopf anstrengst ca 10 minuten.
    Alle wichtigen sagen stehen nämlich schon in den Scripts, die du zu Anfang gepostet hast. Ich zeigs dir:

    Auslesen von Daten aus deiner Tabelle (Steht in Zeile 13-15 deiner Login.php):
    <?php
        $abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1"; 
        $ergebnis = mysql_query($abfrage); 
        $row = mysql_fetch_object($ergebnis); 
    ?>

    ein paar kleine veränderungen und du hast ratzfatz deine zusatzdaten ausgelesen:
    <?php
        $abfrage = "SELECT username, email, vname, nname, schule, klasse FROM login WHERE username LIKE '".$_SESSION['username']."' LIMIT 1"; 
        $ergebnis = mysql_query($abfrage); 
        $row = mysql_fetch_object($ergebnis); 
    ?>


    Nach deinem Login wird der Username des eingeloggten Benutzers in deiner Session gespeichert. Du musst natürlich nur daran denken die Session am anfang deines Ausgabescripts zu starten. Wie das geht, steht auch in deiner Login.php (Zeile 2):
    <?
        session_start(); 
    ?>


    so schnell hast du in der variable $row, die ganzen Zusatzdaten des benutzers gespeichert. Diese musst du nur noch ausgeben:

    <?php
        echo 'Username: '.$row->username.'<br />';
        echo 'Email: '.$row->email.'<br />';
        echo 'Vorname: '.$row->vname.'<br />';
        echo 'Nachname: '.$row->nname.'<br />';
        echo 'Schule: '.$row->schule.'<br />';
        echo 'Klasse: '.$row->klasse.'<br />';
    ?>


    Das wars auch schon. du kannst die formatierung natürlich noch ändern (wäre schon peinlich, wenn du das jetzt so übernehmen würdest xD) und ich würe noch ein paar abfragen machen, zb: ob der wert in schule und klasse gesetzt ist, wenn er nicht gesetzt ist, muss man ja die ganze zeile nicht zeigen etc.

    Also wie gesagt, es ist nicht unbedingt schwierig aus einem vorhandenen script ein paar neue features zu kitzeln oder es einfach ein bisschen zu erweitern...

    solange du dir immer fleißig sicherheitskopien anlegst, kannst du auch in aller seelenruhe rumbasteln - kaputtgehen kann ja nichts.

    Grüße



    In welcher Datei muss ich das einfügen?

    Irgendwie geht es nicht?

    Was muss noch in die Seite, wo ich die Daten anzeigen will?


    Beitrag geändert: 16.12.2008 20:26:09 von davy
  10. du hast garkeine ahnung von php, oder? ist kein vorwurf, nur eine feststellung.
    du musst eine neue datei erstellen - wegen mir 'anzeige.php'
    dort schreibst du dann:
    <?
        session_start();
    
        $verbindung = mysql_connect("mysql.lima-city.de", "xxx" , "xxxx") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
        mysql_select_db("xxxx") or die ("Datenbank konnte nicht ausgewählt werden"); 
    
        $abfrage = "SELECT username, email, vname, nname, schule, klasse FROM login WHERE username LIKE '".$_SESSION['username']."' LIMIT 1"; 
        $ergebnis = mysql_query($abfrage); 
        $row = mysql_fetch_object($ergebnis); 
    
        echo 'Username: '.$row->username.'';
        echo 'Email: '.$row->email.'';
        echo 'Vorname: '.$row->vname.'';
        echo 'Nachname: '.$row->nname.'';
        echo 'Schule: '.$row->schule.'';
        echo 'Klasse: '.$row->klasse.'';
    
        mysql_close($verbindung);
    ?>


    so, das dürfte stimmen. ist jetzt ungetestet, weil nur übern laptop drin bin...
    das script funzt natürlich nur, wenn du eingeloggt bist ;)

    eventuelle fehlermeldungen kannst du ja posten...
  11. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Wie mache ich es, wenn ich die Angaben in einer HTML Tabelle anzeigen lassen will?
  12. Da brauchst du eine While-Schleife.
    Du schreibst außerhalb der Schleife
    <table>
    Und innerhalb der Schleife
    <tr><td>$username</td>...</tr>

    Und außerhalb der Schleife wieder </table>

  13. c****c

    Ok, wenn ich das mache, wo kommt dass der PHP Code

    <?
    session_start();
    
    $verbindung = mysql_connect("mysql.lima-city.de", "xxx" , "xxxx") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
    mysql_select_db("xxxx") or die ("Datenbank konnte nicht ausgewählt werden"); 
    
    $abfrage = "SELECT username, email, vname, nname, schule, klasse FROM login WHERE username LIKE '".$_SESSION['username']."' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage); 
    $row = mysql_fetch_object($ergebnis); 
    
    echo 'Username: '.$row->username.'';
    echo 'Email: '.$row->email.'';
    echo 'Vorname: '.$row->vname.'';
    echo 'Nachname: '.$row->nname.'';
    echo 'Schule: '.$row->schule.'';
    echo 'Klasse: '.$row->klasse.'';
    
    mysql_close($verbindung);
    ?>


    hin?
  14. <?php
        echo 'Username: '.$row->username.'';
        echo 'Email: '.$row->email.'';
        echo 'Vorname: '.$row->vname.'';
        echo 'Nachname: '.$row->nname.'';
        echo 'Schule: '.$row->schule.'';
        echo 'Klasse: '.$row->klasse.'';
    ?>

    Das ist der Ausgabecode.
    Ausgegeben wird:
    Username: UserXYZ
    Email: Mail@xyz.de
    Vorname: Vor
    Nachname: Name
    Schule: lalala-schule
    Klasse: 3B

    Wenn du das ganze so veränderst und das entsprechende Markup einfügst:
    <?php
        echo '<table>
        echo '<tr><td>Username:</td><td>'.$row->username.'</td></tr>';
        echo '<tr><td>Email:</td><td>'.$row->email.'</td></tr>';
        echo '<tr><td>Vorname:</td><td>'.$row->vname.'</td></tr>;
        echo '<tr><td>Nachname:</td><td>'.$row->nname.'</td></tr>';
        echo '<tr><td>Schule:</td><td>'.$row->schule.'</td></tr>';
        echo '<tr><td>Klasse:</td><td>'.$row->klasse.'</td></tr>';
        echo '</table>';
    ?>

    ändert sich die Ausgabe in:
    <table>
    <tr><td>Username:</td><td>UserXYZ</td></tr>
    <tr><td>Email:</td><td>Mail@xyz.de</td></tr>
    <tr><td>Vorname:</td><td>Vor</td></tr>
    <tr><td>Nachname:</td><td>Name</td></tr>
    <tr><td>Schule:</td><td>lalala-schule</td></tr>
    <tr><td>Klasse:</td><td>3B</td></tr>
    </table>


    Lass dir mal bitte nicht alles vorkauen. Ich meine, ich helfe echt gern, aber naja, wenn du schon eine ordentliche Seite aufziehen willst, dann solltest du dir auf jeden Fall darüber im Klaren sein, was sie kann und wie sie funktioniert.
  15. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.


    <?php
        echo 'Username: '.$row->username.'';
        echo 'Email: '.$row->email.'';
        echo 'Vorname: '.$row->vname.'';
        echo 'Nachname: '.$row->nname.'';
        echo 'Schule: '.$row->schule.'';
        echo 'Klasse: '.$row->klasse.'';
    ?>

    Das ist der Ausgabecode.
    Ausgegeben wird:
    Username: UserXYZ
    Email: Mail@xyz.de
    Vorname: Vor
    Nachname: Name
    Schule: lalala-schule
    Klasse: 3B

    Wenn du das ganze so veränderst und das entsprechende Markup einfügst:
    <?php
        echo '<table>
        echo '<tr><td>Username:</td><td>'.$row->username.'</td></tr>';
        echo '<tr><td>Email:</td><td>'.$row->email.'</td></tr>';
        echo '<tr><td>Vorname:</td><td>'.$row->vname.'</td></tr>;
        echo '<tr><td>Nachname:</td><td>'.$row->nname.'</td></tr>';
        echo '<tr><td>Schule:</td><td>'.$row->schule.'</td></tr>';
        echo '<tr><td>Klasse:</td><td>'.$row->klasse.'</td></tr>';
        echo '</table>';
    ?>

    ändert sich die Ausgabe in:
    <table>
    <tr><td>Username:</td><td>UserXYZ</td></tr>
    <tr><td>Email:</td><td>Mail@xyz.de</td></tr>
    <tr><td>Vorname:</td><td>Vor</td></tr>
    <tr><td>Nachname:</td><td>Name</td></tr>
    <tr><td>Schule:</td><td>lalala-schule</td></tr>
    <tr><td>Klasse:</td><td>3B</td></tr>
    </table>


    Lass dir mal bitte nicht alles vorkauen. Ich meine, ich helfe echt gern, aber naja, wenn du schon eine ordentliche Seite aufziehen willst, dann solltest du dir auf jeden Fall darüber im Klaren sein, was sie kann und wie sie funktioniert.


    Ok, danke

    Ich lerne bald PHP :biggrin:
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!