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

12. elokuuta 2025

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());
}
?>

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.
Onko sinulla vielä vastaamattomia kysymyksiä?

We’re here for you 24/7, anytime you need us day or night. Have a question or need a hand with something? Our team is always ready to help out.