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.