Como Fazer Envios Para Sua Base de Dados Em MySQL Usando PHP

November 8, 2021

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

}

?>

Contato do suporte:

Nossa equipe de suporte ao cliente está disponível 24/7 e nosso tempo médio de resposta é de uma a duas horas.

Nossa equipe pode ser contatada através de:

Fórum de suporte: https://www.jotform.com/answers

Entre em contato com o Suporte Jotform: https://www.jotform.com/contact/

E-mail: support@jotform.com

Este guia foi útil?

Enviar Comentário:

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

Comentar:

Podo CommentSeja o primeiro a comentar.