Executar função após submeter dados de formulário

Entendendo sobre os formulários

Todos formulário obrigatoriamente deve ter uma ação/função definida (a não ser que ele não sirva para nada), porém, tudo o que puder ser manipulado através de um formulário na web deve ter lá seu script definindo o que deverá ser feito. Há maneiras nada convencionais (e muito estranhas) que algumas pessoas utilizam para criar esta função de cadastro/edição após o formulário ser submetido com seus dados. (Sim, tem gente que utiliza GET para isto, considerado inseguro, tudo depende do que você está desenvolvendo, em sistemas de buscas o GET é frequentemente utilizado).

Formulário exemplo

[code lang=”html”]
<form action="" method="post">
<input type="text" name="nome" placeholder="Nome completo"/>

<input type="submit" name="enviado" value="Cadastrar nome"/>
</form>
[/code]

Utilizando como base o formulário acima, imaginando que ele apenas irá cadastrar nomes por exemplo, para isto o formulário deverá ter uma função, tal função deverá estar localizada dentro de uma verificação para saber se o formulário foi ou não enviado, evitando assim que o PHP efetue cadastros desnecessários ou incorretos.

PHP

[code lang=”php”]
<?php
//caso for redirecionar para alguma página após cadastro utilizando Header
//você deve colocar esta verificação if(isset()) acima de qualquer tag html
// no cabeçalho da página.
if(isset($_POST[‘enviado’])):

//O SCRIPT FICARÁ AQUI!

endif;
?>
[/code]

Como mostra acima, utilizamos a função if (se) e isset (existir), tais funções utilizadas em conjunto verificam se existe o parâmetro informado dentro dos ( ). Neste caso verificamos se existe o $_POST[‘enviado’] , definido no botão de enviar do formulário, somente assim podemos saber se o botão foi pressionado ou se os dados foram submetidos.

Em caso de dúvidas, comente!

Caso se interesse, logo abaixo encontrei uma explicação sobre POST, GET e alguns métodos de requisições, retirada do blog Marcelo Web. É interessante (:

O que é POST e o que é GET?

Sendo informal e direto, o HTTP – Hypertext Transfer Protocol(Protocolo de Transferência de Dados) é um protocolo ou padrão de rede implementado em cima do TCP para que browsers e servidores possam se comunicar.

Um cliente HTTP é um browser, ou seja, Chrome, Firefox, Internet Explore, entre outros, são software’s que se comunicam com servidores através do HTTP. O tipo de servidor a que me refiro aqui também são software’s, como por exemplo, o Apache e o IIS(Microsoft).

Os principais métodos de comunicação HTTP são: GET e POST.

Visibilidade – A grande diferença entre os métodos GET e POST provavelmente é a visibilidade. Uma requisição GET é enviada como string anexada a URL, enquanto que a requisição POST é encapsulada junto ao corpo da requisição HTTP e não pode ser vista.

http_diagram

Tamanho – Como a requisição GET é feita via URL, obviamente há uma limitação no tamanho da mensagem enviada. A string não pode conter mais que 255 caracteres(embora exista diferenças entre navegadores, mas em geral o limite é 255). Já na requisição POST não há limitações de comprimento da mensagem, já que a mesma é enviada no corpo da requisição HTTP.

Performance – A requisição GET é relativamente mais rápida, já que ela é mais simples. Na requisição POST há uma perda de tempo no encapsulamento da mensagem.

Tipos – Já que GET é enviado via URL, então nós sabemos que ela só transporta textos. A requisição POST não tem restrições, pode transportar tanto texto, como dados binários.

Favoritos/Bookmarks – Por se tratar apenas de uma URL, a requisição GET pode ser armazenada em cache, ou em um sistema de bookmark(favoritos). A mesma coisa não é possível para requisições POST.

Método HTML Padrão – GET é o método HTML padrão. Para submeter um formulário HTML usando POST é preciso especificar no atributo “method” o valor “POST”.

Dados – As requisições GET são limitadas ao padrão ASCII, enquanto que requisições POST também podem usar o atributo “enctype” com o valor “multipart/form-data”, que faz uso do padrão UCS(Universal Multiple-Octet Coded Character Set).

Fonte da explicação: Marcelo Web

Este artigo está em