Foros del Web » Programando para Internet » PHP »

error al ejecutar código en la conexión con la base de datos

Estas en el tema de error al ejecutar código en la conexión con la base de datos en el foro de PHP en Foros del Web. hola un cordial saludo a todos. soy principiante en el tema y tengo un problema con mi código al intentar conectarme con la base de ...
  #1 (permalink)  
Antiguo 19/06/2015, 17:59
MSB
 
Fecha de Ingreso: mayo-2015
Ubicación: Peru
Mensajes: 9
Antigüedad: 8 años, 10 meses
Puntos: 0
Pregunta error al ejecutar código en la conexión con la base de datos

hola un cordial saludo a todos. soy principiante en el tema y tengo un problema con mi código al intentar conectarme con la base de datos. espero puedan ayudarme:

Código PHP:
Ver original
  1. // conexion con la base de datos
  2. <?php
  3. $server="localhost";
  4. $username="root";
  5. $password="############";
  6. $db="logistica_restaurant";
  7. $conex = @mysql_connect($server, $username, $password, $db)
  8.         or die("No se pudo realizar la conexion");
  9.     @mysql_select_db("usuarios",$conex)
  10.         or die("ERROR con la base de datos");
  11.  ?>
  12. <?php
  13. if(!isset($_SESSION['intentos']))
  14.  {$_SESSION['intentos'] = 0 ;
  15.  
  16.         if ($_SESSION['intentos'] < 3 )
  17.         {
  18.        
  19.         $usuario = strip_tags($_POST['usuario']);
  20.         $clave = strip_tags(sha1($_POST['clave']));
  21.  
  22.         $consulta= "SELECT id_usuario,usuario,clave,cargo FROM usuarios WHERE usuario='".$usuario."' AND clave='".$clave."'";
  23.         $resultado= mysql_query($consulta,$conex) or die (mysql_error());
  24.         $fila=mysql_fetch_array($resultado);
  25.  
  26.                 if (!$fila[0])
  27.                 {
  28.                 echo '<script language = javascript>
  29.                 alert("Usuario o contrase?a erroneos, por favor verifique.")
  30.                 self.location = "index.php"
  31.                 </script>';
  32.                 }
  33.                 else
  34.                 {
  35.                 $_SESSION['logged'] = 'yes';
  36.                 $_SESSION['id_usuario'] = $fila['id_usuario'];
  37.                 $_SESSION['nombre'] = $fila['usuario'];
  38.                 $_SESSION['cargo'] = $fila['cargo'];
  39.                 mysql_close($resultado);
  40.                 echo '<script>window.location="logeado.php"</script>';
  41.                 }
  42.          }
  43.          else
  44.          { $_SESSION['intentos'] ++ ;
  45.  
  46.          echo 'El usuario y/o pass son incorrectos.'.$_SESSION['intentos'];
  47.          }
  48. }
  49. else
  50. {
  51.     echo 'limite de intentos superado.' .$_SESSION['intentos'];
  52.     header('Location: http://www.google.com.pe');
  53. }
  54.  
  55. ?>

al ejecutarlo me genera el mensaje de la conexion:

ERROR con la base de datos

no puedo comprender porque.
  #2 (permalink)  
Antiguo 19/06/2015, 19:33
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: error al ejecutar código en la conexión con la base de datos

Al intentar crear una conexión con la vieja y obsoleta extensión mysql_*, el cuarto parámetro que recibe la función mysql_connect no debe de ser el nombre de la base de datos sino un valor booleano que determinará si se creará un nuevo enlace hacia la conexión o si se tomará el que existe (si hay uno, si no, lo crea).

Solo como consejo, quita los arroba, lo único que generas es ocultar los mensajes de error y así es difícil depurar el código.

Saludos

EDITO: Usa la función mysql_error para conocer el error que está ocurriendo.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 19/06/2015 a las 19:57 Razón: Función para ver el mensaje de error
  #3 (permalink)  
Antiguo 19/06/2015, 20:46
MSB
 
Fecha de Ingreso: mayo-2015
Ubicación: Peru
Mensajes: 9
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: error al ejecutar código en la conexión con la base de datos

ya me doy cuenta del error en esta linea:

Código PHP:
Ver original
  1. @mysql_select_db("usuarios",$conex)

ya que mi base de datos se llama logistica_restaurant y "usuarios es mi tabla"

tan bien quite las arrobas pero al correrlo se me genera el siguiente error:

Warning: mysql_close(): supplied resource is not a valid MySQL-Link resource in D:....... line 39.

e inmediatamente después aparece la pagina de www.google.com ; pagina que debería aparecer al sobrepasar los tres intentos fallidos al loguearse.

que podrá estar pasando?
  #4 (permalink)  
Antiguo 19/06/2015, 22:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: error al ejecutar código en la conexión con la base de datos

La función mysql_close sirve para cerrar la conexión. Esta puede funcionar sin pasarle argumentos, con lo cual se cerraría la última conexión realizada que, en tu caso, es la única, pero si le vas a pasar argumentos, tiene que ser la variable de conexión, es decir, $conex. La variable $resultado solo contiene el conjunto de resultados producto de la búsqueda en la base de datos y al no ser el enlace de la conexión abierta, aparece ese mensaje de error.

Tienes que leer el manual, estás cometiendo errores muy básicos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 20/06/2015, 06:11
MSB
 
Fecha de Ingreso: mayo-2015
Ubicación: Peru
Mensajes: 9
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: error al ejecutar código en la conexión con la base de datos

hola alexis; te comento que el logrado correr sin errores el código, tuve que subir el contador hacia el if de arriba ya que no estaba contando , ademas eliminar algunas cosas que estaban demás y bueno me quedo de esta forma el login.php

Código PHP:
Ver original
  1. <?php
  2. $server="localhost";
  3. $username="root";
  4. $password="simplementemas";
  5. $db="logistica_restaurant";
  6. $conex = mysql_connect($server, $username, $password, $db)
  7.         or die("No se pudo realizar la conexion");
  8.     mysql_select_db("logistica_restaurant",$conex)
  9.         or die("ERROR con la base de datos");
  10.  ?>
  11. <?php
  12. if(!isset($_SESSION['intentos']))
  13.  {$_SESSION['intentos'] = 0 ;}
  14.  
  15.         if ($_SESSION['intentos'] < 3 )
  16.         {
  17.        
  18.         $usuario = strip_tags($_POST['usuario']);
  19.         $clave = strip_tags(sha1($_POST['clave']));
  20.  
  21.         $consulta= "SELECT id_usuarios,usuario,clave,cargo FROM usuarios WHERE usuario='".$usuario."' AND clave='".$clave."'";
  22.         $resultado= mysql_query($consulta,$conex) or die (mysql_error());
  23.         $fila=mysql_fetch_array($resultado);
  24.  
  25.                 if (!$fila[0])
  26.                 {
  27.                 $_SESSION['intentos'] ++ ;
  28.                 echo '<script language = javascript>
  29.                 alert("Usuario o contrase?a erroneos, por favor verifique.")
  30.                 self.location = "login.html"
  31.                 </script>';
  32.                
  33.                 }
  34.                 else
  35.                 {
  36.                 $_SESSION['logged'] = 'yes';
  37.                 $_SESSION['id_usuarios'] = $fila['id_usuarios'];
  38.                 $_SESSION['nombre'] = $fila['usuario'];
  39.                 $_SESSION['cargo'] = $fila['cargo'];
  40.                 mysql_close($conex);
  41.                 echo '<script>window.location="logeado.php"</script>';
  42.                 }
  43.         }      
  44.         else
  45.         {
  46.  
  47.         echo '<script language = javascript>
  48.                 alert("limite de intentos superado.")
  49.                 self.location = "http://www.google.com.pe"
  50.                 </script>';
  51.        }
  52.  
  53. ?>

te agradezco por la ayuda brindada;

ahora tengo otra duda como haría para que si el usuario pierde u olvida su contraseña se le pueda enviar a su correo.
que es lo debería agregar a este código?
espero puedas ayudarme ya que estoy mas perdido al respecto.

Última edición por MSB; 20/06/2015 a las 06:22
  #6 (permalink)  
Antiguo 20/06/2015, 09:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: error al ejecutar código en la conexión con la base de datos

Tienes que tener configurado un servidor de correo electrónico y ya con eso puedes usar la función mail para enviar mensaje de correo electrónico.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: mysql, select, sql, 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 14:04.