Foros del Web » Programando para Internet » PHP »

Controlar usuario inexistente en BD

Estas en el tema de Controlar usuario inexistente en BD en el foro de PHP en Foros del Web. Buenas. Tengo un index.php donde se hace el login. Aqui solo compruebo mediante JS si se rellenan los campos. Luego en default.php se hace la ...
  #1 (permalink)  
Antiguo 22/09/2010, 01:43
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Controlar usuario inexistente en BD

Buenas. Tengo un index.php donde se hace el login. Aqui solo compruebo mediante JS si se rellenan los campos. Luego en default.php se hace la comprobación en la BD. Si existe, pasa a main.php, pero si no existe (o la contraseña es erronea), me gustaría que saliera una alarma y que volviera a index.php.

No lo consigo hacer. Cuando es erroneo, se me queda en la pagina default.php que como no hay nada, está toda blanca.
Como hago la comprobación de usuario incorrecto?

gracias.

--index.php---

Código PHP:
Ver original
  1. <?
  2. if(isset($SESSION)){
  3.     header("location:main.php");
  4. }else{
  5.  
  6. ?>
  7. <html>
  8. <head>
  9. <title>Administración Portal Asociación Amigos de la Ópera de Sabadell</title>
  10.  
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  12. <script language="JavaScript" type="text/JavaScript">
  13. <!--
  14.  
  15. function comprovar(formu)
  16. {
  17.     missatge = "";
  18.     fet = 0;
  19.     if (formu.login.value == "")
  20.     {
  21.         missatge = "Introduzca su Usuario.";
  22.         fet = 1;
  23.     }
  24.     if (formu.pass.value == "")
  25.     {
  26.         if(fet == 1)
  27.             missatge = missatge + " Introduzca su Contraseña.";
  28.         else
  29.         {
  30.             missatge = "Introduzca su Contraseña.";
  31.             fet = 1;
  32.         }
  33.     }
  34.     if (fet == 1)
  35.         alert(missatge);
  36.     else
  37.     {
  38.         formu.submit();
  39.     }
  40. }
  41.  
  42. -->
  43. </script>
  44. <style>
  45. <!--
  46.  
  47. input
  48. {
  49.     BORDER-RIGHT: black thin solid;
  50.     BORDER-TOP: black thin solid;
  51.     BORDER-LEFT: black thin solid;
  52.     BORDER-BOTTOM: black thin solid;
  53.     BACKGROUND-COLOR: #ffffff
  54. }
  55. body {
  56.     background-color: #f1e4da;
  57. }
  58.  
  59. -->
  60. </style>
  61. </head>
  62. <body onLoad="javascript:document.pp.login.focus();" text="#000000" link="#800080" vlink="#800080" alink="#800080" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" scroll="no">
  63. <table width="100%" cellspacing="0" cellpadding="0" border="0" background="gifs/fonstop.jpg">
  64.     <tr>
  65.         <td width="251" align="left"><img src="gifs/fototop.jpg" width="350" height="79" border="0"></td>
  66.         <td align="right" valign="bottom"><img src="gifs/titadmin.gif" width="407" height="52" hspace="5" border="0"></td>
  67.     </tr>
  68. </table>
  69. <center><br><br><br><br>
  70. <font face="verdana"><b>Administración Portal<br>Asociación Amigos de la Ópera de Sabadell</b></font><br><br><br>
  71. <form name="pp" method="post" action="default.php">
  72. <table width="300" align="center" cellpadding="0" cellspacing="0" border="0" bordercolor="#000000">
  73.     <tr>
  74.         <td width="20"><img src="gifs/dalte.gif" width="20" height="20" border="0"></td>
  75.         <td align="center" colspan="2" bgcolor="#000000">&nbsp;</td>
  76.         <td width="20"><img src="gifs/daltd.gif" width="20" height="20" border="0"></td>
  77.     </tr>
  78.     <tr>
  79.         <td width="20" bgcolor="#000000">&nbsp;</td>
  80.         <td colspan="2" bgcolor="#000000"><font face="Verdana" size="1" color="#ffffff"><b>&nbsp;&nbsp;&nbsp;Introduzca su Usuario y Contraseña:</b><br><br></font></td>
  81.         <td width="20" bgcolor="#000000">&nbsp;</td>
  82.     </tr>
  83.     <tr>
  84.         <td width="20" bgcolor="#000000">&nbsp;</td>
  85.         <td width="50%" align="left" bgcolor="#000000"><font face="Verdana" size="1" color="#ffffff"><b>&nbsp;&nbsp;&nbsp;Usuario:</b></font></td>
  86.         <td width="50%" align="center" bgcolor="#000000"><input type="text" name="login" size="20" maxlength="10"></td>
  87.         <td width="20" bgcolor="#000000">&nbsp;</td>
  88.     </tr>
  89.     <tr>
  90.         <td width="20" bgcolor="#000000">&nbsp;</td>
  91.         <td width="50%" align="left" bgcolor="#000000"><font face="Verdana" size="1" color="#ffffff"><b>&nbsp;&nbsp;&nbsp;Contraseña:</b></font></td>
  92.         <td width="50%" align="center" bgcolor="#000000"><input type="password" name="pass" size="20" maxlength="10"></td>
  93.         <td width="20" bgcolor="#000000">&nbsp;</td>
  94.     </tr>
  95.     <tr>
  96.         <td width="20" bgcolor="#000000">&nbsp;</td>
  97.         <td align="right" colspan="2" bgcolor="#000000"><br><input type="button" value="   Entrar   " onClick="comprovar(this.form)"></td>
  98.         <td width="20" bgcolor="#000000">&nbsp;</td>
  99.     </tr>
  100.     <tr>
  101.         <td width="20"><img src="gifs/baixe.gif" width="20" height="20" border="0"></td>
  102.         <td align="right" colspan="2" bgcolor="#000000">&nbsp;</td>
  103.         <td width="20"><img src="gifs/baixd.gif" width="20" height="20" border="0"></td>
  104.     </tr>
  105. </table>
  106. </form>
  107. </body>
  108. </html>
  109. <?
  110. }
  111. ?>


---default.php---

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("include/cons.php");
  4. include_once("include/inctexteadmin.php");
  5.  
  6.  
  7. $login = htmlspecialchars(trim($_POST['login']));
  8. $pass = trim($_POST['pass']);
  9.  
  10.  
  11.     $link=mysql_connect($server,$dbuser,$dbpass) or die ("Impossible connectar amb el servidor");
  12.     $query = sprintf("SELECT id_usuari, password, codi, sam, clau_permis, clau_idioma, deshabilitat FROM usuaris WHERE codi='".$login."' and password='".$pass."'");
  13.    
  14.    
  15.     $result=mysql_db_query($database,$query,$link) or die (mysql_error());
  16.     $n = mysql_num_rows($result) or die (mysql_error());
  17.    
  18.     if($n>0){
  19.         $array=mysql_fetch_array($result);
  20.        
  21.         $_SESSION["id_usuari"]=$array["id_usuari"];
  22.         $_SESSION["codi"]=$array["codi"];
  23.         $_SESSION["password"]=$array["password"];
  24.         $_SESSION["sam"]=$array["sam"];
  25.         $_SESSION["clau_permis"]=$array["clau_permis"];
  26.         $_SESSION["clau_idioma"]=$array["clau_idioma"];
  27.         $_SESSION["deshabilitat"]=$array["deshabilitat"];
  28.        
  29.         $idioma = $_SESSION["clau_idioma"];
  30.         if ($idioma == 1){
  31.             $_SESSION["idioma"] = "cs";
  32.         }else{
  33.             $_SESSION["idioma"] = "ct";
  34.         }
  35.         $_SESSION["idiomes"] = "cs,ct";
  36.        
  37.         $deshabilitat = $_SESSION["deshabilitat"];
  38.            
  39.         if ($deshabilitat == 1){
  40.         ?>
  41.             <script language="JavaScript" type="text/JavaScript">
  42.             <!--
  43.  
  44.             alert('<?=texte($_SESSION["idioma"],"txtdeshabilitat")?>');
  45.             top.location = "index.php";
  46.  
  47.             -->
  48.             </script>
  49.         <?php
  50.         }
  51.         header("Location:main.php");
  52.     }else{
  53.         echo "<script language='JavaScript'> alert('Login INCORRECTE');</script>";
  54.         echo "<SCRIPT LANGUAGE='JavaScript'> location.href='index.php'; </SCRIPT>";
  55.     }
  56.        
  57. ?>
  #2 (permalink)  
Antiguo 22/09/2010, 04:14
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

Buenas,

Pues con un simple if.

Por ejemplo:

Código PHP:
Ver original
  1. $query = mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario' AND  password='$pass'") or die(mysql_error());
  2.         $rmostrar = mysql_fetch_array($query);
  3.         if($mostrar['password'] != $pass) {
  4.         echo "Login incorrecto";
  5.         echo "<meta http-equiv='Refresh' content='2;url='index.php'>";
  6.         }else{
  7.             //Como ha sido correcto, aqui ponemos el resto de codigo
  8.         }

Saludos,
  #3 (permalink)  
Antiguo 22/09/2010, 04:32
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Gracias, la verdad es que me esperaba que fuera más complicado. Es super intuitivo..

Pero, me sigue pasando lo mismo! No salta el mensaje de error y se me queda la propia página en blanco en lugar de hacer la redirección...
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("include/cons.php");
  4. include_once("include/inctexteadmin.php");
  5.  
  6.  
  7. $login = htmlspecialchars(trim($_POST['login']));
  8. $pass = md5(trim($_POST['pass']));
  9.  
  10.  
  11.     $link=mysql_connect($server,$dbuser,$dbpass) or die ("Impossible connectar amb el servidor");
  12.     $query = sprintf("SELECT id_usuari, password, codi, sam, clau_permis, clau_idioma, deshabilitat FROM usuaris WHERE codi='".$login."' and password='".$pass."'");
  13.    
  14.    
  15.     $result=mysql_db_query($database,$query,$link) or die (mysql_error());
  16.     $n = mysql_num_rows($result) or die (mysql_error());
  17.    
  18.     if($n>0){
  19.         $array=mysql_fetch_array($result);
  20.         //echo $array["password"];
  21.         if ($array["password"] != $pass){
  22.             echo "Login INCORRECTO";
  23.             echo "<META HTTP-EQUIV='Refresh' CONTENT='0;url='index.php'>";
  24.         }else{
  25.        
  26.             $_SESSION["id_usuari"]=$array["id_usuari"];
  27.             $_SESSION["codi"]=$array["codi"];
  28.             $_SESSION["password"]=$array["password"];
  29.             $_SESSION["sam"]=$array["sam"];
  30.             $_SESSION["clau_permis"]=$array["clau_permis"];
  31.             $_SESSION["clau_idioma"]=$array["clau_idioma"];
  32.             $_SESSION["deshabilitat"]=$array["deshabilitat"];
  33.            
  34.             $idioma = $_SESSION["clau_idioma"];
  35.             if ($idioma == 1){
  36.                 $_SESSION["idioma"] = "cs";
  37.             }else{
  38.                 $_SESSION["idioma"] = "ct";
  39.             }
  40.             $_SESSION["idiomes"] = "cs,ct";
  41.            
  42.             $deshabilitat = $_SESSION["deshabilitat"];
  43.                
  44.             if ($deshabilitat == 1){
  45.             ?>
  46.                 <script language="JavaScript" type="text/JavaScript">
  47.                 <!--
  48.    
  49.                 alert('<?=texte($_SESSION["idioma"],"txtdeshabilitat")?>');
  50.                 top.location = "index.php";
  51.    
  52.                 -->
  53.                 </script>
  54.             <?php
  55.             }
  56.             header("Location:main.php");
  57.         }  
  58.     }else{
  59.         echo "<script language='JavaScript'> alert('Login INCORRECTE');</script>";
  60.         echo "<SCRIPT LANGUAGE='JavaScript'> location.href='index.php'; </SCRIPT>";
  61.         }
  62.    
  63. ?>
  #4 (permalink)  
Antiguo 22/09/2010, 05:33
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

Buenas de nuevo,

He estado observando más atentamente tu código, y me he percatado que lo que tenias en un principio "estaba bien". O sea, no hacía falta añadir lo que te comente...

He dejado tu código así y funciona:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("include/cons.php");
  4. include_once("include/inctexteadmin.php");
  5.  
  6.  
  7. $login = htmlspecialchars(trim($_POST['login']));
  8. $pass = md5(trim($_POST['pass']));
  9.  
  10.  
  11.    
  12.     $query = sprintf("SELECT id_usuari, password, codi, sam, clau_permis, clau_idioma, deshabilitat FROM usuaris WHERE codi='".$login."' and password='".$pass."'");
  13.    
  14.    
  15.     $result=mysql_db_query($database,$query,$link) or die (mysql_error());
  16.     if (mysql_num_rows($result)>0){
  17.  
  18.         $array=mysql_fetch_array($result);
  19.        
  20.             $_SESSION["id_usuari"]=$array["id_usuari"];
  21.             $_SESSION["codi"]=$array["codi"];
  22.             $_SESSION["password"]=$array["password"];
  23.             $_SESSION["sam"]=$array["sam"];
  24.             $_SESSION["clau_permis"]=$array["clau_permis"];
  25.             $_SESSION["clau_idioma"]=$array["clau_idioma"];
  26.             $_SESSION["deshabilitat"]=$array["deshabilitat"];
  27.            
  28.             $idioma = $_SESSION["clau_idioma"];
  29.             if ($idioma == 1){
  30.             if ($idioma == 1){
  31.                 $_SESSION["idioma"] = "cs";
  32.             }else{
  33.                 $_SESSION["idioma"] = "ct";
  34.             }
  35.             $_SESSION["idiomes"] = "cs,ct";
  36.            
  37.             $deshabilitat = $_SESSION["deshabilitat"];
  38.                
  39.             if ($deshabilitat == 1){
  40.             ?>
  41.                 <script language="JavaScript" type="text/JavaScript">
  42.                 <!--
  43.    
  44.                 alert('<?=texte($_SESSION["idioma"],"txtdeshabilitat")?>');
  45.                 top.location = "index.php";
  46.    
  47.                 -->
  48.                 </script>
  49.             <?php
  50.             }
  51.             @header("Location:main.php");
  52.          
  53.     }else{
  54.         echo "<script language='JavaScript'> alert('Login INCORRECTE');</script>";
  55.         echo "<SCRIPT LANGUAGE='JavaScript'> location.href='index.php'; </SCRIPT>";
  56.         }
  57.    
  58. ?>

Eso sí, cuando los datos eran los correctos... marcaba un error de cabecera en header (Warning: Cannot modify header information - headers already sent by...). No se si lo sabes, pero eso es un problema debido a que estas enviando antes de header, contenido y, antes de header, session_start... no puede haber nada. Ni un espacio en blanco siquiera.

Te lo he suprimido con el operador @. Se que no es lo más adecuado, pero bueno...

Saludos,
  #5 (permalink)  
Antiguo 22/09/2010, 07:06
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

No sé por que dices que ya estaba bien, si no está implementada la comprovación de usuario erróneo!
El alert que hay al final, salta cuando no se han encontrado registros en la BD, pero no controla el usuario.

Otra cosa, que queires decir con que no puede haber NADA delante de un header? A mi no me sale ningún error.

Pero bueno, seguimos con lo mismo, no me hace la comprobación :(
  #6 (permalink)  
Antiguo 22/09/2010, 07:28
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

Tiene que funcionar, puesto que a mi me funcionó.

Una pregunta, en el campo password de tu base de datos, ¿como tienes almacenada la contraseña?

Fijate bien, pués a mi en un principio no me funcionaba porque en el campo password la contraseña la tenia almacenada así: 123456 y cuando yo enviaba la contraseña desde el formulario, me decía que el login era incorrecto ya que por un lado estaba enviando la contreseña cifrada en MD5, cuando en la base de datos no la tenia en md5.

Fijate bien en eso. Ya te digo, debe de funcionar.

El alert que hay al final tambien controla al usuario... Haz lo que te he comentado y cuando te funcione, verás que si lo controla...

Sobre lo de header me refiero a que cuando tu haces esto:

header("Location:main.php");

No puede haber ningún código ni espacio, antes de eso, de lo contrario te mostrara un error. Para que no te muestre ningún error, le he puesto el @.

Saludos,
  #7 (permalink)  
Antiguo 22/09/2010, 07:35
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

En el campo password de la BD la tengo almacenada como MD5.

Arriba de todo hago el $pass = md5(trim($_POST['pass'])); por lo que $pass pasa a estar en MD5 no?

Entonces al comparar eso con $password que es el array de la BD, que también está en MD5 me tendría que funcionar.

Pero nO!!!1

:(
  #8 (permalink)  
Antiguo 22/09/2010, 07:54
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

Si, pass pasa a entrar en md5, pero una vez más te digo, en el campo de password que tienes en la base de datos, mira a ver como tienes almacenada la contraseña.

Si la tienes por ejemplo asi: 123456 es incorrecto, no funcionara.

La debes de tener en md5, asi por ejemplo: e10adc3949ba59abbe56e057f20f883e


Por lo que veo no te esta funcionando por ese motivo.

Mira, asi lo tengo yo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("config.php");
  4.  
  5.  
  6. $login = 'osquitar';
  7. $pass = '123456';
  8.  
  9. $login = htmlspecialchars(trim($login));
  10. $pass = md5(trim($pass));
  11.  
  12.  
  13.    
  14.     $query = sprintf("SELECT * FROM ocdgf_usuarios WHERE usuario='$login' and password='$pass'");
  15.    
  16.    
  17.     $result=mysql_db_query($database,$query,$conexion) or die (mysql_error());
  18.     if (mysql_num_rows($result)>0){
  19.  
  20.         $array=mysql_fetch_array($result);
  21.        
  22.             $_SESSION["id_usuari"]=$array["id_usuari"];
  23.             $_SESSION["codi"]=$array["codi"];
  24.             $_SESSION["password"]=$array["password"];
  25.             $_SESSION["sam"]=$array["sam"];
  26.             $_SESSION["clau_permis"]=$array["clau_permis"];
  27.             $_SESSION["clau_idioma"]=$array["clau_idioma"];
  28.             $_SESSION["deshabilitat"]=$array["deshabilitat"];
  29.            
  30.             $idioma = $_SESSION["clau_idioma"];
  31.             if ($idioma == 1){
  32.                 $_SESSION["idioma"] = "cs";
  33.             }else{
  34.                 $_SESSION["idioma"] = "ct";
  35.             }
  36.             $_SESSION["idiomes"] = "cs,ct";
  37.            
  38.             $deshabilitat = $_SESSION["deshabilitat"];
  39.                
  40.             if ($deshabilitat == 1){
  41.             ?>
  42.                 <script language="JavaScript" type="text/JavaScript">
  43.                 <!--
  44.    
  45.                 alert('<?=texte($_SESSION["idioma"],"txtdeshabilitat")?>');
  46.                 top.location = "index.php";
  47.    
  48.                 -->
  49.                 </script>
  50.             <?php
  51.             }
  52.             @header("Location:main.php");
  53.          
  54.     }else{
  55.         echo "<script language='JavaScript'> alert('Login INCORRECTE');</script>";
  56.         echo "<SCRIPT LANGUAGE='JavaScript'> location.href='index.php'; </SCRIPT>";
  57.         }
  58.    
  59. ?>

Saludos,
  #9 (permalink)  
Antiguo 22/09/2010, 07:58
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Si, lo tengo asi: e10adc3949ba59abbe56e057f20f883e, en MD5..

No sé que puede pasar. Así lo tengo yo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("include/cons.php");
  4. include_once("include/inctexteadmin.php");
  5.  
  6.  
  7. $login = htmlspecialchars(trim($_POST['login']));
  8. $pass = md5(trim($_POST['pass']));
  9.  
  10.  
  11.     $link=mysql_connect($server,$dbuser,$dbpass) or die ("Impossible connectar amb el servidor");
  12.     $query = sprintf("SELECT id_usuari, password, codi, sam, clau_permis, clau_idioma, deshabilitat FROM usuaris WHERE codi='".$login."' and password='".$pass."'");
  13.    
  14.    
  15.     $result=mysql_db_query($database,$query,$link) or die (mysql_error());
  16.     //$n = mysql_num_rows($result) or die (mysql_error());
  17.     echo "hola";
  18.     if(mysql_num_rows($result)>0){ //si la consulta ens retorna resultats
  19.         echo "<script language='JavaScript'> alert('Consulta OK.');</script>";
  20.         $array=mysql_fetch_array($result);
  21.         //echo $array["password"];
  22.         $password=$array["password"];
  23.         $codi=$array["codi"];
  24.         if ($password != $pass){ //comprovem que l'usuari i la pass siguin correctes
  25.             echo "hola";
  26.             echo "<script language='JavaScript'> alert('Contraseña incorrecta.');</script>";
  27.             echo "<META HTTP-EQUIV='Refresh' CONTENT='0;url='index.php'>";
  28.         }elseif ($codi != $login){
  29.             echo "hola";
  30.             echo "<script language='JavaScript'> alert('Usuario incorrecto.');</script>";
  31.             echo "<META HTTP-EQUIV='Refresh' CONTENT='0;url='index.php'>";
  32.         }elseif (($password != $pass) && ($codi != $login)){
  33.             echo "hola";
  34.             echo "<script language='JavaScript'> alert('Usuario y contraseña incorrectos.');</script>";
  35.             echo "<META HTTP-EQUIV='Refresh' CONTENT='0;url='index.php'>";
  36.         }else{
  37.        
  38.             $_SESSION["id_usuari"]=$array["id_usuari"];
  39.             $_SESSION["codi"]=$array["codi"];
  40.             $_SESSION["password"]=$array["password"];
  41.             $_SESSION["sam"]=$array["sam"];
  42.             $_SESSION["clau_permis"]=$array["clau_permis"];
  43.             $_SESSION["clau_idioma"]=$array["clau_idioma"];
  44.             $_SESSION["deshabilitat"]=$array["deshabilitat"];
  45.            
  46.             $idioma = $_SESSION["clau_idioma"];
  47.             if ($idioma == 1){
  48.                 $_SESSION["idioma"] = "cs";
  49.             }else{
  50.                 $_SESSION["idioma"] = "ct";
  51.             }
  52.             $_SESSION["idiomes"] = "cs,ct";
  53.            
  54.             $deshabilitat = $array["deshabilitat"];
  55.                
  56.             if ($deshabilitat == 1){ //si l'usuari està deshabilitat
  57.             ?>
  58.                 <script language="JavaScript" type="text/JavaScript">
  59.                 <!--
  60.    
  61.                 alert('<?=texte($_SESSION["idioma"],"txtdeshabilitat")?>');
  62.                 top.location = "index.php";
  63.    
  64.                 -->
  65.                 </script>
  66.             <?php
  67.             }
  68.             @header("Location:main.php");
  69.         }  
  70.     }else{
  71.         echo "<script language='JavaScript'> alert('Login INCORRECTE');</script>";
  72.         echo "<SCRIPT LANGUAGE='JavaScript'> location.href='index.php'; </SCRIPT>";
  73.         }
  74.    
  75. ?>
  #10 (permalink)  
Antiguo 22/09/2010, 08:04
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Bueno,ahora si que no lo entiendo. Si pongo el user o la pass mal, me sale el ultimo alert, el de Login INCORRECTO, pero no sale nunca nuinguno de los 3 de arriba.

Pero no es supone que el último alert es para cuando no encuentras registros en el SELECT???
  #11 (permalink)  
Antiguo 22/09/2010, 08:22
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

El último alert es para cuando no encuentre registros en la tabla. O sea, para cuando haya 0 registros. Pero también sirve para cuando el usuario y password no coinciden.

Ya que si no coinciden, es como si no existiera ese usuario con ese password, por eso te muestra también el alert.
Por tanto, si en nuestra base de datos tenemos 0 registros, saldrá el alert, pero, si tenemos registros, pero no coinciden, también saldrá el alert.

Por tanto, esos if que tienes por medio ($password != $pass, etc...) no hacen falta.

  #12 (permalink)  
Antiguo 22/09/2010, 08:25
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Perfecto muchas gracias por tu ayuda crack :)
  #13 (permalink)  
Antiguo 22/09/2010, 08:28
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Ah, otra cosa.

Cuando me sale el alert último, me sale bajo la página de comprobación login, que como no hay nada, está blanca.

Me gustaría que el alert saliera en la misma página del formulario de login, ya que queda más bonito.

Como se hace?
  #14 (permalink)  
Antiguo 22/09/2010, 08:41
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

¿Lo que quieres hacer es que en la página que contiene el formulario de login, en el caso de que los datos sean incorrectos, el alert te aparezca en esa misma página?

Si es asi se me ocurre utilizar switch.
O sea, el código que hace la comprobación (del que hemos esta hablando durante todo el tema) habría que incluirlo dentro de la pagina que contiene el formulari ode login. Pero, abría que incluidlo (el codigo de la comprobación) dentro de un switch.

¿Sabes cómo te digo?

Saludos,
  #15 (permalink)  
Antiguo 22/09/2010, 09:03
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Controlar usuario inexistente en BD

Si, pero porque un switch y no un if?

Entonces en lugar de pasar el user y pass por POST, al estar en la misma página, se hace directo?
  #16 (permalink)  
Antiguo 22/09/2010, 09:18
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Controlar usuario inexistente en BD

No se, es la costumbre. Yo cuando necesito hacer cosas de estas, suelo utilizar switch

Cita:
Entonces en lugar de pasar el user y pass por POST, al estar en la misma página, se hace directo?
No. Debes de continuar pasando el user y pass por POST...

Aquí un ejemplo:

Suponiendo que la página que contiene el formulario de login, se llama formulario_login.php:

Código PHP:
Ver original
  1. <?php
  2. $accion = $_GET['accion'];
  3.  
  4. switch ($accion) {
  5.     case 'login':
  6.         //Aqui iria todo el código de comprobacion. O sea, el que hemos estado       hablando durante todo el tema
  7.     break;
  8. }
  9. ?>
  10. <form method="post" action="formulario_login.php?accion=login">
  11.         <label for="usuario">Usuario:</label>
  12.             <input type="text" id="usuario" name="usuario">
  13.                 <label for="pass">Contraseña:</label>
  14.                     <input type="password" id="usuario" name="pass">
  15.                         <input type="submit" id="submit" value="Ingresar">
  16.                        
  17. </form>

Saludos,

Etiquetas: bd, controlar, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.