Dumont 0 Denunciar post Postado Setembro 5, 2010 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
InterPlanet 7 Denunciar post Postado Setembro 5, 2010 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
Dumont 0 Denunciar post Postado Setembro 5, 2010 Já tentei mas continuo com o mesmo problema.. Compartilhar este post Link para o post Compartilhar em outros sites
InterPlanet 7 Denunciar post Postado Setembro 5, 2010 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
Dumont 0 Denunciar post Postado Setembro 5, 2010 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
InterPlanet 7 Denunciar post Postado Setembro 5, 2010 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
Dumont 0 Denunciar post Postado Setembro 5, 2010 Bem com as mudanças de código, consegui resolver o problema..obrigado.. Compartilhar este post Link para o post Compartilhar em outros sites
InterPlanet 7 Denunciar post Postado Setembro 5, 2010 Bem com as mudanças de código, consegui resolver o problema..obrigado.. Flw. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites