A primeira coisa que você precisa aprender é a publicar dados de envio na sua página de agradecimento. Você pode aprender a fazer isso neste guia:
Supondo que você configurou seu formulário para postar dados em uma página de URL personalizada, será preciso fazer alguma programação PHP/MySQL para passar dados do formulário ao MySQL.
Os dados que estão sendo publicados pelo Jotform são, na verdade, uma matriz. Para descobrir as chaves e os valores da matriz, você precisará inserir isto em seu script:
print_r($_POST); ?>
A seguir: Faça um envio real para testar seu formulário e obter o resultado. Depois de enviar o formulário, ele deve ser redirecionado para a URL de agradecimento personalizada que receberá os dados da postagem. Aqui está um exemplo dos dados de um formulário de exemplo: 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
)
Além disso, você pode testar seu script PHP via Postman Tool. Você pode baixar o Postman a partir deste link.
Você pode testar seu script PHP para ver os dados de envio publicados e executar métodos de depuração facilmente, mesmo em seu ambiente local.
Vamos fazer uma solicitação POST simples com nosso script PHP usando o Postman.
Você pode baixar o exemplo de script PHP aqui.
(Sinta-se à vontade para testar um envio usando este formulário para ver o resultado da matriz)
Agora que temos as chaves, podemos brincar com essas informações, criando campos próprios no banco de dados. Neste exemplo, meus campos estão assim:
Criando seu script PHP
Agora que você criou seu banco de dados, pode começar a criar seu script PHP.
Etapa 1: Para evitar possíveis vulnerabilidades de injeção SQL ao seu banco de dados, precisamos executar a função addlash () do PHP para todas as variáveis do post. Como os dados $ _POST são uma matriz, criaremos uma função que fará um loop em todas as variáveis:
// Esta função será executada em cada array do post, incluindo a
função de array multidimensional ExtendedAddslash (&$params)
{
foreach ($paramsas&$var) {
// verifique se $var é um array. Se sim, ele iniciará outra função ExtendedAddslash () para fazer loop em cada chave interna.
is_array($var) ? ExtendedAddslash ($var): $var=addlashes($var);
}
}
// Inicializa a função ExtendedAddslash () para cada variável $_POST
ExtendedAddslash ($_POST);
?>
Etapa 2: eu identifiquei cada dado POST com uma variável. Você também notará que mesclei as duas variáveis POST do número de telefone em uma só (gostei dela assim :)) :
$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’] ;
?>
Etapa 3: Agora inicializamos a conectividade do banco de dados do script para 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);
?>
Etapa 4: Para verificar se deve ser feita uma inserção ou atualização, é necessário iniciar uma pesquisa se o ID do envio existir e, em seguida, definir uma condição de que, se o ID do envio existir, uma atualização deve ser inicializada usando esse ID de envio. Se não houver um ID de envio correspondente, será feita uma nova inserção:
// pesquisar 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'”)
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());
}
?>
Você terminou. Nomeie o script como seu arquivo php de agradecimento e faça o upload para corresponder aos detalhes exatos que você definiu em sua URL de agradecimento personalizada.
Aqui está o script completo:
// Essa função será executada em cada array de post, incluindo arrays multi-dimensionais
function ExtendedAddslash(&$params)
{
foreach ($paramsas&$var) {
// verifique se $var é um array. Se sim, ele iniciará outra função ExtendedAddslash() para fazer loop em cada chave interna.
is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
unset($var);
}
}
// Inicializa a função ExtendedAddslash() para cada variável $_POST
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);
// busca 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());
}
?>
Enviar Comentário: