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

NCS_One

Enviar erro de login.

4 mensagens neste tópico

Ois

Sou novato nisto de php e resolvi começar por tentar fazer um simples login, o login funciona e tb consigo inserir um novo user

na base de dados, aqui vao os 2 ficheiros :

Ficheiro - Index.php

<html>
<body>
<title>Index</title>
</body>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheigh="0">
<table width="200" height="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#CCCCCC">
   <tr>
      <td align="center">
         <span>Login</span>
         <form action="Login.php" method="POST">
            <span>Nome :</span><input type="text" value="" name="Nome" size="20">
            <span>Pass :</span><input type="password" value="" name="Pass" size="20">
            <input type="submit" value="Login">
         </form>
         <a href="Registar.php">Registar</a>
      </td>
   </tr>
</table>
</body>
</html>

Ficheiro - Login.php

<?
$Nome=$_POST["Nome"];
$Password=$_POST["Pass"];
$Password=md5($Password);

$Conectar = mysql_connect("localhost", "root", "") Or Die("Falhou ligar ah base de dados.");

$bdd = mysql_select_db("BaseDados1", $Conectar) Or Die("Falhou, base de dados desconhecida.");

$Pesquisa = "Select Nome, Pass From utilizador Where nome='$Nome';";

$Resultado = mysql_query($Pesquisa);

$Num = mysql_num_rows($Resultado);

if ($Num!=0)
{
   list($Nome, $Pass) = @ mysql_fetch_row($Resultado);
   if ($Password == $Pass)
   {
      Header("Location : http://www.sapo.pt/");
   }
   else
      echo "Password errada.";
}
else
   echo "Utilizador nao existe.";

mysql_close($Conectar);
?>

Agora tenho 2 perguntas -

1ª - Se o utilizador nao existir ou a password estiver errada como faço um 'alert' com a respectiva mensagem na pagina Index.php

       nao na Login.php ?

2ª - Se o utilizador nao existir ou a password estiver errada como faço para inserir um novo elemento com a respectiva mensagem

       dentro do 'td'(onde esta a 'form') da 'table' ?

Desde ja agradeço toda a ajuda que poderem dar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

BEM vou tentar responder a isso, pk eu tb tenho andado de volta destas coisas, então eu fiz assim:

quando ele verifica que o utilizador não existe, fazes um header  e na minha situação, fiz

no index.php

//--- defines uma var msg vazia no inicio do body ou na tag head
<? $msg=" "; ?>

//----- metes o codigo todo do form -----
//---- defines um local para dar a msg de erro e metes:
<? $msg = $_GET['msg'];  echo $msg; ?>

no Login.php

//--- o codigo todo da verificação
//--- na parte de utilizador não existe
header(Location: index.php?msg=Erro de Login);

Não se será a melhor maneira, mas funciona ... um abraço  :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ois

Obrigado pela resposta mas alguem sabe de alguma maneira melhor de o fazer eh k nesta a msg vai no url

e eu nao keria isso.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar a sessão para guardar a mensagem.

login.php

<?php 
//resumir a sessão
session_start(); 

$Nome=$_POST["Nome"];
$Password=$_POST["Pass"];
$Password=md5($Password);

$Conectar = mysql_connect("localhost", "root", "") Or Die("Falhou ligar ah base de dados.");

$bdd = mysql_select_db("BaseDados1", $Conectar) Or Die("Falhou, base de dados desconhecida.");

$Pesquisa = "Select Nome, Pass From utilizador Where nome='$Nome';";

$Resultado = mysql_query($Pesquisa);

$Num = mysql_num_rows($Resultado);

if ($Num!=0)
{
   list($Nome, $Pass) = @ mysql_fetch_row($Resultado);
   if ($Password == $Pass)
   {
      Header("Location : http://www.sapo.pt/");
   }
   else
      { 
  $_SESSION['msg'] = "Password errada."; 
   	    Header("Location : index.php");
  } 
}
else
      { 
  $_SESSION['msg'] = "Utilizador não existe!"; 
   	    Header("Location : index.php");
  } 

mysql_close($Conectar);
?>

index.php

<?php 
//iniciar a sessão
session_start(); 
?>
<html>
<title>Index</title>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheigh="0">
<table width="200" height="200" cellspacing="0" cellpadding="0" border="0" bgcolor="#CCCCCC">
<?php 
   if (isset($_SESSION['msg'])){
   ?>   
   <tr>
   <td>Erro : <?=$_SESSION['msg']?></td>
   </tr>
   <?php } ?>
   <tr>
      <td align="center">
         <span>Login</span>
         <form action="Login.php" method="POST">
            <span>Nome :</span><input type="text" value="" name="Nome" size="20">
            <span>Pass :</span><input type="password" value="" name="Pass" size="20">
            <input type="submit" value="Login">
         </form>
         <a href="Registar.php">Registar</a>
      </td>
   </tr>
</table>
</body>
</html>

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