Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GutoDPB

[Resolvido] Cadastro e pesquisa com TXT + envio de e-mail

Recommended Posts

Olá pessoal!

Editei um script pronto, e estou colocando mais recursos nele. Estou tentando fazer um cadastro via .txt onde o cliente mesmo faria. estou tentando colocar uma pesquisa no txt onde acharia o nick e se tivesse um igual, ele pararia a execução do script e diria que o login ou o email já existe. Se não existisse, ele escreveria o cadastro normalmente e no final mandaria pro email do cliente os dados que ele escreveu no form e para mim também. só que estou errando e não consigo saber onde, pois o email não chega, nem escreve no txt corretamente. e por ser muito inexperiente com php, gostaria de pedir a ajuda de vocês em me dizer onde estou errando e o que posso fazer para consertar o erro.

script:

http://pastebin.com/ngpbBEuP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer salvar os dados cadastros em um arquivo .txt? (se for o caso, não seria melhor usar database?)

 

Não sei se entendi direito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DODMocument->formatOutput = true;
     $DOMDocument->load( 'usuarios.xml' );
     $Usuarios = $DOMDocument->getElementsByTagName( 'usuarios' )->item( 0 );


     $Dados = Array( 
            'nome' => 'Andrey',
            'sobrenome' => 'Knupp Vital',
            'email' => 'andreykvital@gmail.com',
            'login' => '123',
            'senha' => '0a160508a4f401d1507f5690040dfa3a',
            'ip' => $_SERVER[ 'REMOTE_ADDR' ]
     );
     $Usuario = $Usuarios->appendChild( $DOMDocument->createElement( 'usuario' ) );
     foreach( $Dados as $index => $data ){
           $Element = $Usuario->appendChild( $DOMDocument->createElement( $index ) );
           $Element->appendChild( $DOMDocument->createCDATASection( $data ) );
     }
     $DODMocument->formatOutput = true;
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->save( 'usuarios.xml' );

Saída:

<?xml version="1.0" encoding="utf-8"?>
<usuarios>
  <usuario>
       <nome><![CDATA[Andrey]]></nome>
       <sobrenome><![CDATA[Knupp Vital]]></sobrenome>
       <email><![CDATA[andreykvital@gmail.com]]></email>
       <login><![CDATA[123]]></login>
       <senha><![CDATA[0a160508a4f401d1507f5690040dfa3a]]></senha>
       <ip><![CDATA[::1]]></ip>
   </usuario>
</usuarios>

 

Lendo:

<?php
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DODMocument->formatOutput = true;
     $DOMDocument->load( 'usuarios.xml' );
     $Usuarios = $DOMDocument->getElementsByTagName( 'usuario' )->item( 0 );
     foreach( $Usuarios->getElementsByTagName( '*' ) as $Node ){
             echo ucwords( $Node->nodeName ), ':', $Node->nodeValue, '<br />';
     }

 

Saída:

Nome:Andrey
Sobrenome:Knupp Vital
Email:andreykvital@gmail.com
Login:123
Senha:0a160508a4f401d1507f5690040dfa3a
Ip:::1

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigadão! vou tentar aqui e te dou a resposta.

valeeu!

 

Obrigado mesmo. funcionou quase que totalmente. tem alguns bugs que ainda gostaria de te pedir ajuda:

 

ele escreve o xml certinho, mas na hora de ler, não lê totalmente. só o primeiro login. fiz o teste e ele escreveu certo, mas não leu.

http://gutoguto.site50.net/agenda/agenda/lerxml.php

 

<?xml version="1.0" encoding="utf-8"?>
<usuarios><usuario><nome><![CDATA[Andrey]]></nome><sobrenome><![CDATA[Knupp Vital]]></sobrenome><email><![CDATA[andreykvital@gmail.com]]></email><login><![CDATA[123]]></login><senha><![CDATA[0a160508a4f401d1507f5690040dfa3a]]></senha><ip><![CDATA[::1]]></ip></usuario><usuario><nome><![CDATA[]]></nome><sobrenome><![CDATA[]]></sobrenome><email><![CDATA[]]></email><login><![CDATA[gutobitdefddf]]></login><senha><![CDATA[]]></senha><ip><![CDATA[187.13.24.45]]></ip></usuario></usuarios>

 

coloquei o php da ação do form assim:

<?php

$senhaa	= $_POST['rpassword'];
$nomee = $_POST['pesquisa_usuario'];
$emaill = $_POST['pesquisa'];

     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DODMocument->formatOutput = true;
     $DOMDocument->load( 'usuarios.xml' );
     $Usuarios = $DOMDocument->getElementsByTagName( 'usuarios' )->item( 0 );


     $Dados = Array( 
            'nome' => $nome,
            'sobrenome' => '',
            'email' => $emaill,
            'login' => $nomee,
            'senha' => $senhaa,
            'ip' => $_SERVER[ 'REMOTE_ADDR' ]
     );
     $Usuario = $Usuarios->appendChild( $DOMDocument->createElement( 'usuario' ) );
     foreach( $Dados as $index => $data ){
           $Element = $Usuario->appendChild( $DOMDocument->createElement( $index ) );
           $Element->appendChild( $DOMDocument->createCDATASection( $data ) );
     }
     $DODMocument->formatOutput = true;
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->save( 'usuarios.xml' );

  ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opá, foi mal a demora, tava resolvendo uns problemas aqui ..

então, faz assim:

<?php
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->load( 'http://gutoguto.site50.net/agenda/agenda/usuarios.xml' );
     $Usuarios = $DOMDocument->getElementsByTagName( 'usuarios' )->item( 0 );
     foreach( $Usuarios->getElementsByTagName( 'usuario' ) as $Usuario ){
             foreach( $Usuario->getElementsByTagName( '*' ) as $Node ){
                 echo ucwords( $Node->nodeName ), ':', $Node->nodeValue, '<br />';
             }
     }

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Andrey!

deu certinho.

 

vou tentar agora fazer o php pesquisar no xml. se eu estiver com dificuldade peço tua ajuda.

você me ajudou bastante. obrigado, fera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa a demora.

 

é que nesse sistema, eu vou fazer o membro se cadastrar, e para não haver 2 logins e 2 e-mails iguais, preciso que antes que escreva no xml, faça uma pesquisa e se não houver o login e email, aí sim eu vou deixar escrever no xml.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Easy, faz assim:

<?php
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->load( 'http://gutoguto.site50.net/agenda/agenda/usuarios.xml' );
     $DOMXPath = new DOMXPath( $DOMDocument );
     if( $DOMXPath->query( './/usuario[email="gutobittencourt21@gmail.com"]' )->length >= 1 ){
         echo 'Usuário já cadastrado';
         exit();
     }else{
         echo 'Vamos fazer o cadastro';
     }

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa a demora.

eu fiz assim e não funcionou. continuou fazendo cadastro com mesmos emails.

o que está errado:

 

<?php

$nomee = $_POST['pesquisa_usuario'];
$emaill = $_POST['pesquisa_email'];
$senhaa	= $_POST['rpassword'];

$DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->load( 'http://gutoguto.site50.net/agenda/agenda/usuarios.xml' );
     $DOMXPath = new DOMXPath( $DOMDocument );
     if( $DOMXPath->query( './/usuario[email="$emaill"]' )->length >= 1 ){
         echo 'Usuário já cadastrado';
         exit();
     }

  else{
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DODMocument->formatOutput = true;
     $DOMDocument->load( 'usuarios.xml' );
     $Usuarios = $DOMDocument->getElementsByTagName( 'usuarios' )->item( 0 );


     $Dados = Array( 
            'nome' => $nome,
            'sobrenome' => '',
            'email' => $emaill,
            'login' => $nomee,
            'senha' => $senhaa,
            'ip' => $_SERVER[ 'REMOTE_ADDR' ]
     );
     $Usuario = $Usuarios->appendChild( $DOMDocument->createElement( 'usuario' ) );
     foreach( $Dados as $index => $data ){
           $Element = $Usuario->appendChild( $DOMDocument->createElement( $index ) );
           $Element->appendChild( $DOMDocument->createCDATASection( $data ) );
     }
     $DODMocument->formatOutput = true;
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->save( 'usuarios.xml' );
  }
  ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, é algo que possivelmente não foi alterado no seu servidor, ou sei lá.

mais executa somente esse script:

 

<?php
     $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
     $DOMDocument->preserveWhiteSpace = false;
     $DOMDocument->load( 'http://gutoguto.site50.net/agenda/agenda/usuarios.xml' );
     $DOMXPath = new DOMXPath( $DOMDocument );
     if( $DOMXPath->query( './/usuario[email="andreykvital@gmail.com"]' )->length >= 1 ){
         echo 'Usuário já cadastrado';
         exit();
     }else{
         echo 'Vamos fazer o cadastro';
     }

 

Veja o retorno, depois procure por outro usuário que não existe

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.