Ankündigung

Einklappen
Keine Ankündigung bisher.

Registrierung Script

Einklappen

Neue Werbung 2019

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

  • anyname
    hat ein Thema erstellt Registrierung Script.

    Registrierung Script

    Hallo an allen,

    ich habe einen Registrierungsscript geschrieben in dem ein Benutzer seine Daten eingibt, die in dem Datenbank mithilfe des SQLbefehls INSERT INTO gespeichert werden sollen. irgendwie geht es nicht.

    Datenbankname: users
    Tabellenname: login


    Html:
    PHP-Code:
    <html>
    <
    head>
    <
    titlelogin</title>
    </
    head>
    <
    body>
    <
    form method=post action="checklogin.php">
    <
    pUsername:</p
    <
    input type="text" id="username">
    <
    pPassword:</p>
    <
    input type="password" id="password">
    <
    pEmail:</p>
    <
    input type="text" id="email">
    <
    pAddress:</p>
    <
    input type="text" id="address"></br></br>
    <
    input type="submit" name="register">
    </
    form>
    </
    body>
    </
    html

    PHP Code (checklogin.php):

    PHP-Code:
    <?php
    $host
    ="localhost";
    $username="root";
    $password="";
    $uname=$_POST['username'];
    $passwd=$_POST['password'];
    $email=$_POST['email'];
    $address=$_POST['address'];

    //connect to database

    $con=mysql_connect($host$username$password);
    $db=mysql_select_db(users$con);
    $sql=mysql_query("INSERT INTO login ('username','password','email','address') VALUES ('$uname','$passwd','$em','$add')");

    was habe ich falshes getan?

    PS: ich benutze WAMP server (aktuelle Version)

    danke

    MfG

  • ChrisvA
    antwortet
    Da du einen Fehler im SQL-Code hast ist es naheliegend die Datenbank mal zu fragen, was ihr an deinem Code nicht gepasst hat.

    Ansonsten wurde hier ja schon ein sehr schöner Weg zum Fehler aufdecken geschrieben:
    http://www.php.de/php-einsteiger/110...tml#post812191

    Einen Kommentar schreiben:


  • anyname
    antwortet
    danke für die schnellen Antworten,

    Ich weiß dass der Code für SQL-Injection anfällig ist, das kann ich später behandeln, ich wollte nur einen einfachen Script "ohne Kopieren Einfügen" schreiben dann jedes Mal den Code einbisschen erweitern z.B. PHP-Erros behandeln und das Formular mit JQuery versehen, usw.

    meine Frage jetzt ist, funktionniert es nicht so mit einen einfachen Code ohne SQL errors zu berücksichtigen? oder muss ich unbedingt alles auf einmal schreiben?

    Einen Kommentar schreiben:


  • Geromel
    antwortet
    und zu guter letzt. Passwörter niemals im Klartext in die Datenbank schreiben. Nutze eine Hashfunktion, wie Whirlpool o.Ä. (kein md5 oder sha1)

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Du gibst auch der (veralteten, wie schon erwähnt) mysql_ Erweiterung gar nicht die Chance dir etwaige Fehler mitzuteilen, nutze das doch, dann sagt dir PHP schon wo es hakt. http://php.net/manual/de/function.mysql-error.php bzw. das allseits bekannte

    PHP-Code:
    ... or die(...) 
    Aber wie oben erwähnt, mysql_ ist veraltet und wird es nicht mehr lange geben!

    Kleines Detail am Rande, hier fehlen die Anführungszeichen
    PHP-Code:
    method=post 

    Einen Kommentar schreiben:


  • uha
    antwortet
    Zitat von anyname Beitrag anzeigen
    irgendwie geht es nicht.
    Das ist keine Problembeschreibung!

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Wenn ich raten sollte, würde ich sagen, in $_POST steht nicht das, was du dir erhoffst, da deine Formularfelder keine Namen haben.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wilkommen im forum!
    dir sei
    http://php-de.github.io/jumpto/leitfaden/ ans herz gelegt.

    jedoch mysql_* ist veraltet, nutze mysqli_*
    dein code ist ffür sqlinjections anfällig.

    lass dir die query, sowie mögliche mysql fehler ausgeben.

    //für das bischen text hab ich jetzt 2 minuten gebraucht - langsam, zu langsam?

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    http://php-de.github.io/jumpto/sql/

    Einen Kommentar schreiben:

Lädt...
X