3
respostas

Ajuda para desenvolver uma pequena aplicação

Olá bom dia.

Tenho que fazer o seguinte sistema de cadastro, veja no link https://infomixapi.cf/

O método get estou conseguindo fazer, mas me surgiu uma dúvida na etapa que fala:

  • O cadastro deve ser inserio em um BANCO DE DADOS, e logo apos a inserção deve ser enviando um chamado POST em JSON com os seguinter requisitos:

1) SERVER:

"http://35.231.244.104/json/index.php"

O método post ok eu entendo ele, mas esse json seria um diretório, criei uma pasta com o nome "infomix", no caso o nome desta pasta deve ser "json" ?

Mais uma informação:

2) HEADER: "Content-Type: application/json" "Accept: application/json" "Credencial: URokYjdzCdLJ" "Credencial_pass: LFypMTkuljmJ"

Como faço isso? O que seria dados de acesso do banco de dados? Não compreendi.

Se quiserem ver meu código só pedir que eu disponibilizo.

3 respostas

Pelo que eu entendi, você vai criar um banco de dados local, e vai gravar nele os dados do formulário, ou seja,

1 - Ao postar os dados, a página que vai receber os dados vai poder acessar os dados utilizando o objeto $POST. Se o form tiver um campo nome, você recupera a informação usando $POST["nome"] 2 - Os dados recuperados você insere num banco local, ou seja, você cria o banco, a tabela e depois insere (INSERT into minha tabela (campos) values (campos recuperados do post)

Depois de gravar, eles pedem para você pegar estes dados (do POST) e enviar para uma API, Então você vai gravar duas vezes (uma vez local no banco que você vai criar e vai gravar remoto postando para o link informado)

Os dados que serão enviados para o link, devem ser postados no formato JSON.

Para postar JSON no PHP, você pode usar algo chamado CURL. Precisa ver se na sua instalação do PHP ele está ativado

Segue um exemplo para te dar uma idéia (não testei)

//Funcao auxiliar para postar dados usando CURL
function httpPost($url,$params){
    $postData = $params;  
    $ch = curl_init();  
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    //Desabilitar para nao retornar cabecalhos
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Credencial: URokYjdzCdLJ', 'Credencial_pass: LFypMTkuljmJ')); 

    //Para evitar o erro de SSL certificate problem: unable to get local issuer certificate
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

    $output=curl_exec($ch);

    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($output, 0, $header_size);
    $body = substr($output, $header_size);
    curl_close($ch);

    //Retorna cabecalho e conteudo
    //return $output;
    //Retorna somente conteudo
    return $body;
}

//Substituir os dados depois do dois pontos pelos dados recebidos do formulario
$dados .= '{';
$dados .= '"nome":"Infomix", ';
$dados .= '"sobre_nome":"Ltda",';
$dados .= '"email": "email@provedor.com",';
$dados .= '"telefone": "(xx)x xxxx-xxxx",';
$dados .= '"nascimento": "DD/MM/AAAA"';
$dados .= '}';                                

$link_API = 'http://35.231.244.104/json/index.php';
$retorno = httpPost($link_API, $dados);

//Ler a resposta enviada pela API
$retorno = stripslashes($retorno);
$data = json_decode($retorno);
if (isset($data->codigo_reposta)){
    echo ($data->codigo_reposta);
}
if (isset($data->mensagem_resposta)){
    echo ($data->mensagem_resposta);
}

Veja meu código form.php

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="css/estilo.css">
    </head>

<body>
    <div class='container'>
        <?php
        $nome = $_GET["nome"];
        $sobre_nome = $_GET["sobre_nome"];
        $email = $_GET["email"];
        $telefone = $_GET["telefone"];
        $nascimento = $_GET["nascimento"];
        $conexao = mysqli_connect('localhost', 'root', '', 'infomix_schema');        
        $query = "insert into infomix (nome, sobre_nome, email, telefone, nascimento) values ('{nome}', '{sobre_nome}', '{email}', '{telefone}', '{nascimento}')";
        mysqli_query($conexao, $query);
        mysqli_close($conexao);
        ?>
<p class="alert-success resultado"> Dados <?php echo $nome; ?>, <?php echo $sobre_nome; ?>, <?php echo $email; ?>, <?php echo $telefone; ?>, <?php echo $nascimento; ?> enviados com sucesso</p>
    </div>
</body>
</html>

Porque não salvou no banco de dados, veja http://prntscr.com/juyrnv as duas primeiras inserções foram manuais.

Olá Daniel, primeiramente obrigada.

Mas onde colocaria o código que me passou? seria no meu na página form.php? ou no index.html?

Você conseguiria testar pra mim?

Acho que estou fazendo muita coisa e não ta tendo muita relação.