Ir para conteúdo

POWERED BY:

Arquivado

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

Dumont

[Resolvido] Mensagem de erro no login

Recommended Posts

Boa tarde,

 

Estou com problemas no login, ou seja quando o login está correcto faz o que quero mas quando erro no login gostava que aparecesse uma caixa (alert) com uma mensagem a dizer "Login errado" e quando clicar no "ok" continuar na pagina do login e apesar de já ter tentado vários script ainda não consegui, sempre que erro o login vai para uma pagina em branco. Ora aqui vai o código:

 

<?php

ob_start();

session_start();

 

?>

<?php

require_once('config.php');

mysql_select_db($database, $link);

 

 

// username and password sent from form

 

$myusername=$_POST['login'];

$mypassword=$_POST['password'];

// To protect MySQL injection (more detail about MySQL injection)

$myusername = stripslashes($myusername);

$mypassword = stripslashes($mypassword);

$myusername = mysql_real_escape_string($myusername);

$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM admin WHERE admin='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

// Mysql_num_row is counting table row

 

if ($myusername=='') {

echo("<script>alert('Preencha o campo login ');</script>");

echo("<script>history.back();</script>");

exit();

}

 

if ($mypassword=='') {

echo("<script>alert('Preencha o campo password ');</script>");

echo("<script>history.back();</script>");

exit();

}

 

$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"

session_register("myusername");

session_register("mypassword");

if ($myusername=='admin'){

header("location:layout2.php");

}else {

echo ("<script>alert('Wrong Username or Password');</script>");

header("location:index.php");

}

}

?>

 

Agradeço a ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente mudar aqui:

$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
if ($myusername=='admin'){
header("location:layout2.php");
}else {
echo ("<script>alert('Wrong Username or Password');</script>");
header("location:index.php");
}
}

Por (substituindo os header por javascript):

$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
if ($myusername=='admin'){
//header("location:layout2.php");
echo ("<script>location.href='layout2.php';</script>");
} else {
echo ("<script>alert('Login incorreto'); location.href='index.php';</script>");
//header("location:index.php");
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei mas continuo com o mesmo problema..

 

Certo, deixa eu mudar a logica aqui desse script, post ja pra ver se resolve.

 

Olha:

 


<?php
require_once('config.php');
mysql_select_db($database, $link);


// username and password sent from form
$myusername=$_POST['login'];
$mypassword=$_POST['password'];


// VERIFICA ANTES DA CONSULTA SE OS PARAMETROS FORAM PASSADOS
if (empty($myusername)) {
exit("<script>alert('Preencha o campo login'); history.back();</script>");
}
if (empty($mypassword)) {
exit("<script>alert('Informe o campo senha'); history.back();</script>");
}

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM admin WHERE admin='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
 { // Register $myusername, $mypassword and redirect to file "login_success.php"
   session_register("myusername");
   session_register("mypassword");
   echo ("<script>location.href='layout2.php';</script>");

 } else { echo ("<script>alert('Login incorreto'); location.href='index.php';</script>"); }
?>

 

E ai? funcionou? se nao, post a mensagem de erro que esta aparecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo funciona menos quando coloco mal a pass ou o login continua a aparecer a pagina em branco..Quando não insiro a password aparece o alerta o mesmo para o login quando insiro correctamente os dados também entra para o ficheiro layout mas quando erro na password ou login vai para uma pagina em branco (o login2.php) o login2.php é o ficheiro onde está este código. E não aparece nenhum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, vamos fazer duas mods pra ver se conseguinmos identificar algum erro:

 

1) Troque:

$result=mysql_query($sql);

 

Por:

$result = mysql_query($sql) or die (mysql_error());

 

2) Troque:

if($count==1)

 

Por:

if(!empty($count))

 

Execute, em todas as condições e veja se retorna algum erro.

 

Detalhe:

display_errors do PHP está habilitado? Melhor, quando ocorrem erros o php imprime alguma mensagem?

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.