Wie Sie mit PHP Formular-Antworten an Ihre MySQL-Datenbank senden

November 10, 2021

Der erste Schritt für Sie ist zu lernen, wie man die Antwort-Daten auf der Dankesseite posten kann. Sie können dies in dieser Anleitung lernen.  

Wenn Sie ihr Formular jetzt so eingerichtet haben, dass es die Daten per POST an eine benutzerdefinierte URL weitergibt, steht ein wenig Programmierung in PHP/MySQL an um Formular zu MySQL zu erzeugen.

Die Daten die von Jotform gepostet werden sind ein Array, also müssen Sie die Array Keys und Values herausfinden. Dazu fügen Sie dies in Ihr Skript ein:

print_r( $_POST );   ?>
Als Nächstes: 
Füllen Sie Ihr Formular einmal aus und schicken es ab. So erhalten Sie das Ergebnis, das Ihnen auf der Dankesseite, die Sie verlinkt haben, als Post-Daten angezeigt werden sollte.  Hier ist ein Set an Beispieldaten von einem Test-Formular:  https://www.jotform.com/form/11814245193 

Array
(
    [submission_id] => 186725738203177939
    [formID] => 11814245193
    [ip] => 203.177.93.98
    [name] => sample name test data
    [email] => email@example.com
    [phonenumber13] => Array
        (
            [0] => 3343
            [1] => 4234
        )
    [subject7] => Technical Support assistance
    [message6] => test
)

Sie können das Post-Script auch mit dem Postman Tool testen. Sie können Postman unter diesem Link herunterladen.
Sie können Ihr PHP-Skript testen, um gepostete Übermittlungsdaten zu sehen und einfache Debug-Methoden leicht auch in Ihrer lokalen Umgebung ausführen.

Lassen Sie uns eine einfache POST-Anfrage mit unserem PHP-Skript mit Postman durchführen.

Ein PHP Script Beispiel finden Sie hier zum herunterladen.

(Sie können gerne einige Antworten mit diesem Formular erstellen, um das Array-Ergebnis selbst zu sehen.)

Jetzt wissen Sie die Keys und können mit diesen Informationen ein wenig spielen und Ihre eigenen Felder in der Datenbank erstellen.  Für dieses Beispiel sehen meine Felder folgendermaßen aus:

Erstellen Ihres PHP Scriptes

Nachdem Sie Ihre Datenbank erstellt haben können sie anfangen Ihr PHP Script zu erstellen.

Schritt 1: Um mögliche SQL-Injection-Schwachstellen in Ihrer Datenbank zu verhindern, müssen wir die PHP-Funktion addslash() für jede Post-Variable ausführen. Und da die $_POST-Daten ein Array sind, lassen Sie uns eine Funktion erstellen, die eine Schleife über jede Variable ausführt:

// Diese Funktion wird in jedem Post-Array ausgeführt, auch in mehrdimensionalen Arrays
function ExtendedAddslash(&$params)
{
        foreach ($paramsas&$var) {
            // prüfen ob $var ein Array ist. Wenn ja, wird eine weitere ExtendedAddslash() Funktion als Schleife über jedem enthaltenen Key auseführt.
            is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
        }
}

     // Initialisiere ExtendedAddslash() function für jede $_POST Variable
    ExtendedAddslash($_POST);     

?>

Schritt 2:  Ich habe jeder POST-Daten mit einer Variablen zugeordnet. Sie werden auch bemerken, dass ich die beiden Telefonnummern-POST-Variablen zu einer einzigen zusammengeführt habe (ich fand es so übersichtlicher):

$submission_id = $_POST[‘submission_id’];
$formID =$_POST[‘formID’];
$ip =$_POST[‘ip’];
$name =$_POST[‘name’];
$email =$_POST[’email’];
$phonenumber =$_POST[‘phonenumber13’][0] .”-“. $_POST[‘phonenumber13’][1];
$subject =$_POST[‘subject7’];
$message =$_POST[‘message6’];

?>

Schritt 3:  Jetzt initialisieren wir die Datenbankanbindung für das Skript an MySQL

$db_host = ‘db hostname here’;
$db_username = ‘db username here’;
$db_password = ‘db password here’;
$db_name = ‘name of your database’;mysql_connect( $db_host, $db_username, $db_password) or die(mysql_error());
mysql_select_db($db_name);
?>
Schritt 4: Um zu prüfen, ob eine Eintragung oder eine Aktualisierung durchgeführt werden soll, sollte eine Suche initialisiert werden, wenn die Einreichungs-ID existiert, und dann eine Bedingung gesetzt werden, dass, wenn die Einreichungs-ID existiert, eine Aktualisierung mit dieser Einreichungs-ID initialisiert werden soll. Falls es keine passende Einreichungs-ID gibt, wird eine neue Eintragung vorgenommen:
:

// Suche Einreichungs-ID (submission ID)
$query = “SELECT * FROM `table_name` WHERE `submission_id` = ‘$submission_id'”;
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if ($resultcount > 0) {
 
    mysql_query(“UPDATE `table_name` SET
                                `name` = ‘$name’,
                                `email` = ‘$email’,
                                `phone` = ‘$phonenumber’,
                                `subject` = ‘$subject’,
                                `message` = ‘$message’       
                             WHERE `submission_id` = ‘$submission_id'”)
     or die(mysql_error());
   
} else {
    mysql_query(“INSERT INTO `table_name` (submission_id, formID, IP,
                                                                          name, email, phone, subject, message)
                               VALUES (‘$submission_id’, ‘$formID’, ‘$ip’,
                                                 ‘$name’, ‘$email’, ‘$phonenumber’, ‘$subject’, ‘$message’) “)
    or die(mysql_error()); 
}
?>

Das war es. Sie sind fertig! Benennen Sie das Skript als Ihre Dankesseiten-php-Datei und laden Sie es so hoch, dass es genau den Angaben entspricht, die Sie in Ihrer benutzerdefinierten Dankeschön-URL festgelegt haben
Hier ist noch einmal das komplette Script:

// Diese Funktion wird in jedem Post-Array ausgeführt, auch in mehrdimensionalen Arrays
function ExtendedAddslash(&$params)
{
        foreach ($paramsas&$var) { 


            // prüfen ob $var ein Array ist. Wenn ja, wird eine weitere ExtendedAddslash() Funktion als Schleife über jedem enthaltenen Key ausgeführt.

            is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
            unset($var);
        }
}

// Initialisiere ExtendedAddslash() function für jede $_POST Variable

ExtendedAddslash($_POST);     

$submission_id = $_POST[‘submission_id’];
$formID =$_POST[‘formID’];
$ip =$_POST[‘ip’];
$name =$_POST[‘name’];
$email =$_POST[’email’];
$phonenumber =$_POST[‘phonenumber13’][0] .”-“. $_POST[‘phonenumber13’][1];
$subject =$_POST[‘subject7’];
$message =$_POST[‘message6’];
$db_host = ‘db hostname here’;
$db_username = ‘db username here’;
$db_password = ‘db password here’;
$db_name = ‘name of your database’;
mysql_connect( $db_host, $db_username, $db_password) or die(mysql_error());
mysql_select_db($db_name); // Suche Einreichungs-ID (submission ID)
$query = “SELECT * FROM `table_name` WHERE `submission_id` = ‘$submission_id'”;
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if ($resultcount >0) {
 
    mysql_query(“UPDATE `table_name` SET
                               `name` = ‘$name’,
                               `email` = ‘$email’,
                                `phone` = ‘$phonenumber’,
                                `subject` = ‘$subject’,
                                `message` = ‘$message’       
                             WHERE `submission_id` = ‘$submission_id'”)
     or die(mysql_error());
   
} else {
    mysql_query(“INSERT INTO `table_name` (submission_id, formID, IP,
                                                                          name, email, phone, subject, message)
                               VALUES (‘$submission_id’, ‘$formID’, ‘$ip’,
                                                 ‘$name’, ‘$email’, ‘$phonenumber’, ‘$subject’, ‘$message’) “)
    or die(mysql_error()); 
}?>

Ihr Kontakt zum Support:

Unser Kundensupport-Team ist rund um die Uhr verfügbar, und unsere durchschnittliche Reaktionszeit beträgt zwischen ein und zwei Stunden.

Sie erreichen unser Team:

Support Forum: https://www.jotform.com/answers

Jotform Support Kontakt: https://www.jotform.com/contact/

E-Mail: support@jotform.com

War diese Anleitung hilfreich?

Kommentar abschicken:

Jotform Avatar
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Kommentieren:

Podo CommentSchreiben Sie den ersten Kommentar.