Foros del Web » Programando para Internet » PHP »

Error ingreso unsuario

Estas en el tema de Error ingreso unsuario en el foro de PHP en Foros del Web. Un saludo a todos. Desde un formulario de login vamos a a una pagina para crear las sesiones y redirigir a otra. Código PHP: <?php ...
  #1 (permalink)  
Antiguo 28/06/2013, 06:48
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Error ingreso unsuario

Un saludo a todos.
Desde un formulario de login vamos a a una pagina para crear las sesiones y redirigir a otra.

Código PHP:
<?php
include ("../Includes/conexion.php");
 
$usuario $_POST['usuario'];
$password $_POST['password'];
 
$query_consulta printf("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'");
$login mysql_query($query_consulta);
 
 if (
mysql_num_rows($login) == 1) {
 
$_SESSION['usuario_sesion'] = $usuario;
 
$_SESSION['password_sesion'] = $password;
 include (
"principal.php");
 }else {
  include (
"index.php");
  }
?>
Esto me da error en esta linea "if (mysql_num_rows($login) == 1) {"
el error:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

Alguna sugerencia ??

Muchas gracias de antemano: Manyblue
  #2 (permalink)  
Antiguo 28/06/2013, 07:13
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 12 años, 2 meses
Puntos: 331
Respuesta: Error ingreso unsuario

La consulta devuelve error por que la sentencia sql está mal. Utilizas mal la función printf, http://www.php.net/manual/es/function.printf.php
lo que tu quieres es probablemente sprintf(),
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 28/06/2013, 09:07
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 14 años, 2 meses
Puntos: 36
Respuesta: Error ingreso unsuario

Por que no pruebas, haciendo el chequeo de esta forma:

Código PHP:
Ver original
  1. $usuario = $_POST['usuario'];
  2. $password = $_POST['password'];
  3.  
  4. $query_consulta = ("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'");
  5. $login = mysql_query($query_consulta);
  6.  
  7.  if (mysql_num_rows($login) == 1) {
  8.  $_SESSION['usuario_sesion'] = $usuario;
  9.  $_SESSION['password_sesion'] = $password;
  10.  include ("principal.php");
  11.  }else {
  12.   include ("index.php");
  13.   }
  #4 (permalink)  
Antiguo 01/07/2013, 01:46
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Error ingreso unsuario

Muchas gracias por vuestras respuestas, haciendo lo que proponeis, sigue dandome el error.

He sacado "printf()" y lo he dejado asi:
Código PHP:
$query_consulta = ("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'"); 
Pero como os dije, sigue dandome el error en la linea:
if (mysql_num_rows($login) == 1) {

Alguna otra sugerencia ??
  #5 (permalink)  
Antiguo 01/07/2013, 02:05
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 10 años, 5 meses
Puntos: 12
Respuesta: Error ingreso unsuario

Fuera esos paréntesis, que como no tienes ninguna función ya sobran.

Código PHP:
$query_consulta "SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'";
$login mysql_query($query_consulta); 

Además, te podrias ahorra una línea uniendo todo en la misma sentencia:

Código PHP:
$login mysql_query("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'"); 
  #6 (permalink)  
Antiguo 01/07/2013, 04:11
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Error ingreso unsuario

Código PHP:
<?php
include ("../Includes/conexion.php");
 
$usuario $_POST['usuario'];
$password $_POST['password'];
$login mysql_query("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'"); 
    if (
mysql_num_rows($login) == 1) {
        
$_SESSION['usuario_sesion'] = $usuario;
        
$_SESSION['password_sesion'] = $password;
        include (
"principal.php");
        }else {
         include (
"index.php");
         }
?>
Me sale este error:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\blog_2\login\conectar.php on line 11

La linea 11 es esta:
if (mysql_num_rows($login) == 1) {

Alguna otra sugerencia ??

Muchísimas gracias por vuestras respuestas: Manyblue
  #7 (permalink)  
Antiguo 01/07/2013, 04:28
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 10 años, 5 meses
Puntos: 12
Respuesta: Error ingreso unsuario

No sé cómo tendrás tu archivo de conexión. Los míos suelen ser así:


Código PHP:
$con mysql_connect("127.0.0.1","user","pass")
    or die(
"No se pudo realizar la conexion");
mysql_select_db("base de datos",$con)
    or die(
"No se pudo seleccionar la BD"); 

Y luego en las select pasas la conexion por parametros:

Código PHP:
$login mysql_query("SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'",$con); 
  #8 (permalink)  
Antiguo 01/07/2013, 06:16
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 12 años, 5 meses
Puntos: 21
Respuesta: Error ingreso unsuario

Ésta consulta está errada:
Código SQL:
Ver original
  1. SELECT * FROM blob_usuarios WHER usuario = '$usuario' AND password = '$password'

La sintaxis para SQL es WHERE, y no WHER...
Código SQL:
Ver original
  1. SELECT * FROM blob_usuarios WHERE usuario = '$usuario' AND password = '$password'
  #9 (permalink)  
Antiguo 01/07/2013, 13:33
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Error ingreso unsuario

De ninguna de las maneras me funciona, sigue el error.

conexion.php

Código PHP:
<?php
$host 
"localhost";
$usuario "root";
$password "";
$basedatos "curso_php_db";
 
$conexiondb mysql_connect($host$usuario$password) or die (mysql_error());
if (!
$conexiondb) {
 die(
'Error al conectar al servidor de base de datos' mysql_error());
 }
$selecciondb mysql_select_db($basedatos) or die (mysql_error());
if (!
$selecciondb) {
 die(
'Error al seleccionar la  base de datos: $basedatos <br>' mysql_error());
 }
?>
index.php

Código HTML:
<form id="form1" name="form1" method="post" action="conectar.php">
  <table width="700" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td colspan="2" align="center" valign="middle" bgcolor="#FF0000" class="blanco">LOGIN</td>
    </tr>
    <tr>
      <td width="329" align="right" valign="top"><strong>Usuario:</strong></td>
      <td width="371" align="left" valign="bottom"><label for="password"></label>
      <input name="usuario" type="text" id="usuario" size="20" /></td>
    </tr>
    <tr>
      <td align="right" valign="top"><strong>Contraseña:</strong></td>
      <td><label for="textfield3"></label>
      <input name="password" type="text" id="password" size="15" /></td>
    </tr>
    <tr>
      <td align="right" valign="top"></td>
      <td><input type="submit" name="button" id="button" value="Acceder" /></td>
    </tr>
  </table>
</form> 
conectar.php

Código PHP:
<?php
 
include ("../Includes/conexion.php");
 
$usuario $_POST['usuario'];
$password $_POST['password'];
 
$login mysql_query("SELECT * FROM blob_usuarios WHERE usuario = '$usuario' AND password = '$password'");
    if (
mysql_num_rows($login) == 1) {
       
$_SESSION['usuario_sesion'] = $usuario;
       
$_SESSION['password_sesion'] = $password;
       include (
"principal.php");
       }else {
       include (
"index.php");
      }
?>
Alguna otra sugerencia ??

Muchisimas gracias por vuestras respuestas: Manyblue

PD: hago un echo en conexion.php y me conecta bien.

Última edición por manyblue; 01/07/2013 a las 14:04
  #10 (permalink)  
Antiguo 01/07/2013, 14:10
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Error ingreso unsuario

De esta forma ya no me da error y el form login me redirige a principal.php pero no se si sera la forma correcta.
Uso Wamp Server + dreamweaber CS5.5

conectar.php

Código PHP:
<?php
 
include ("../Includes/conexion.php");
 
$usuario $_POST['usuario'];
$password $_POST['password'];
$login mysql_query("SELECT * FROM blob_usuarios WHERE usuario = '$usuario' AND password = '$password'");
if (@
mysql_num_rows($login) !== 0) {
          
$_SESSION['usuario_sesion'] = $usuario;
          
$_SESSION['password_sesion'] = $password;
           include (
"principal.php");
           }else {
           include (
"index.php");
           }
?>
Acepto sugerencias.

Muchisimas gracias por vuestras respuestas: Manyblue
  #11 (permalink)  
Antiguo 02/07/2013, 07:01
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 12 años, 5 meses
Puntos: 21
Respuesta: Error ingreso unsuario

te falta el session_start() al principio...

Código PHP:
Ver original
  1. <?php
  2. include ("../Includes/conexion.php");
  3.  
  4. $usuario = $_POST['usuario'];
  5. $password = $_POST['password'];
  6. $login = mysql_query("SELECT * FROM blob_usuarios WHERE usuario = '$usuario' AND password = '$password'");
  7. if (@mysql_num_rows($login) !== 0) {
  8.           $_SESSION['usuario_sesion'] = $usuario;
  9.           $_SESSION['password_sesion'] = $password;
  10.            include ("principal.php");
  11.            }else {
  12.            include ("index.php");
  13.            }
  14. ?>
  #12 (permalink)  
Antiguo 05/07/2013, 14:39
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Error ingreso unsuario

He estado revisando todo y resulta que el error era de escritura, por no revisar los datos bien.
El error estava en:
SELECT * FROM blob_usuarios WHERE usuario = '$usuario' AND password = '$password'
No es blob_usuarios es blog_usuarios por lo que la cosa me queda de la siguiente manera:

conexion.php

Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$host 
"localhost";
$usuario "root";
$password "";
$basedatos 
"curso_php_db";
$conexiondb mysql_connect($host$usuario$password) or 
die (
mysql_error());
$selecciondb mysql_select_db($basedatos$conexiondb
or die (
mysql_error());
?>
index.php

Código PHP:
<?php
if (isset($_SESSION['usuario_sesion']) && isset($_SESSION['password_sesion'])) {
 
$_SESSION['usuario_sesion'] = "";
    
$_SESSION['password_sesion'] = "";
 unset (
$_SESSION['usuario_sesion']);
 unset(
$_SESSION['password_sesion']);
 
header("Location: video_59_index.php");
 exit;
 }
 
?>
<html>
<head>
</head>
<body>
<form id="form1" name="form1" method="post" action="conectar.php">
  <table width="700" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td colspan="2" align="center" valign="middle" bgcolor="#FF0000" class="blanco">LOGIN</td>
    </tr>
    <tr>
      <td width="329" align="right" valign="top"><strong>Usuario:</strong></td>
      <td width="371" align="left" valign="bottom"><label for="usuario"></label>
      <input name="usuario" type="text" id="usuario" size="20" /></td>
    </tr>
    <tr>
      <td align="right" valign="top"><strong>Contraseña:</strong></td>
      <td><label for="password"></label>
      <input name="password" type="text" id="password" size="15" /></td>
    </tr>
    <tr>
      <td align="right" valign="top"></td>
      <td><input type="submit" name="button" id="button" value="Acceder" /></td>
    </tr>
  </table>
</form>
</body>
</html>
?>
conectar.php

Código PHP:
<?php
include ("conexion.php");
 
$usuario $_POST['usuario'];
$password $_POST['password'];
$login mysql_query("SELECT * FROM blog_usuarios WHERE usuario = '$usuario' AND password = '$password'") or die (mysql_error());
if (
mysql_num_rows($login) == 1) {
          
$_SESSION['usuario_sesion'] = $usuario;
          
$_SESSION['password_sesion'] = $password;
           include (
"principal.php");
           }else {
           include (
"index.php");
           }
?>
principal.php

Código PHP:
<html>
<head>
</head>
<body>
<?php
include ("conexion.php");
if (!isset(
$_SESSION['usuario_sesion']) and !isset($_SESSION['password_sesion'])) {
 
header("Location: index.php");
 exit;
 }
 
$usuario $_SESSION['usuario_sesion'];
$password $_SESSION['password_sesion'];
$login mysql_query("SELECT * FROM blog_usuarios WHERE usuario = '$usuario' AND password = '$password'");
while (
$linea mysql_fetch_array($login)) {
 
$nombre_usuario $linea['usuario'];
 }
?>
<strong>Bienvenido/a:&nbsp; </strong><?php echo $nombre_usuario?><br />
<strong>ESTAS EN LA PAGINA PRINCIPAL ... !!</strong>
</body>
</html>
En fin, todo solucionado, asi que muchisimas gracias por vuestra ayuda.
Un saludo: Manybllue

Etiquetas: formulario, ingreso, mysql, select, 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 06:03.