Как да изпращате подадени формуляри до вашата MySQL база данни с помощта на PHP

March 28, 2022

Първото нещо, което ще трябва да научите, е да знаете как да публикувате данните от подаването на вашата “Благодаря” страница. Можете да прочетете и да научите от това ръководство:

Ако приемем, че сте настроили формата си да публикува данни на персонализирана URL страница, ще имате малко PHP/MySQL програмиране, за да направите форма до MySQL.

Данните, които са публикувани от Jotform, всъщност са масив, така че за да разберете ключовете и стойностите на масива, ще трябва да опитате да вмъкнете това във вашия скрипт:

print_r($_POST);
?> Следващо: Направете действително подаване, за да тествате формата си и да получите резултата. След като изпратите формата, тя трябва да бъде пренасочена към вашия персонализиран URL адрес на “Благодаря” страницата, който ще получи данните за публикуване. Ето пример за данните от примерна форма: 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
)

Също така можете да тествате вашия PHP скрипт чрез Postman Tool. Можете да изтеглите Postman от този линк.

Можете да тествате вашия PHP скрипт, за да видите публикувани подадени данни и да стартирате прости методи за отстраняване на грешки дори в локалната ви среда.

Нека направим проста POST заявка с нашия PHP скрипт, използвайки Postman.

Можете да изтеглите пример за PHP скрипт от тук. Чувствайте се свободни да направите подаване, използвайки тази форма, за да видите резултата от масива сами.

Сега, когато разполагаме с ключовете, вече можем да си поиграем с тази информация, да създадете ваши собствени полета във вашата база данни. Що се отнася до този пример, ето как изглеждат моите полета:

Създаване на вашия PHP скрипт

След като създадохте вашата база данни, можете да започнете да създавате своя PHP скрипт.

Стъпка 1: За да предотвратим възможни уязвимости на SQL инжектиране към вашата база данни, ще трябва да стартираме функцията addlash () на PHP за всяка променлива на публикуване. И тъй като данните $ _POST са масив, нека направим функция, която ще се върти във всяка променлива:

// This function will run within each post array including multi-dimensional arrays
function ExtendedAddslash(&$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);
    }
}

// Initialize ExtendedAddslash() function for every $_POST variable
ExtendedAddslash($_POST);
?>
Стъпка 2: Идентифицирах всяка POST информация с променлива. Също така ще забележите, че обединих двете променливи на 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’];
?>
Стъпка 3: Сега инициализираме свързаността на базата данни за скрипта до 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);
?>

Стъпка 4: За да проверите дали трябва да се направи вмъкване или актуализация, търсенето трябва да се инициализира, ако идентификатора на подадения формуляр съществува и след това да се постави условие, че ако идентификатора на подадения формуляр съществува, актуализацията трябва да се инициализира, използвайки този идентификатор на подадения формуляр. И ако няма съвпадение на идентификатор на подадения формуляр, ще бъде направено ново вмъкване:

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

Готово сте. Именувайте скрипта, като вашия PHP файл за “Благодаря” страницата и го качете, за да съответства на точните детайли, които сте задали във вашия персонализиран URL адрес на “Благодаря” страницата

Ето пълния скрипт:

// This function will run within each post array including multi-dimensional arrays
function ExtendedAddslash(&$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);
    }
}

// Initialize ExtendedAddslash() function for every $_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);

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

Беше ли това ръководство полезно?
Свържете се с екипа за поддръжка:

Нашият екип за поддръжка на клиенти е на разположение денонощно и средното ни време за реакция е между един и два часа.
С нашия екип можете да се свържете чрез:

Форум за поддръжка: https://www.jotform.com/answers/

Свържете се с поддръжката на Jotform: https://www.jotform.com/contact/

Изпратете коментар:

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

Коментар:

Podo CommentБъдете първите, които коментират.