kostenloser Webspace werbefrei: lima-city


php/mysql login

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. p**********n

    spieleweb schrieb:
    Beispiel

    Datei: login.php
    <?php 
    // ------------------------------------------------- 
    
    session_start(); 
    
    // ------------------------------------------------- 
    ?>
    <html>
    <head>
    <title>Login Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body bgcolor="#FFFFFF" text="#000000">
    
    <?php 
    // ------------------------------------------------- 
    
    if (!empty($_POST['uname'])) { $login_uname = trim($_POST['uname']); } else { $login_uname = ''; } 
    
    if (!empty($_POST['upass'])) { $login_upass = trim($_POST['upass']); } else { $login_upass = ''; } 
    
    // ------------------------------------------------- 
    
    if (!empty($login_uname) && !empty($login_upass)) { 
    
    
    // ------------------------------------------------- 
    
    $con = mysql_connect("localhost", "BenutzerName" , "DeinPasswort") or die("ERROR ... mysql_connect"); 
    $sel = mysql_select_db("datenbank_name", $con) or die ("ERROR ... mysql_select_db"); 
    
    $login_uname = mysql_real_escape_string($login_uname); 
    $login_upass = mysql_real_escape_string($login_upass); 
    
    $abfrage1 = "SELECT username, passwort FROM login WHERE username='$username' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage1) or die ("ERROR ... mysql_query"); 
    
    $row = mysql_fetch_object($ergebnis); 
    
    // ------------------------------------------------- 
    
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    	$_SESSION["username"] = $login_uname; 
    	$_SESSION["loggedin"] = TRUE; 
    	
    	header("Location: userbereich.php"); 
    	
    	## echo "<br> Login erfolgreich. ... <a href=\"userbereich.php\">Gesch&uuml;tzer Bereich</a> \n"; 
    
    } 
    else {  
    
    	echo "<br> Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a> \n"; 
    	
    } 
    
    
    // ------------------------------------------------- 
    
    }
    else { 
    
    // ------------------------------------------------- 
    ?>
    
    <br>
    <br>
    <br>
    
    <form name="formular1" method="post" action="login.php">
      Username: <input type="text" name="uname" size="30" maxlength="100"> <br>
      Passwort: <input type="password" name="upass" size="30" maxlength="100"> <br>
      OK:&nbsp; <input type="submit" name="run" value="Login">
    </form>
    
    <br>
    <br>
    <br>
    
    <?php
    // ------------------------------------------------- 
    
    } 
    
    // ------------------------------------------------- 
    ?>
    
    </body>
    </html>



    beachte .. wenn Du das Passwort bein Erstellen als md5() Hash gespeichert hast,
    dann musst Du nach dem Login auch das User-Passwort als md5() Hash prüfen

    siehe:
    ...
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    ...


    wichtig ... beim Neu Erstellen (in DB speichern) solltest Du User-Eingaben
    auch (immer) mit mysql_real_escape_string() behandeln, ,zur Sicherheit !!!

    PS: ich habe in diesem Beispiel die Ziel-Seite nach erfolgreichem Login
    nicht "geheim.php" sondern "userbereich.php" genannt




    und warum die überprüfung der daten und verbindung zur db in der selben Datei. Das kann er ja auch auf ne externe datei auslagern und dann mit action aufrufen ;)
    is (wie ich finde) übersichtlicher und einfacher...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    Hey, ich habe angefangen PHP zu lernen.
    Jetzt steige ich auf MySQL Datenbänke um.

    Ich habe diese Beschreibung durchgelesen und auch durchgeführt. http://www.php-einfach.de/tuts_mysql_login.php
    Aber jetzt habe ich das Problem mit der MySql Datenbank
    Da steht drinne, dass die Datenbank so aussehen soll:
    id, int, 8, unsigned, not null, , auto_increment, primary, ,
    username, varchar, 150, not null, , , , ,
    passwort, varchar, 32, not null, , , , ,

    Aber das ist bei PHP Admin nicht möglich.
    Hat jemand hier Vorschläge, was ich machen könnte?
    Eintragen.php
    <?php 
    $verbindung = mysql_connect("localhost", "Benutzername" , "Passwort") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
    
    mysql_select_db("homepage") 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 "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">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 "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>"; 
            } 
        else 
            { 
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>"; 
            } 
    
    
        } 
    
    else 
        { 
        echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>"; 
        } 
    ?>

    Login.php
    <?php 
    session_start(); 
    ?> 
    
    <?php 
    $verbindung = mysql_connect("localhost", "BenutzerName" , "DeinPasswort") 
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
    mysql_select_db("homepage") 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=\"geheim.php\">Geschützer Bereich</a>"; 
        } 
    else 
        { 
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
        } 
    
    ?>

    Gruß LeyUp
  4. skateen schrieb:

    Aber das ist bei PHP Admin nicht möglich.

    Warum sollte das nicht möglich sein? Oder besser gefragt: woran scheiterst Du dabei?
  5. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    fatfreddy schrieb:
    skateen schrieb:

    Aber das ist bei PHP Admin nicht möglich.

    Warum sollte das nicht möglich sein? Oder besser gefragt: woran scheiterst Du dabei?


    Diese Einstellung:
    id, int, 8, unsigned, not null, , auto_increment, primary, ,
    username, varchar, 150, not null, , , , ,
    passwort, varchar, 32, not null, , , , ,

    Das was dick ist, ist in dieser Version nicht möglich.
  6. skateen schrieb:
    [...]
    Diese Einstellung:
    id, int, 8, unsigned, not null, , auto_increment, primary, ,
    username, varchar, 150, not null, , , , ,
    passwort, varchar, 32, not null, , , , ,

    Das was dick ist, ist in dieser Version nicht möglich.

    Klar ist das möglich!

    > Einfach den SQL-Code ausführen lassen oder not null = kein Häckchen bei "Null" machen, auto_increment = Häckchen bei A_I machen, du hast halt bloß keine Ahnung, wie deine Befehle abgekürzt werden :wink:
  7. das php.net-tut an der stelle ist ungeeignet, wenn du MySQL lernen willst, weil das sich auf die Interaktion mit PHP bezieht und gewisse MySQL Kenntnisse voraussetzt.

    für MySQL bitte dann hier weiter lesen:

    http://dev.mysql.com/doc/refman/5.1/de/tutorial.html

    da stehen die SQL Statements drin, um eine Tabelle anzulegen... sonst ist es unwahrscheinlich, dass du mit php MyAdmin klar kommst. dann kansnt du auch diese Zeilen interpretieren... vorher vielleicht noch ein Kapitel zu relationalen Datenbanken lesen, damit du weißt, was du da tust.

    und man steigt nicht von PHP auf MySQL um, sondern MySQL ist eine Scriptsprache, um die Vergesslichkeit von PHP zu fixen und Daten wegzuspeichern und abzurufen...

    also für dein Allgemeinverständnis solltest du das hier eher lesen, um zu verstehen, was MySQL ist und wie die Datenbanken heutzutage aufgebaut sind...

    http://dev.mysql.com/doc/refman/5.1/de/what-is.html


    denn es bringt dir nichts auf teufel komm raus fertige Scripte zu übernehmen, wenn du die Basis nicht verstehst. dann kannst du vielleicht das Script umsetzen, weißt aber nciht, was damit passiert... arbeiten mit einer BlackBox sollte man sich als angehender Webentwickler, egal ob Hobbyebene oder auf Professioneller Ebene von Anfang an verkneifen, sonst wirst du dein Handwerk nicht beherrschen.

    und die Scripte, die du da hast musst du um die entsprechende sql-syntax ergänzen, wenn die tabellen noch nicht existieren und da fehlt definitiv ein CREATE TABLE...

    wie das dann aussieht als beispiel siehst du auf dieser Seite:

    http://www.gieson.com/school/mysql/


    PS: da ich auch zu faul bin die Scripte manuell zu schreiben, erstelle ich die DBs mit MySQL Workbench... nettes Tool, aber etwas Kompliziert... dafür kann man übersichtlich größere Projekte damit anlegen, ohne sich zu verhaspeln

    Beitrag zuletzt geändert: 30.10.2013 17:49:45 von sebulon
  8. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    sebulon schrieb:
    das php.net-tut an der stelle ist ungeeignet, wenn du MySQL lernen willst, weil das sich auf die Interaktion mit PHP bezieht und gewisse MySQL Kenntnisse voraussetzt.

    für MySQL bitte dann hier weiter lesen:

    http://dev.mysql.com/doc/refman/5.1/de/tutorial.html

    da stehen die SQL Statements drin, um eine Tabelle anzulegen... sonst ist es unwahrscheinlich, dass du mit php MyAdmin klar kommst. dann kansnt du auch diese Zeilen interpretieren... vorher vielleicht noch ein Kapitel zu relationalen Datenbanken lesen, damit du weißt, was du da tust.

    und man steigt nicht von PHP auf MySQL um, sondern MySQL ist eine Scriptsprache, um die Vergesslichkeit von PHP zu fixen und Daten wegzuspeichern und abzurufen...

    also für dein Allgemeinverständnis solltest du das hier eher lesen, um zu verstehen, was MySQL ist und wie die Datenbanken heutzutage aufgebaut sind...

    http://dev.mysql.com/doc/refman/5.1/de/what-is.html


    denn es bringt dir nichts auf teufel komm raus fertige Scripte zu übernehmen, wenn du die Basis nicht verstehst. dann kannst du vielleicht das Script umsetzen, weißt aber nciht, was damit passiert... arbeiten mit einer BlackBox sollte man sich als angehender Webentwickler, egal ob Hobbyebene oder auf Professioneller Ebene von Anfang an verkneifen, sonst wirst du dein Handwerk nicht beherrschen.

    und die Scripte, die du da hast musst du um die entsprechende sql-syntax ergänzen, wenn die tabellen noch nicht existieren und da fehlt definitiv ein CREATE TABLE...

    wie das dann aussieht als beispiel siehst du auf dieser Seite:

    http://www.gieson.com/school/mysql/


    PS: da ich auch zu faul bin die Scripte manuell zu schreiben, erstelle ich die DBs mit MySQL Workbench... nettes Tool, aber etwas Kompliziert... dafür kann man übersichtlich größere Projekte damit anlegen, ohne sich zu verhaspeln

    Danke, werde ich mir als nächstes vornehmen.
    webfreclan schrieb:

    skateen schrieb:
    [...]
    Diese Einstellung:
    id, int, 8, unsigned, not null, , auto_increment, primary, ,
    username, varchar, 150, not null, , , , ,
    passwort, varchar, 32, not null, , , , ,

    Das was dick ist, ist in dieser Version nicht möglich.

    Klar ist das möglich!

    > Einfach den SQL-Code ausführen lassen oder not null = kein Häckchen bei "Null" machen, auto_increment = Häckchen bei A_I machen, du hast halt bloß keine Ahnung, wie deine Befehle abgekürzt werden :wink:

    Oh, danke jetzt Funktioniert es.

    Aber mal so eine Frage. Was muss ich hier ändern, wenn ich mehre Passwörter einsetzen mit anderen Links? Das verstehe ich gerade nicht und auf der Seite von denen steht das auch nicht.
    <?php
    $passwort = $_POST["passwort"];
    
    if($passwort=="geheim")
       {
       header("Location: http://skateen.lima-city.de/...");
    
       }
    else
       {
       echo "Das Passwort ist leider falsch";
       }
    ?>


    Gruß LeyUp

    Beitrag zuletzt geändert: 31.10.2013 17:13:00 von skateen
  9. Beispiel

    Datei: login.php
    <?php 
    // ------------------------------------------------- 
    
    session_start(); 
    
    // ------------------------------------------------- 
    ?>
    <html>
    <head>
    <title>Login Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body bgcolor="#FFFFFF" text="#000000">
    
    <?php 
    // ------------------------------------------------- 
    
    if (!empty($_POST['uname'])) { $login_uname = trim($_POST['uname']); } else { $login_uname = ''; } 
    
    if (!empty($_POST['upass'])) { $login_upass = trim($_POST['upass']); } else { $login_upass = ''; } 
    
    // ------------------------------------------------- 
    
    if (!empty($login_uname) && !empty($login_upass)) { 
    
    
    // ------------------------------------------------- 
    
    $con = mysql_connect("localhost", "BenutzerName" , "DeinPasswort") or die("ERROR ... mysql_connect"); 
    $sel = mysql_select_db("datenbank_name", $con) or die ("ERROR ... mysql_select_db"); 
    
    $login_uname = mysql_real_escape_string($login_uname); 
    $login_upass = mysql_real_escape_string($login_upass); 
    
    $abfrage1 = "SELECT username, passwort FROM login WHERE username='$username' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage1) or die ("ERROR ... mysql_query"); 
    
    $row = mysql_fetch_object($ergebnis); 
    
    // ------------------------------------------------- 
    
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    	$_SESSION["username"] = $login_uname; 
    	$_SESSION["loggedin"] = TRUE; 
    	
    	header("Location: userbereich.php"); 
    	
    	## echo "<br> Login erfolgreich. ... <a href=\"userbereich.php\">Gesch&uuml;tzer Bereich</a> \n"; 
    
    } 
    else {  
    
    	echo "<br> Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a> \n"; 
    	
    } 
    
    
    // ------------------------------------------------- 
    
    }
    else { 
    
    // ------------------------------------------------- 
    ?>
    
    <br>
    <br>
    <br>
    
    <form name="formular1" method="post" action="login.php">
      Username: <input type="text" name="uname" size="30" maxlength="100"> <br>
      Passwort: <input type="password" name="upass" size="30" maxlength="100"> <br>
      OK:&nbsp; <input type="submit" name="run" value="Login">
    </form>
    
    <br>
    <br>
    <br>
    
    <?php
    // ------------------------------------------------- 
    
    } 
    
    // ------------------------------------------------- 
    ?>
    
    </body>
    </html>



    beachte .. wenn Du das Passwort bein Erstellen als md5() Hash gespeichert hast,
    dann musst Du nach dem Login auch das User-Passwort als md5() Hash prüfen

    siehe:
    ...
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    ...


    wichtig ... beim Neu Erstellen (in DB speichern) solltest Du User-Eingaben
    auch (immer) mit mysql_real_escape_string() behandeln, ,zur Sicherheit !!!

    PS: ich habe in diesem Beispiel die Ziel-Seite nach erfolgreichem Login
    nicht "geheim.php" sondern "userbereich.php" genannt

  10. Autor dieses Themas

    skateen

    skateen hat kostenlosen Webspace.

    spieleweb schrieb:
    Beispiel

    Datei: login.php
    <?php 
    // ------------------------------------------------- 
    
    session_start(); 
    
    // ------------------------------------------------- 
    ?>
    <html>
    <head>
    <title>Login Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body bgcolor="#FFFFFF" text="#000000">
    
    <?php 
    // ------------------------------------------------- 
    
    if (!empty($_POST['uname'])) { $login_uname = trim($_POST['uname']); } else { $login_uname = ''; } 
    
    if (!empty($_POST['upass'])) { $login_upass = trim($_POST['upass']); } else { $login_upass = ''; } 
    
    // ------------------------------------------------- 
    
    if (!empty($login_uname) && !empty($login_upass)) { 
    
    
    // ------------------------------------------------- 
    
    $con = mysql_connect("localhost", "BenutzerName" , "DeinPasswort") or die("ERROR ... mysql_connect"); 
    $sel = mysql_select_db("datenbank_name", $con) or die ("ERROR ... mysql_select_db"); 
    
    $login_uname = mysql_real_escape_string($login_uname); 
    $login_upass = mysql_real_escape_string($login_upass); 
    
    $abfrage1 = "SELECT username, passwort FROM login WHERE username='$username' LIMIT 1"; 
    $ergebnis = mysql_query($abfrage1) or die ("ERROR ... mysql_query"); 
    
    $row = mysql_fetch_object($ergebnis); 
    
    // ------------------------------------------------- 
    
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    	$_SESSION["username"] = $login_uname; 
    	$_SESSION["loggedin"] = TRUE; 
    	
    	header("Location: userbereich.php"); 
    	
    	## echo "<br> Login erfolgreich. ... <a href=\"userbereich.php\">Gesch&uuml;tzer Bereich</a> \n"; 
    
    } 
    else {  
    
    	echo "<br> Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a> \n"; 
    	
    } 
    
    
    // ------------------------------------------------- 
    
    }
    else { 
    
    // ------------------------------------------------- 
    ?>
    
    <br>
    <br>
    <br>
    
    <form name="formular1" method="post" action="login.php">
      Username: <input type="text" name="uname" size="30" maxlength="100"> <br>
      Passwort: <input type="password" name="upass" size="30" maxlength="100"> <br>
      OK:&nbsp; <input type="submit" name="run" value="Login">
    </form>
    
    <br>
    <br>
    <br>
    
    <?php
    // ------------------------------------------------- 
    
    } 
    
    // ------------------------------------------------- 
    ?>
    
    </body>
    </html>



    beachte .. wenn Du das Passwort bein Erstellen als md5() Hash gespeichert hast,
    dann musst Du nach dem Login auch das User-Passwort als md5() Hash prüfen

    siehe:
    ...
    
    $logpass_hash = md5($login_upass); 
    
    if($row->passwort == $logpass_hash) { 
    
    ...


    wichtig ... beim Neu Erstellen (in DB speichern) solltest Du User-Eingaben
    auch (immer) mit mysql_real_escape_string() behandeln, ,zur Sicherheit !!!

    PS: ich habe in diesem Beispiel die Ziel-Seite nach erfolgreichem Login
    nicht "geheim.php" sondern "userbereich.php" genannt

    Danke, aber ich hab es doch hinbekommen.


    Beitrag zuletzt geändert: 10.11.2013 0:22:39 von skateen
  11. 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!