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:
<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.
ADAPTEI UNS CÓDIGOS E FIZ EM PHP / JQUERY
MOSTRA O ERRO, A LINHA, SELECIONA A MESMA E DEIXA SALVAR O ARQ CORRIGIDO… ATÉ +/-
http://gpv88.orgfree.com/xsd/
Olá Giovani,
parabéns pelo projeto.