Ir ao conteúdo

Posts recomendados

Postado

Boa noite, eu estou querendo fazer um cadastro com PHP  e XML, porém não encontrei nenhuma fonte na internet que fale sobre como fazer um sistema de cadastro com a base de dados em XML, eu quero que toda vez que o cliente faça um cadastro o valores que ele colocar dentro do form vai direto para um arquivo XML, ai toda vez que cadastrar um cliente novo só faz adicionar as informações no arquivo XML sem precisar criar um novo arquivo.

 

<html>
<body>
    <form method="post" action="cadastro.php">
         informações <br>
         Nome <input type="text" name="nome"> <br>
         Endereco <input type="text" name="endereco"> <br>
         <input type="submit" name="insert" value="add">
     </form>
</body>
</html>

 

  • Moderador
  • Solução
Postado

@Leonardo Paiva Vieira Olá,  O ideal é que você use de fato um banco de dados quando se trata de cadastros.  Contudo, dá para fazer algo bem simples para armazenar o ID o cliente, o nome e o endereço.

 

Vamos ao código:

<?php
//Pega os dados vindo do formulário
$nome     = $_POST["nome"];
$endereco = $_POST["endereco"];

//Gera um valor único e aletório para simular o auto increment do banco de dados
$id =  uniqid();

//Carrega o arquivo 
$xml = simplexml_load_file("usuarios.xml");

//Cria um elemento
$filho = $xml->addChild('cliente');
//Adiciona um elemento id para o cliente
$filho->addAttribute("id", $id);

//Cria um elemento nome
$filho->addChild('nome',$nome);
//Cria um elemento endereço
$filho->addChild('endereco',$endereco);

//Testa se salvou. Se sim, mostra mensagem de sucesso e volta ao formulário.
if(file_put_contents("usuarios.xml", $xml->asXML())):
    echo "<script>
           alert('Cliente Cadastrado!');
           window.location.href='index.html';
         </script>";
      
else :
    echo"<script>
           alert('Deu erro.');
           window.location.href='index.html';
         </script>";
endif;

Basicamente isso. Toda vez que inserir um novo cliente, ele será incluído no arquivo xml criado.

 

PS: Crie o arquivo usuarios.xml e pelo menos crie um elemento ROOT. 

Ficando desta forma:

<?xml version="1.0" encoding="UTF-8"?>
<clientes></clientes>

Desta forma, o php não acusará erro ao tentar carregar o arquivo xml.

  • Curtir 1
Postado

Estou com outro problema!

Eu consigo pegar as informações do XML, porém eu quero que verifica se o email digitado pelo o cliente esteja no XML.

 

<?php
    $email_form = $_POST['email'];
    $senha_form = $_POST['senha'];
    
    $filename = 'Clientes_Dados.xml';
    $email = simplexml_load_file($filename) -> emails -> email;
    $senha = simplexml_load_file($filename) -> senhas -> senha;
    
    if(in_array($email_form, $email, true)){
        echo $email_form;
    }
?>

 

<?xml version="1.0" encoding="UTF-8"?>
<clientes>
  <nomes>
    <nome value="1"> Leonardo Paiva Vieira </nome>
    <nome value="2"> Eugênia Guimarães </nome>
  </nomes>
  <telefones>
    <telefone value="1"> (64) 99999999 </telefone>
    <telefone value="2"> (64) 99999999 </telefone>
  </telefones>
  <sexos>
    <sexo value="1"> Masculino </sexo>
    <sexo value="2"> Feminino </sexo>
  </sexos>
  <emails>
    <email value="1"> [email protected] </email>
    <email value="2"> [email protected] </email>
  </emails>
  <senhas>
    <senha value="1"> 12345678 </senha>
    <senha value="2"> 12345678 </senha>
  </senhas>
</clientes>

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!