Ankündigung

Einklappen
Keine Ankündigung bisher.

Registrierung Script

Einklappen

Neue Werbung 2019

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

  • 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


  • #2
    http://php-de.github.io/jumpto/sql/
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      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?

      Kommentar


      • #4
        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.
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          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 
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            und zu guter letzt. Passwörter niemals im Klartext in die Datenbank schreiben. Nutze eine Hashfunktion, wie Whirlpool o.Ä. (kein md5 oder sha1)
            Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

            Kommentar


            • #7
              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?

              Kommentar


              • #8
                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
                mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
                PHP-Code:
                echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

                Kommentar

                Lädt...
                X