Php: Frage zum Loginsystem

  • Hallo,


    ich möchte gerne mein Login System weiter ausbauen:
    Jetzt gerade, wird es mit einer einfachen Abfrage geregelt, jedoch möchte ich das auf MySQL Basis "machen".
    Jetzt:
    if(($username == "admin") AND ($passwort == "passwort123"))
    Wie bekomme ich das hin?
    Ich habe folgende Spalten in der MySQL Tabelle:

    • user
    • pw
    • id


    Die ID wird automatisch ausgeführt, und dient nur als ID. Also nicht zu beachten ...


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="de">
    <head>
    <title>User Control Panel</title>


    <link rel="stylesheet" href="style.css" type="text/css" />
    </head>
    <body>



    <div id="body">
    <div id="logo">
    <center><big><big><big>ChrisG3TV</big></big></big> <br><big><big><big><big><big>CONTROL PANEL</big></big></big></big></big></div>
    </center><br>
    <div id="container">

    <?php
    $username = @$_POST["user"];
    $passwort = @$_POST["passwort"];



    if(($username == "admin") AND ($passwort == "passwort123"))


    {
    echo "Herzlich Willkommen!";
    ?>
    <meta http-equiv="refresh" content="5; url=adminhome.php">
    <script type="text/javascript"> function countDown(init) { if (init || --document.getElementById( "counter" ).firstChild.nodeValue > 0 )
    window.setTimeout( "countDown()" , 1000 ); } </script> </head> <body onload="countDown(true)"> <br>Weiterleitung in <span id="counter" class="dd">5</span> Sekunden.</b>

    <?php
    }
    else
    {
    echo "Login Fehlgeschlagen, Sie werden jetzt zurück zur Homeseite geleitet.";

    ?>
    <meta http-equiv="refresh" content="5; url=index.php">
    <script type="text/javascript"> function countDown(init) { if (init || --document.getElementById( "counter" ).firstChild.nodeValue > 0 )
    window.setTimeout( "countDown()" , 1000 ); } </script> </head> <body onload="countDown(true)"> <br>Weiterleitung in <span id="counter" class="dd">5</span> Sekunden.</b>

    <?php
    }
    ?>



    </div>
    <?php require_once('unten.php'); ?>
    </div>



    </body>
    </html>


    Ich hoffe ihr versteht was ich meine... :)


    Schönen Abend,

  • mysql_num_rows() gibt die Anzahl der vorhandenen Einträge wieder, die auf deine Abfrage zupassen.


    Ich bedanke mich vielmals, für deine ausführliche und freundliche Hilfe.
    Ich wünsche Dir noch einen schönen Abend,


    //e:
    Ein Fehler...


    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/customers/webs/ni71250_1/cp/login.php on line 37 Login Fehlgeschlagen, Sie werden jetzt zurück zur Homeseite geleitet.
    Die Verbindung zum MySQL Server steht.
    Die Verbindung zur Datenbank steht.


    Verbindungen bestehen....
    Hier ist der Code:



    IntelligenT Kannst Du mir helfen? :/

  • Anscheinend gibt es ein Problem mit der MySQL-Query.


    Sidn Sie sicher dass die Tabelle userdate heißt? das wäre der erste mögliche Fehler, der mir auffält.


    Des weiteren bin ich mir jetzt nicht ganz sicher, jedoch glaube ich dass MySQL einfache ( ' ) Anführungszeichen möchte, Sie benützen doppelte.


    Lösungsvorschlag:

    PHP
    $query = mysql_query('SELECT * FROM `userdata` WHERE `user`=\''.$username.'\' AND `pw`=\''.$passwort.'\'');
  • Wieso startest du den Query bevor du die Datenbank aus der Gelesen werden soll wählst?

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Der Thread ist schon alt, bzw. sich hat das erledigt.


    //e:


    Gibt es eine Möglichkeit, dass ich den Username irgendwie auf einer anderen PHP Seite bekomme? Also in einer Variable? - Ich hoffe ihr versteht was ich meine, denn ich möchte beim Eintragen in einer MySQL Tabelle den Adminnamen drinnen stehen haben.
    IntelligenT Kannst Du mir vll. dabei helfen? :>

  • Gibt es eine Möglichkeit, dass ich den Username irgendwie auf einer anderen PHP Seite bekomme? Also in einer Variable? - Ich hoffe ihr versteht was ich meine, denn ich möchte beim Eintragen in einer MySQL Tabelle den Adminnamen drinnen stehen haben.


    Usernamen bei Login in ne Session speichern & dann einfach die Session auslesen/abfragen wo du sieh haben willst

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • willst du injected werden :whistling: oder gehackt werden , da fehlt nähmlich eine sehr große sache :D , damit das nicht so leicht passiert.


    $host = ""; $user = ""; $pw = "";$username = $_POST["user"];
    $passwort = $_POST["passwort"];$connection = mysql_connect($host,$user,$pw);db_select($user);mysql_real_escape_string($username);mysql_real_escape_string($passwort); //sehr wichtig!!!! das muss immer unter dem dbselect stehen :D sonst funzt es net
    $query....




    mysql_real_escape_string($username);
    mysql_real_escape_string($passort);



    so verhinderst du mehr injektierungen oder angriffe von hackern.



    mfg kyle