1. #1

    Registriert seit
    07.06.2012
    Beiträge
    53
    Thanked 9 Times in 8 Posts

    Ausrufezeichen Formulardaten an Datenbank senden

    Hallo Community,

    und zwar habe ich ein Problem
    PHP-Code:
    <html>
    <head>
    <title>Anmeldung</title>

    </head>
     <body background="Razers-Hardware-1280x960-7031.jpg"  text="#FDFBFA" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

     <?php
              
    //datenbank Verbindungsaufbau
                     
    $dbname="Verkaufsportal";
                     
    $dbhost="localhost";
                     
    $dbuser="root";
                     
    $dbpass="";

                     
    $dbconnection mysql_connect($dbhost$dbuser$dbpass);

                     
    mysql_select_db($dbname);
                      
    //Variablendeklaration
                     
    $Name=$_POST["name"];
                     
    $Vorname=$_POST["vorname"];
                     
    $Anrede=$_POST["anrede"];
                     
    $Straße=$_POST["straße"];
                     
    $Haus_Nr=$_POST["hsnr"];

                     
    $Ttelefon_nr=$_POST["tel"];
                     
    $Mobil_Nr=$_POST["mobil"];
                     
    $PLZ=$_POST["plz"];
                     
    $Ort=$_POST["ort"];
                     
    $Land=$_POST["land"];


       
    // erstellung eines zufälligen Passwortes
        
    function generatePW($length=10)
        {

        
    $dummy        array_merge(range('0''9'), range('a''z'), range('A''Z'), array('#','&','@','$','_','%','?','+'));

        
    // array funktionen

        
    mt_srand((double)microtime()*1000000);
        for (
    $i 1$i <= (count($dummy)*2); $i++)
        {
        
    $swap        mt_rand(0,count($dummy)-1);
        
    $tmp        $dummy[$swap];
        
    $dummy[$swap]        = $dummy[0];
        
    $dummy[0]        = $tmp;
        }
         
    $passwort="INSERT INTO Kunden (Passwort) VALUES ('$Passwort')";
        
    // das passwort und die funktion wird geschlossen

        
    return substr(implode('',$dummy),0,$length);

        }

          
    // zehn stelliges Passwort an Variable übergeben
       
    $passwort=generatePW(10);



                        
    //e-Mail an den Kunden

                     
    $empfaenger=$_POST["e-mail"]; //Adresse des Kunden
                     
    $absender="blabla@web.de";
                     
    $betreff="Ihr Passwort";
                     
    $mailtext="Ihr passwort für die Anmeldung an unserer Webseite ist $passwort";
                     
    $antwortan=$absender;

                     
    mail ($empfaenger,
                          
    $betreff,
                          
    $mailtext,
                          
    "From: $absender\nReply-to: $antwortan  ");

                          echo
    "Mail wurde gesendet an die E-Mail: $empfaenger gesendet!";

       
    //uebergabe Der Daten an die DatenBank
        //Datenbank aktivieren
          
    $dbname="Verkaufsportal";
                     
    $dbhost="localhost";
                     
    $dbuser="root";
                     
    $dbpass="";

                     
    $dbconnection mysql_connect($dbhost$dbuser$dbpass);

                     
    mysql_select_db($dbname);


       
    $eintrag "INSERT INTO Kunden (Kd_nr, Anrede, Name, Vorname, Straße, Haus_Nr, E-mail, Telefon_nr, Mobil_Nr, PLZ, Ort, Land,Passwort) VALUES ('$Kd_nr', '$Anrede', '$Name', '$Vorname', '$Straße', '$Haus_Nr', '$E-mail', '$Telefon_nr', '$Mobil_Nr', '$PLZ', '$Ort', '$Land', '$Passwort')";

       
    $eintragen mysql_query($db$eintrag);
        
    //ende der PHP datei
    ?>
    </body>
    </html>
    Diese Datei sendet keine Formulardaten an meine Datenbank. Ich habe eine Registrierungseite die mit dieser verknüpft ist und wollte mit dieser Hilfe die Formulardaten auf die Datenbank speichern. Falls ihr weitere Infos braucht, werde ich Sie zur Verfügung stellen.

    Mfg Ruffy
    Geändert von Ruffy (20.02.2014 um 12:29 Uhr)

  2. #2
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.717 Times in 1.286 Posts
    Blog Entries
    7

    Standard AW: Formulardaten an Datenbank senden

    Lern bitte wie man debugt, hast du dir die daten mal ausgeben lassen?

    Vor allem stehen die Daten in der $_POST variable und du musst die via $_POST['KEY'] auslesen/verwenden, kein Wunder also das es leer bleibt.

    //EDIT man sollte sowas nicht am Handy machen. Sky kann nicht lesen xD.
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  3. #3

    Registriert seit
    07.06.2012
    Beiträge
    53
    Thanked 9 Times in 8 Posts

    Standard AW: Formulardaten an Datenbank senden

    Danke für die schnelle Antwort. Ich habe eine Frage wie meinst du das
    $_POST['KEY']
    in meinem Script steht doch beispielsweise $Vorname=$_POST["vorname"]; wobei der hintere Teil dem entsprechen sollte was du vorschlägst. Ich tüftle weiter.

  4. #4

    Registriert seit
    18.03.2013
    Beiträge
    481
    Thanked 264 Times in 168 Posts

    Standard AW: Formulardaten an Datenbank senden

    Kannst du mir weitere Informationen mal bitte per PN zukommen lassen? Also DBStruktur usw. Dann mach ich dir das heute Abend mit jeglicher benötigen Erklärung, warum was bei dir nicht funktioniert.



    [www.piratenpartei.de]
    "Krieg ist Frieden; Freiheit ist Sklaverei; Unwissenheit ist Stärke"

  5. #5
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.142
    Thanked 9.130 Times in 3.005 Posts
    Blog Entries
    5

    Standard AW: Formulardaten an Datenbank senden

    1. Deine Datenbankabfragen ist voller Sicherheitslücken, über jede genutzte POST-Variable kann man belibig Schadcode in die Datenbankabfragen einschleusen. Ich empfehle dir folgendes zu lesen: http://u-hacks.net/tutorials-181/tut...von-php-15061/
    2. Passwörter speichert man NIEMALS im Klartext in der Datenbank. Du hast irgendwo ne Sicherheitslücke drin (siehe 1.), jemand bekommt die Daten und deine Nutzer sind am Arsch, weil viele das gleiche Passwort bei mehreren Diensten benutzen. Passwörter speichert man mindestens mit Salt gehasht ab. Und per E-Mail verschickt man Passwörter auch nicht, spätestens seit dem NSA-Skandal sowieso schon 2x nicht.
    3. Man nutzt eine Datenbankverbindung bis das Script beendet ist und stellt nicht vor jeder Abfrage eine neue her. Das ist inperformant weil der Verbindungsaufbau Zeit kostet und unnötige Last am DBServer erzeugt.
    4. Achte auf die Konsistenz deiner Variablennamen.
    PHP-Code:
    $passwort=generatePW(10); 
    Da wird $passwort klein geschrieben, paar Zeilen weiter unten groß. PHP ist case-sensitive, d.H. $passwort und $Passwort sind für PHP zwei komplett verschiedene Variablen wie $x und $y.
    5. Die Variable $E-mail wird in der INSERT-Anfrage verwendet, aber nirgends definiert. Wenn sie irgendwo deklariert worden wäre würde dir die Deklaration nämlich um die Ohren fliegen, weil nur Buchstaben, Zahlen (nicht am Anfang) und Unterstriche in Variablennamen erlaubt sind, keine Bindestriche. Dasselbe gibt für den Spaltenname in MySQL.
    6. Die MySQL-Funktionen sollten nicht mehr genutzt werden da sie in nächster Zeit entfernt werden. Eine Alternative wäre zb mysqli. Aus solchen Gründen würde ich mir eine Datenbankklasse als Wrapper schreiben. Dann musst du nämlich nicht wie jetzt jeden einzelnen Funktionsaufruf ersetzen, sondern ersetzt jeden Aufruf nur 1x in deiner Wrapper-Klasse.
    7. Code sollte vernünftig formatiert werden, z.B. durch sinnvolles Einrücken wie etwa bei geschweiften Klammernblöcken. So werden viele Fehler schon von vorne herein vermieden, weil man beispielsweise auf den ersten Blick sieht wo eine Funktion, Schleife etc. anfängt und wo sie aufhört. Du rückst an Stellen ein wo es keinen Sinn macht, und rückst dafür da wo es Sinn macht nicht ein.
    8. In HTML immer valide Doctypes verwenden. Wenn man das nicht macht, kann es zu Darstellungsfehlern kommen (insbesonders in vorherigen IE-Versionen, da sind Probleme quasi Vorprogrammiert wenn der Doctype nicht vorhanden oder ungültig ist).


  6. The Following User Says Thank You to DMW007 For This Useful Post:

    Casper <3 (24.02.2014)

Ähnliche Themen

  1. [H] VB Text Senden
    Von AmJano im Forum Knuddels Programmierung
    Antworten: 2
    Letzter Beitrag: 19.08.2012, 17:12
  2. C# Klasse um E-Mails zu senden
    Von The Don of NYC im Forum .Net
    Antworten: 1
    Letzter Beitrag: 10.08.2012, 16:53
  3. Iphone app für sms senden...
    Von helfen im Forum iOS
    Antworten: 5
    Letzter Beitrag: 04.02.2012, 15:15
  4. e-mail senden?
    Von helfen im Forum iOS
    Antworten: 0
    Letzter Beitrag: 13.01.2012, 23:11
  5. Tastendruck in Prozess senden
    Von Gangstersheep im Forum Hochsprachen
    Antworten: 9
    Letzter Beitrag: 03.11.2011, 00:13
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.