Neste capítulo apresentaremos como verificar nomes, e-mails e URLs.
O código a seguir usará uma maneira simples de detectar se o campo de nome contém letras e espaços. Se o valor do campo de nome for ilegal, uma mensagem de erro será exibida:
$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Apenas letras e espaços permitidos"; }
preg_match — executa correspondência de expressões regulares. gramática: int preg_match (string $padrão, string $assunto [, array $correspondências [, int $flags]]) Pesquisa na sequência do assunto uma correspondência com a expressão regular fornecida pelo padrão. Se forem fornecidas correspondências, ela será preenchida com os resultados da pesquisa. $matches[0] conterá o texto que corresponde ao padrão inteiro, $matches[1] conterá o texto que corresponde ao primeiro subpadrão capturado entre parênteses e assim por diante. |
O código a seguir verificará se o endereço de e-mail é legítimo de forma simples. Se o endereço de e-mail for ilegal, será exibida uma mensagem de erro:
$email = test_input($_POST["email"]);if (!preg_match("/([w-]+@[w-]+.[w-]+)/" ,$email)) { $emailErr = "Formato de e-mail ilegal" };
O código a seguir verificará se o endereço URL é legal (a seguinte expressão regular é executada no URL contendo traços: "-"). Se o endereço URL for ilegal, uma mensagem de erro será exibida:
$website = test_input($_POST["website"]);if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a-z0- 9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) { $websiteErr = "Endereço URL ilegal";
O código fica assim:
<?php// Definir variáveis e configurá-las para valores vazios por padrão $nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = ""; if ($_SERVER ["REQUEST_METHOD"] == "POST") { if (empty($_POST["nome"])) { $nameErr = "Nome é obrigatório" }; else { $name = test_input($_POST["name"]); // Verifica se o nome contém apenas letras e espaços if (!preg_match("/^[a-zA-Z ]*$/",$name) ) { $nameErr = "Apenas letras e espaços permitidos" } } if (empty($_POST["email"])) { $emailErr = "E-mail é obrigatório" } else { $email = "E-mail é obrigatório"; test_input($_POST["email"]); // Verifica se o e-mail é legal if (!preg_match("/([w-]+@[w-]+.[w- ]+ )/",$email)) { $emailErr = "Formato de email ilegal"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // Verifica se o endereço URL é legal if (!preg_match("/b(?:(?:https?|ftp)://|www.) [- a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$ site)) { $websiteErr = "Endereço URL ilegal"; if (empty($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] }); (empty($_POST["gênero"])) { $genderErr = "Sexo é obrigatório" } else { $gender = test_input($_POST["gênero"]);