Test access method, whether it is GET or POST [duplicate]

2

I'm having trouble inserting data into my form. The problem involves the transaction engine of my form, displaying the error message of die before even loading the page.

My advisor said that the problem occurs because the code is running directly without any processing. He also said that this would be solved by putting all the code inside a function, calling it only if the access method was POST . For this, a test would be done, where it would be tested if the access method was GET or POST , if it was GET would display the form normally, if it were POST would call the function that deals with the registry. / p>

How would this test of the access method be done?

Follow the code that deals with the registration in the forms:

<?php
//CONEXÃO COM O BANCO DE DADOS
include_once("conexao.php");

function cadastrar(){
    //VARIÁVEIS COM DADOS DO FORMULÁRIO
    $nome = $_POST["nome"];
    $email = $_POST["email"];
    $senha = $_POST["senha"];
    $senhaConfirm = $_POST["senhaConfirm"];
    $telefone = $_POST["telefone"];
    $celular = $_POST["celular"];
    $rua = $_POST["rua"];
    $bairro = $_POST["bairro"];
    $numero = $_POST["numero"];
    $cidade = $_POST["cidade"];
    $estado = $_POST["estado"];
    $cep = $_POST["cep"];
    $complemento = $_POST["complemento"];
    $usuario = $_POST["usuario"];
    $nomeMercado = $_POST["nomeMercado"];
    $cnpj = $_POST["cnpj"];
    $telefoneMercado = $_POST["telefoneMercado"];
    $celularMercado = $_POST["celularMercado"];
    $expedienteInicio = $_POST["expedienteInicio"];
    $expedienteFim = $_POST["expedienteFim"];
    $arquivo = $_POST["arquivo"];

    //INICIO DA TRANSAÇÃO
    $pdo->beginTransaction();

    //INSERÇÃO DE DADOS NA TABELA ENDEREÇO
    $insertEndereco = $pdo->prepare("INSERT INTO ENDERECO(BAIRRO, CEP, CIDADE, COMPLEMENTO, ESTADO, NUMERO, RUA) VALUES(:bairro, :cep, :cidade, :complemento, :estado, :numero, :rua)");  
    $insertEndereco->bindValue(':bairro',$bairro);
    $insertEndereco->bindValue(':cep',$cep);
    $insertEndereco->bindValue(':cidade',$cidade);
    $insertEndereco->bindValue(':complemento',$complemento);
    $insertEndereco->bindValue(':estado',$estado);
    $insertEndereco->bindValue(':numero',$numero);
    $insertEndereco->bindValue(':rua',$rua);
    $testaInsertEndereco = $insertEndereco->execute();
    //VERIFICA SE A INSERÇÃO DE DADOS DE ENDEREÇO RETORNA TRUE(FOI REALIZADA)
    if (!$testaInsertEndereco) {
        die("Oops, houve um erro no cadastro de seu endereço, tente novamente ou contacte a adaministração.");
    }
    $cod_endereco = $pdo->lastInsertId();
    //INSERÇÃO DE DADOS NA TABELA USUARIO
    $insertUsuario = $pdo->prepare("INSERT INTO USUARIO(TIPO_USUARIO, NOME_USUARIO, E-MAIL_USUARIO, SENHA_USUARIO, CELULAR, COD_ENDERECO, TELEFONE) VALUES (:usuario,:nome,:email,:senha,:celular,:cod_endereco,:telefone)"); 
    $insertUsuario->bindValue(':usuario',$usuario);
    $insertUsuario->bindValue(':nome',$nome);
    $insertUsuario->bindValue(':email',$email);
    $insertUsuario->bindValue(':senha',$senha);
    $insertUsuario->bindValue(':celular',$celular);
    $insertUsuario->bindValue(':cod_endereco',$cod_endereco); 
    $insertUsuario->bindValue(':telefone',$telefone);
    $testaInsertUsuario = $insertUsuario->execute();
    if (!$testaInsertUsuario) {
        die("Oops, houve um erro no cadastro de seus dados pessoais, tente novamente ou contacte a adaministração.");
    }
    $cod_usuario = $pdo->lastInsertId();

    //INSERÇÃO DE DADOS NA TABELA SUPERMERCADO
    $insertMercado = $pdo->prepare("INSERT INTO SUPERMERCADO (CNPJ, NOME, FOTO_SUPERMERCADO, INICIO_EXPEDIENTE,                 
        FIM_EXPEDIENTE, TELEFONE) VALUES (:cod_endereco_mercado, :cod_usuario, :cnpj, :nomeMercado, :arquivo, :expedienteInicio, :expedienteFim, :$telefoneMercado)");
        $insertMercado->bindValue(':cod_endereco_mercado',$cod_endereco);
        $insertMercado->bindValue(':cod_usuario',$cod_usuario);  
    $insertMercado->bindValue(':cnpj',$cnpj);
    $insertMercado->bindValue(':nomeMercado',$nomeMercado);
    $insertMercado->bindValue(':arquivo',$arquivo);
    $insertMercado->bindValue(':expedienteInicio',$expedienteInicio);
    $insertMercado->bindValue(':expedienteFim',$expedienteFim);
    $insertMercado->bindValue(':telefoneMercado',$telefoneMercado);
    $testaInsertMercado = $insertMercado->execute();
    //CASO TENHA DADO ALGUM ERRO NA TRANSAÇÃO rollBack IRÁ CANCELAR TODAS ELAS
    if (!$testaInsertMercado) {
        die("Oops, houve um erro no cadastro de seu mercado, tente novamente ou contacte a adaministração.");
            $pdo->rollBack();
    }
    //FINALIZANDO TRANSAÇÃO
    $pdo->commit();
}
?>
    
asked by anonymous 23.05.2017 / 14:10

2 answers

4

The test would be something like:

if($_SERVER["REQUEST_METHOD"] == "POST")
{    //faça algo...
    
23.05.2017 / 14:26
-3

The right thing would be to do this same treatment in the answer above, or (if your business logic allows), you can simply put $_REQUEST['nome_parametro'] , it will get POST, GET, PUT, DELETE, p>     

23.05.2017 / 15:05