Post

<< Click to Display Table of Contents >>

Navigation:  Forms input >

Post

Previous pageReturn to chapter overviewNext page

form.php

 

// um formulário com 2 campos string: nome e email.

// método será definido pela classe $form->metodo (get ou post)

// o action é o proprio que chamou

 

<form name="post" action="./sistema.php" method="<?= $form->metodo; ?>" enctype="multipart/form-data" novalidade>
    <p style="margin-bottom: 10px; text-align: right"><a href="./" title="Atualizar">Atualizar</a></p>
    <div class="col2">
        <input type="text" name="nome" value="<?= $form->nome; ?>" placeholder=Nome:"/>
        <input type="email" name="email" value="<?= $form->email; ?>" placeholder=Email:" required/>
    </div>
    <button>Enviar</button>
</form>

 

sistema.php

 

// cria a classe padrão que vamos mandar para formulario
$form = new StdClass();
$form->nome = "";   // valores padrao
$form->email = "";
 
// método de entrada =pela url
$form->metodo = "post";
 
// visualiza o que veio do POST, só de curiosidade, não USE esse
var_dump($_POST);
 
// mostra o formulário
include __DIR__."/form.php";
 
// maneira correta de pegar os post - impede invasões e injeção de script
$post = filter_input(INPUT_POST"nome"FILTER_DEFAULT);
var_dump($post);  // retorna nome que preencheu
 
$post_array = filter_input_array(INPUT_POSTFILTER_DEFAULT);
var_dump($post_array);  // retorna todas as variaveis
 
// se nao tiver valores, vai ficar null, e será false esse if
if ($post_array) {
    // tem valor vazio na array?
    if (in_array(""$post_array)) {
        // algum valor vazio
        echo "<p class='trigger warning'>Preencha todos os campos</p>";
    } elseif (!filter_var($post_array["email"], FILTER_VALIDATE_EMAIL)) {
        // email invalido
        echo "<p class='trigger warning'>Email incorreto</p>";
    } else {
        // vai remover código "<>" da string
        $save = array_map("strip_tags"$post_array);
        
        // trim = remove espacos desnecessarios
        $save = array_map("trim"$save);
        
        // essa $save que vamos mandar para o servidor (já limpo e seguro)
        var_dump($save);
        echo "<p class='trigger accept'>GRAVOU!</p>";
    }
}