Miten lähettää lomakevastaukset MySQL-tietokantaan PHP:llä

14. helmikuuta 2022

Ensin käymme läpi miten lomakevastausten tiedot voi lähettää Kiitos-sivulle. Tutustu tarkemmin oppaaseen täällä.

Oletamme että olet asettanut lomakkeen lähettämään lomakevastaukset johonkin URL-osoitteeseen, joten sinun tulee lisätä PHP/MySQL -koodi lomakevastausten lähettämiseksi MySQL-tietokantaan.

Jotformin lähettämä data on taulukkomuodossa, joten taulukon avainten ja arvojen löytämiseksi käytä alla olevaa koodia:

print_r($_POST);
?>

Seuraavaksi lähetä testivastaus lomakkeella. Kun lähetät lomakkeen, lomakkeen tulisi uudelleenohjata sinut määrittämääsi URL-osoitteeseen, jolle myös post-data lähetetään. Tässä esimerkki datasta.
Lomake: 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
)

Voit myös testata PHP-skriptiä Postman -työkalulla. Lataa Postman täältä.

Testaa PHP-skripti nähdäksesi lähetetäänkö data oikein. Alla esimerkki POST-pyynnön lähetyksestä PHP-skriptinä Postmanin avulla.

Voit ladata esimerkin PHP-skriptistä täällä. Voit myös lähettää lomakevastauksen tälle lomakkeelle nähdäksesi tulokset itse.

Nyt voit hyödyntää lomakedataa ja luoda omia kenttiä tietokannassa.

PHP-skriptin luominen

Nyt kun olet luonut tietokannan, voit aloittaa PHP-skriptin luomisen.

Vaihe 1: Vähentääksesi mahdollisia SQL-injektiouhkia, käytä PHP:n addslash() funktiota jokaiselle arvolle. Koska $_POST on taulukko, alla oleva koodi luo loopin joka käy läpi jokaisen muuttujan:

// Funktio käy läpi jokaisen taulukon, mukaanlukien moniulotteiset taulukot
functionExtendedAddslash(&$params){
    foreach($params as &$var){
        // Tarkistaa onko $var taulukko. Jos on, funktio aloittaa uuden ExtendedAddslash() loopin.
        is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
    }
}
// Luo ExtendedAddslash() funktion jokaiselle $_POST arvolle
ExtendedAddslash($_POST);
?>

Vaihe 2: Alla olemme määrittäneet jokaisen POST-arvon. Huomaa myös, että alla olevassa esimerkissä on yhdistetty kaksi puhelinnumeroa yhteen esimerkin vuoksi:

$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’];
?>

Vaihe 3: Nyt alustamme yhteydentietokantaan:

$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) ordie(mysql_error());
mysql_select_db($db_name);
?>

Vaihe 4: Tarkastaaksesi tarvitsetko insert-tai update-lauseita, alusta haku varmistaaksesi onko lomakevastauksen ID olemassa, ja aseta sitten ehto, että lomakevastauksen data päivitetään, jos lomakevastaus löytyy. Jos lomakevastausta ei löydy, lisätään uusi tietue:

// Etsi lomakevastauksen 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’”
    ) ordie(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’)”
    ) ordie(mysql_error());
}
?>

Nyt olet valmis. Nimeä lomake Kiitossivu PHP -tiedostoksi ja lataa se niin, ettäse vastaa kiitossivun tietoja.

Tässä koko koodi:

// Funktio käy läpi jokaisen taulukon, mukaanlukien moniulotteiset
functionExtendedAddslash(&$params){
    foreach($params as &$var){
        // check if $var is an array. If yes, it will start another ExtendedAddslash() function to loop to each key inside.
        is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
    }
}
// Alustaa ExtendedAddslash() funktion jokaiselle $_POST muuttujalle
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) ordie(mysql_error());
mysql_select_db($db_name);
// Hae lomakevastauksen 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’”
    ) ordie(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’)”
    ) ordie(mysql_error());
}
?>

Ota yhteyttä:

Asiakastukitiimimme on tavoitettavissa ympäri vuorokauden ja keskimääräinen vastausaika on yhdestä kahteen tuntia.
Tiimiimme voi ottaa yhteyttä:

Tukifoorumi: https://www.jotform.com/answers/

Ota yhteyttä Jotformin tukitiimiin: https://www.jotform.com/contact/

Lähetä viesti:

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

Podo Comment Ole ensimmäinen kommentoija.