Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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..
Já tentei mas continuo com o mesmo problema..
>
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>");
}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.
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.
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?
Bem com as mudanças de código, consegui resolver o problema..obrigado..
>
Bem com as mudanças de código, consegui resolver o problema..obrigado..
Flw. Abraço.
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"
}else {
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"
} else {