• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

joao_n

Ajuda - Php formulario de validação e retorno etc..

8 mensagens neste tópico

Boas.. tenho um problema que nao consigo resolver.

é o seguinte

Tenho o formulario feito.

O que tem de fazer é o seguinte:

fazer Log in, caso seja Admin com a password Admin, tem de ir para os registos todos dos users.

caso seja um user registado tem de aparecer uma msg a dizer log in com sucesso

caso nao exista tem de ir para os registos para se registar.

como posso eu fazer isto?

Aqui fica o codigo:

Index:

<html>
<head>
<title>Login</title>
<script type="text/javascript">
function validate(form){
var Utilizador = form.Utilizador.value;
var Password = form.Password.value;


if (Utilizador.length === 0) {
alert("Introduza um nome de utilizador.");
return false;
}


if (Password.length === 0) {
alert("Introduza uma password.");
return false;
}



return true;
}



</script>


<body>
<h1>Log In</h1>

<form method="post" action="teste.php"
onsubmit="return validate(this);">



Utilizador: <input type="text" name="Utilizador" size="10"><br/>
Password: <input type="Password" name="Password" size="10"><br/>

<input type="submit" value="Enviar">
<input type="reset" value="Limpar">




</p>

</form>


<form method="post" action="Registo.html"
onsubmit="return validate(this);">

Novo utilizador?
<br>
<input type="submit" value="Registar">



</p>
</form>
</body>
</html>

Confirmar.php

<?php

echo '<p>Bem Vindo!</p>'; 
echo '<p>Anote os dados pessoais:</p>';

// Obter valores de uma formulário.

$Nome = $_POST['Nome'];
$Utilizador = $_POST['Utilizador'];
$Password = $_POST['Password'];
$Localidade = $_POST['Localidade'];
$Telefone = $_POST['Telefone'];
$Email = $_POST['Email'];


$saudacao = $_REQUEST['saudacao'];

echo $saudacao . '<br>';

echo '<p> Registo foi efectuado a: ';
echo date('H:i, jS F Y');

echo '</p>';

echo 'Utilizador:' . $Utilizador . '</br>';
echo 'Password: ' . $Password . '</br>';
echo 'Nome: ' . $Nome . '</br>';
echo 'Localidade:' . $Localidade . '</br>';
echo 'Telefone: ' . $Telefone . '</br>';
echo 'Email: ' . $Email . '</br>' . '</br>' . '</br>' . '</br>';




//a linha de baixo é para criar um xml
$document= new DOMDocument();


$document->formatOutput = true;

//a linha de baixo é para criar a raiz
$root = $document->createElement( "Lista" );  
$document->appendChild( $root );  



//esta linha é para criar o nodo da aplicação
$block = $document->createElement( "Elementos" );   

$NomeUser = $document->createElement( "Utilizador" );  
$NomeUser->appendChild($document->createTextNode($Utilizador)); 
$block->appendChild( $NomeUser );  
   
   
$PasswordUser = $document->createElement( "Password" );  
$PasswordUser->appendChild($document->createTextNode($Password));  
$block->appendChild($PasswordUser); 

$NomeV = $document -> createElement ("Nome");
$NomeV -> appendChild ($document->createTextNode($Nome)); 
$block->appendChild($NomeV);

$LocalidadeUser = $document -> createElement ("Localidade");
$LocalidadeUser -> appendChild ($document->createTextNode($Localidade)); 
$block->appendChild($LocalidadeUser);

$TelefoneUser = $document -> createElement ("Telefone");
$TelefoneUser -> appendChild ($document->createTextNode($Telefone)); 
$block->appendChild($TelefoneUser);


$EmailUser = $document -> createElement ("Email");
$EmailUser -> appendChild ($document->createTextNode($Email)); 
$block->appendChild($EmailUser);

$root ->appendChild ($block);

echo $document->saveXML();       

$document->save("Utilizadores.xml");

?>

registo:

<html>
<head>
<title>Registo</title>
<script type="text/javascript">
function validate(form){
var Utilizador = form.Utilizador.value;
var Password = form.Password.value;
var Nome = form.Nome.value;
var Localidade = form.Nome.value;
var Telefone = form.Telefone.value;
var Email = form.Email.value;

if (Utilizador.length === 0) {
alert("Introduza um nome de utilizador.");
return false;
}

if (Password.length === 0) {
alert("Introduza uma password.");
return false;
}

if (Nome.length === 0) {
alert("Introduza um nome.");
return false;
}

if (Localidade.length === 0) {
alert("Introduza uma localiade.");
return false;
}

if (Telefone.length === 0) {
alert("Introduza o número de telefone.");
return false;
}

if (Email.length === 0) {
alert("Introduza um Email.");
return false;
}

return true;
}
</script>
</head>
<body>
<h1>Registo de novo utilizador</h1>
<br>
<h5>Todos os campos são de preenchimento obrigatório</h5>


<form method="post" action="Confirmar.php"
onsubmit="return validate(this);">

Utilizador: <input type="text" name="Utilizador" size="10"><br/>
Password: <input type="Password" name="Password" size="10"><br/>
Nome: <input type="text" name="Nome" size="10"><br/>
Localidade: <input type="text" name="Localidade" size="10"><br/>
Telefone: <input type="text" name="Telefone" size="10"><br/>
Email: <input type="text" name="Email" size="10"><br/>



<input type="submit" value="Enviar">
<input type="reset" value="Limpar">


</p>
</form>



</body>
</html>

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Portanto.. como posso fazer um If ou algo assim para ele poder ler os dados. e se corresponder a Adm vai retornar os registos feito em xml, eu tentei fazer um if, dentro do form e fora dele no index.html, mas ele vai sempre para a pagina de teste..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é o codigo da página "teste.php"?

Nesse tens de colocar este código:

if (isset($_POST['Utilizador']) && isset($_POST['Password']))
{
  $utilizador = $_POST['Utilizador'];
  $password = $_POST['Password'];

  if ($utilizador == 'Admin' && $password == 'Admin')
  {
     header("Location: pagina_admin.php");
     exit();
  }

  // Esta linha é um comentário porque começa com duas barras 
  // Aqui tens de inserir algum tipo de verificação se o utilizador existe
  // Suponho que queiras ir buscar ao ficheiro XML onde guardas os registos de utilzadores
  if (..) { }


  // Senão reenvia o utilizador para a página de registo
  header("Location: registo.php");
  exit();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim exacto.. pretendo ir buscar o xml onde guardo os dados.. ;)

obrigado. vou testar o codigo..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu meti esse código e nada.. :S

:wallbash:

não entendo. ele vai para a pagina teste mas ela fica em branco mesmo com os dados Admin, nao vai para a pagina Utilizadores.xml

^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

funciona, mas o que nao funciona é o retorno do ficheiro XMl.

fiz uma batota, meti um echo para testar e sim funciona. ;)

entao meti dois forms, um para se for para ver os users clica OK, caso contrario carregar voltar.

fiz assim:

<?php


if (isset($_POST['Utilizador']) && isset($_POST['Password']))
{
  $utilizador = $_POST['Utilizador'];
  $password = $_POST['Password'];

  if ($utilizador == 'Admin' && $password == 'Admin')
  {
     echo '<p><center><b>Bem Vindo ao painel de Administração!</b></center></p>';

  }


  // Veriicar se o user existe, ler o XML
  
  if ($utilizador != 'Admin' && $password != 'Admin') 
  
  { 
echo '<p><center><b>Dados nao encontrados</b></center></p>';  
  }


  //Se o user não existe, então vai para o Registo
  
//else
}



?>

<form method="post" action="Registo.html"
onsubmit="return validate(this);">
Não consta na Base de dados, por favor efectue o seu registo, clique em Ok para confirmar.
Se não desejar efectuar registo clique em Voltar
<br />
<input type="submit" value="Ok" >
</form>

<form method="post" action="index.html"
onsubmit="return validate(this);">
<input type="submit" value="Voltar" >
</form>

So neguei caso nao ser adm.

eu no XML se meter um novo user ele vai apagar o anterior e meter um novo, ou seja so consigo gravar um.

como posso ir sempre acrescentando?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

afinal tenho aquilo mal.. bolas.  nao sei...

aquele codigo que esta la em cima nao me devolve o ficheiro xml :S

e tambem preciso de então no teste.php abrir o xml e correr o xml e ver se os dados existem certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pronto corrigi da seguinte maneira e assim já nao aparece o form com outros dados:

<?php


if (isset($_POST['Utilizador']) && isset($_POST['Password']))
{
  $utilizador = $_POST['Utilizador'];
  $password = $_POST['Password'];

  if ($utilizador == 'Admin' && $password == 'Admin')
  {
     echo '<p><center><b>Bem Vindo ao painel de Administração!</b></center></p>';
 echo '<p><p><center><b>Para confirmar que deseja ver o XML clique OK, para voltar ao Index, carregue em voltar.</b></center></p></p>';


 ?>
     
<form method="post" action="Utilizadores.xml"
onsubmit="return validate(this);">
<input type="submit" value="OK">
</form>

<form method="post" action="Index.html"
onsubmit="return validate(this);">
<input type="submit" value="Voltar">
</form>

<?php 
  }

?>

<?php 

  // Veriicar se o user existe, ler o XML
  
  if ($utilizador != 'Admin' || $password != 'Admin') 
  
  { 
echo '<p><center><b>Dados nao encontrados</b></center></p>'; 

  }


  //Se o user não existe, então vai para o Registo
  
//else
}



?>

Agora preciso de ajuda...

para ir acrescentando users ao Utilizadores.xml, e como ler o xml para ver se o user existe

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora