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: