PHP

PHP+XML: Validando dados enviados

Sempre tive a curiosidade de acessar arquivos .xml via php e diante de uma necessidade, pude colocar em prática.

O que será validado?
O email digitado.

Como?
A pessoa digita o email num campo de texto (html-input type=”text”) e se o email contiver num arquivo .xml ele terá acesso para baixar alguns documentos.

Vamos ao código:

Arquivo emails.xml
Arquivo que conterá a lista de email para validação.

<?xml version="1.0" encoding="utf-8"?>
<lista>
<email>teste@teste.com</email>
<email>teste@teste.com.br</email>
</lista>

Arquivo index.php
Arquivo que conterá o campo de texto para digitar o email.
Observação: A função simplexml_load_file está apenas disponível no PHP5.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP + XML</title>
</head>
<style type="text/css"> 
body{ font-family: Arial, Helvetica, sans-serif;font-size: 12px;}
 
.div_erro
{
border: 1px #FF0000 solid;
background: #FFC4C4;
padding: 3px 5px 3px 5px;
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
text-align:center;
}
</style>
<body>
<? 
   if (!$_POST){ 
?>
<center> 
<form method="post" enctype="multipart/form-data"> 
<table width="100%" border="0" cellpadding="3" cellspacing="3"> 
   <tr> 
     <td align="center"> 
     <strong>Acesso a Arquivos</strong><br> 
     Está área é restrita. Digite um email:
     <br /><br />
     </td> 
   </tr>
   <tr> 
     <td align="center"> 
     E-mail:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     <input type="text" name="login" maxlength="80" size="56" />
     <input type="submit" name="logar" value="Logar" /> 
     </td> 
   </tr> 
</table> 
</form>
</center>
<? 
}else{
   // atribuindo o valor digitado para a variavel
   $email = $_POST["login"];
 
   // verifica se campo está em branco
   if ($email == ''){
	echo "<p class=div_erro>Por favor, preencha o campo email.</p>";
	echo "<meta HTTP-EQUIV='refresh' CONTENT='2;URL=index.php'>"; 
   }else{
	// parte importante - Converte um arquivo XML em um objeto
	// emails.xml -- nome do arquivo .xml
	$xml = simplexml_load_file('emails.xml');
 
	$emailEncontrado = false;
 
	//$xml->email -- acessa as propriedades do objeto
	foreach ($xml->email as $email_xml)
	{
		// comparando os dados
		if ($email == $email_xml)
		{
			$emailEncontrado = true;
			break;
		}
	}
 
	if($emailEncontrado === true)
	{
		include("arquivos_download.php");
	}else	{
		echo '<p class=div_erro>Email Inválido</p>';
		echo "<meta HTTP-EQUIV='refresh' CONTENT='2;URL=index.php'>";
	}
   }
}
?>
</body>
</html>

Como pudemos ver neste post, a manipulação de arquivos XML no PHP é extremamente simples (SimpleXML) e pode ser realizada com poucas linhas de comando.

2 thoughts on “PHP+XML: Validando dados enviados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *