tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von timestamp
  • 1 Beitrag von Alex_T
  • 1 Beitrag von timestamp
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
640
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Zenti
    Zenti Zenti ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Root
    Beiträge
    90
    Guten Abend,

    Ich hab versucht ein kleines Login Script mit MYSQL anbindung zu basteln.


    +++ HTML FORMULAR MIT SUBMIT (login.php)

    HTML-Code:
    <form action="login_check.php" method="POST">
    
    Deine Kundennummer:<br>
    <input type="text" size="24" maxlength="50"
    name="id"><br />
    
    Dein Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="passwort"><br />
    <br />
    
    <input type="submit" value="Login">
    
    </form>

    +++ DATEN WERDEN ÜBERPRÜFT (login_check.php)


    PHP-Code:

    <?php
    session_start
    ();
    ?>

    <?php
    include "mysql_connection.php";

    $kundennummer $_POST["id"];
    $passwort $_POST["passwort"];

    $abfrage "SELECT ID, passwort FROM kunden WHERE ID LIKE '$kundennummer' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->passwort == $passwort)
        {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo 
    "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
        }

    ?>
    +++ GESCHÜTZTER BEREICH (member.php)

    PHP-Code:

    <?php
    session_start
    ();

    if(!isset(
    $_SESSION["kundennummer"]))
       {
       echo 
    "Bitte erst <a href=\"login.php\">einloggen</a>";
       exit;
       }
    ?>
    So wie mein Script momentan aufgebaut ist kann man sich immer einloggen. Er zeigt nur ne Fehlermeldung
    wenn man die falschen Daten eingibt. Drückt man aber auf Submit ohne etwas einzugeben dann loggt man sich ein.
    Auf die member.php kann man auch extern zugreifen. Ich weis nicht was ich falsch mache -.-

    Ich habe schon einmal ein Loginscript gebastelt allerdings war das mit einer MD5 verschlüsselung was aber
    jetzt keine rolle spielt. Auf jedenfall bekomm ichs nicht mehr hin. Irgendwo ist der Wurm drinnen.

    Könnte mir da jemand evtl. Hilfestellung anbieten.
    Wäre sehr dankbar

    mit freundlichen Grüßen,
    *Zenti
    Geändert von Zenti (18.05.10 um 22:13 Uhr) Grund: code geändert
     

  2. #2
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Grüße,

    ich hatte mal das gleiche Problem - auf deinen Code angewendet hab ichs dann so gelöst:

    PHP-Code:
    if($row->passwort == "$passwort")
    {
    ...

    hoffe es funktioniert, ansonsten müssen mer da mal schauen
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  3. #3
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hi

    ändere mal die SQL Abfrage wie folgt ab. Außerdem würde ich die Passwörter deiner Kunden verschlüsselt (z.B. mit md5() ) abspeichern.

    PHP-Code:

    <?php
    session_start
    ();
    include 
    "mysql_connection.php";

    $kundennummer mysql_real_escape_string($_POST["id"]);
    $passwort md5($_POST["passwort"]);

    $abfrage "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);
    if(
    $row->passwort == $passwort && mysql_num_rows($ergebnis) == 1)
        {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo 
    "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
        }

    ?>
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  4. #4
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Wenn du die Variable Passwort jedoch vor der Abfrage mit md5 verschlüsselst, dann müssen die Passwörter in der Datenbank entweder ebenfalls schon md5 verschlüsselt sein oder du änderst den Code
    ein wenig ab, da sich sonst keine Übereinstimmung findet:

    PHP-Code:
    <?php
    session_start
    ();
    include 
    "mysql_connection.php";

    $kundennummer mysql_real_escape_string($_POST["id"]);
    $passwort md5($_POST["passwort"]);

    $abfrage "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    $PVerschl md5($row->passwort);

    if(
    $PVerschl == $passwort && mysql_num_rows($ergebnis) == 1)
        {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo 
    "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
        }

    ?>
    oder

    PHP-Code:
    <?php
    session_start
    ();
    include 
    "mysql_connection.php";

    $kundennummer mysql_real_escape_string($_POST["id"]);
    $passwort md5($_POST["passwort"]);

    $abfrage "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);
    if(
    md5($row->passwort) == $passwort && mysql_num_rows($ergebnis) == 1)
        {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo 
    "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
        }

    ?>
    ... keine Ahnung, ob das 2. Beispiel seinen Dienst verrichtet - bin ein bisschen aus dem Stoff draußen
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  5. #5
    Avatar von Zenti
    Zenti Zenti ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Root
    Beiträge
    90
    @ Alex_T:
    Hat leider nicht funktioniert,..
    Danke trozdem

    @ timestamp:
    Jetzt wird zwar ein Fehlermeldung ausgegeben wenn ich auf den Sumit Button drücke. Auf die member.php
    kann ich jedoch extern zugreifen. Dort wirkt die Session nicht.

    bin leider ratlos..
    Hat jemand noch eine Idee ?

    Danke,..

    mit freundlichen Grüßen,
    *Zenti

    ps.: Möchte das ganze ohne MD5 machen.
    Dieses Script wird so auch nicht zum einsatz kommen.
    Ich bastel einfach nur so rum
    Geändert von Zenti (18.05.10 um 23:20 Uhr) Grund: [b] code
     

  6. #6
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Zitat Zitat von Zenti Beitrag anzeigen
    Auf die member.php
    kann ich jedoch extern zugreifen. Dort wirkt die Session nicht.
    Hast du mal deinen Browser neu gestartet bzw die Session gelöscht? Eigentlich dürfte das dann nicht mehr klappen.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  7. #7
    Avatar von Zenti
    Zenti Zenti ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Root
    Beiträge
    90
    Ja habe ich alles gemacht.
    Ich bin auch der Meinug das es funktionieren müsste..
    Keine Ahnung

    So sieht mein momentaner Code aus,..

    PHP-Code:

    <?php
    session_start
    ();
    include 
    "mysql_connection.php";

    $kundennummer mysql_real_escape_string($_POST["id"]);
    $passwort $_POST["passwort"];

    $abfrage "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);
    if(
    $row->passwort == $passwort && mysql_num_rows($ergebnis) == 1)
        {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo 
    "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
        }

    ?>

    +++GESCHÜTZTER BEREICH

    PHP-Code:

    <?php
    session_start
    ();

    if(!isset(
    $_SESSION["kundennummer"]))
       {
       echo 
    "Bitte erst <a href=\"login.php\">einloggen</a>";
       exit;
       }
    ?>
     

  8. #8
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Füg in der geschützen Bereich Datei einfach mal ein
    PHP-Code:
    var_dump($_SESSION); 
    ein. Und geh mal auf Nummer sicher und teste das Script in einem anderen Browser (also geh auf die member.php ohne dich vorher einzuloggen).
    Zenti bedankt sich. 
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  9. #9
    Avatar von Zenti
    Zenti Zenti ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Root
    Beiträge
    90
    So habe das ganze jetzt mal getestet.

    Wenn ich "var_dump($_SESSION); " einfüge und die member.php öffne dann kommt folgender Code im Browser. Ô.o
    array(5) { ["ID"]=> &string(3) "fgh" ["id"]=> &string(5) "10000" ["kundenlogin"]=> &string(0) "" ["kdnr"]=> &string(0) "" ["kundennummer"]=> &string(5) "10114" }

    und die Member.php lässt sich auch ohne login öffnen.

    hm.. -.-

    mit freundlichen Grüßen,
    *Zenti

    ps.: Hat noch jemand ne Idee ?
    Geändert von Zenti (19.05.10 um 11:01 Uhr) Grund: login
     

  10. #10
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Mahlzeit,
    ich hab mir jetzt mal die Zeit genommen und das ganze Ding mal auseinander genommen....
    Ich hab mir selber eine Datenbank folgendermaßen angelegt:
    Datenbankname = test
    Datenbanktabelle = kunden

    Struktur der Datenbanktabelle: id(=Primary Key)INT(11) NOT NULL AUTO_INCREMENT, passwort VARCHAR(30) NOT NULL, kunde INT(20) NOT NULL

    Dabei ist kunde der Part, in dem die kundennummer gespeichert wird.

    Hier also nun mein Code der login.php:
    PHP-Code:
    <html>
    <
    head>
    <
    title>Test Login</title>
    </
    head>

    <
    body>

    <
    form action="login_check.php" method="POST">

    Deine Kundennummer:<br>
    <
    input type="text" size="24" maxlength="50"
    name="nummer"><br />

    Dein Passwort:<br>
    <
    input type="password" size="24" maxlength="50"
    name="passwort"><br />
    <
    br />

    <
    input type="submit" value="Login">

    </
    form>

    </
    body>
    </
    html
    zugegeben - es hat sich nicht viel geändert (außer das name-Attribut beim Kundennummer-Textfeld)

    Code der login_check.php

    PHP-Code:
    <?php
    session_start
    ();
    /*******************
    relevante Daten
    in Variablen
    speichern
    *******************/
    $kundennummer $_POST["nummer"];
    $passwort_eingabe $_POST["passwort"];
    /*******************
    Abfrage mit 
    entsprechendem
    Ergebnis
    *******************/


    //Hier sollten die Daten zur Herstellung einer Datenbankverbindung stehen

        
    //Abfrage
    $abfrage mysqli_query($db,"SELECT * FROM kunden WHERE kunde = $kundennummer");
    while(@
    $datensatz mysqli_fetch_array($abfrage)) {
            
    extract($datensatz);


    if(
    $passwort == $passwort_eingabe) {
        
    $_SESSION["kundennummer"] = $kundennummer;
        echo
    "Login erfolgreich. <br><a href='member.php'>Geschützter Bereich</a>";
    } else {
        echo
    "Benutzername und/oder Passwort waren falsch. <br><a href='login.php'>Login</a>";
    }

    }
    ?>
    und der Code der member.php:

    PHP-Code:
    <?php
    session_start
    ();

    if(!isset(
    $_SESSION["kundennummer"])) {
        echo
    "Bitte erst <a href='login.php'>einloggen</a>";
    } else {
        echo
    "Sie sind eingeloggt";
    }
    ?>
    Das ganze hat bei mir wunderbar funktioniert - hoffe das tut es auch bei dir....
    Zenti bedankt sich. 
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  11. #11
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hi

    ansonten könntest du noch eine Zusatzbedingung einbauen
    PHP-Code:
    if( !isset($_SESSION["kundennummer"]) || empty($_SESSION["kundennummer"]) ){
      echo 
    "Bitte einloggen";

    Zenti bedankt sich. 
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  12. #12
    Avatar von Zenti
    Zenti Zenti ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Root
    Beiträge
    90
    So,.. vielen lieben Dank an euch alle
    Nach langem rumbasteln hat sich das ganze doch gelohnt, denn jetzt funktioniert es. xD

    Es hätte warscheinlich letztens schon funktioniert aber da war die Session aktiv. Ich dachte das
    ich diese lösche in dem ich meine Cookis kill und meinen PC neustarte.

    Keine Ahnung was mein Rechner da für ein Problem hatte. Auf jeden fall habe ich das ganze so aufgebaut wie Alex_T
    und siehe da.. vor wenigen minuten habe ich einfach die member.php aufgerufen (ohne vorher einzuloggen) und sie blieb mir verwehrt
    Nach dem einloggen wurde ich dann Ohne Fehlermeldung mit zugriff auf die member.php weitergeleitet.

    Wie bereits erwähnt. Es ist wirklisch schön das sich hier einige Leute die Zeit genommen haben und mir bei meinem Problem geholfen haben xD
    Danke nochmal

    mit freundlichen Grüßen,
    *Zenti
     

Ähnliche Themen

  1. Login script! mysql
    Von fla5hi im Forum PHP
    Antworten: 3
    Letzter Beitrag: 16.10.07, 09:58
  2. Login-Script mit MySQL
    Von Migelinho im Forum PHP
    Antworten: 8
    Letzter Beitrag: 13.10.05, 03:41
  3. Login Script mit Mysql
    Von ulf123 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 26.10.04, 12:48
  4. [PHP/MySQL] Login-Script
    Von vipey im Forum PHP
    Antworten: 14
    Letzter Beitrag: 15.01.03, 14:51
  5. Login Script mit PHP und mySQL
    Von Wilhelm im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.05.02, 17:54