GutoDPB 0 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Não dá pra ser com XML ? é bem melhor, é mais aconselhável, se puder avisa, que eu posso te dar uma ajuda Compartilhar este post Link para o post Compartilhar em outros sites
Mulambo 1 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 não seria melhor usar database? Se for coisa simples cara, nem precisa .. aí acaba ficando ruim ;) Compartilhar este post Link para o post Compartilhar em outros sites
GutoDPB 0 Denunciar post Postado Junho 24, 2011 Sim, pode ser em xml sim. ficarei grato pela ajuda. não da pra usar DB pq o servidor é gratuito :/ Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Ok, vamos lá, o que é levado em conta nesse cadastro, nome, sobrenome, cidade, email .. ? Compartilhar este post Link para o post Compartilhar em outros sites
GutoDPB 0 Denunciar post Postado Junho 24, 2011 é levado em conta nick, senha, email, ip (eu pego para registrar) se quiser pode olhar aqui como cadastro de forma manual: http://gutoguto.site50.net/agenda/agenda/index.php e aqui o formulário que estou utilizando: http://gutoguto.site50.net/login/login.html# esse dominio criei para teste. obrigado pela ajuda! :D Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 <?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
GutoDPB 0 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 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
GutoDPB 0 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Pesquisar o que ? pelo login e senha do cara ? Compartilhar este post Link para o post Compartilhar em outros sites
GutoDPB 0 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 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
GutoDPB 0 Denunciar post Postado Junho 24, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Troque: $DOMDocument->load( 'http://gutoguto.site50.net/agenda/agenda/usuarios.xml' ); Por: $DOMDocument->load( 'usuarios.xml' ); Compartilhar este post Link para o post Compartilhar em outros sites
GutoDPB 0 Denunciar post Postado Junho 24, 2011 deu no mesmo. lê e escreve no xml, mas como se não existisse o usuario. ai replica o usuario ou email varias vezes Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Estranho, aqui está funcionando normalmente Compartilhar este post Link para o post Compartilhar em outros sites
GutoDPB 0 Denunciar post Postado Junho 24, 2011 se quiser testar... para fazer cadastro: http://gutoguto.site50.net/agenda/agenda/login.php para ler o xml: http://gutoguto.site50.net/agenda/agenda/lerxml.php Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 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