Foros del Web » Programando para Internet » PHP »

PHP OO Error con php..

Estas en el tema de Error con php.. en el foro de PHP en Foros del Web. buenas estimados, soy nuevito en php y tengo un proyecto en el cual estoy trabajando... por el momento segui un tutorial sobre un sistema de ...
  #1 (permalink)  
Antiguo 08/08/2013, 16:48
 
Fecha de Ingreso: agosto-2013
Ubicación: San Juan
Mensajes: 7
Antigüedad: 10 años, 8 meses
Puntos: 0
Información Error con php..

buenas estimados, soy nuevito en php y tengo un proyecto en el cual estoy trabajando... por el momento segui un tutorial sobre un sistema de login con niveles... todo va bien... hasta que decidi probar y me salio este error:

Código:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\1\check.php on line 35
el codigo de check.php es este:

Código PHP:
<?php
 
session_start
();
 
include 
"conn.php";
 
$link=Conectarse();
 
$login $_POST['user'];
 
$pass $_POST['pass'];
 
$pass=sha1(md5($pass));
 
$query sprintf("SELECT users.id,
 
users.user,
 
users.dni,
 
users.nombre,
 
users.apellido,
 
users.nivel,
 
users.mail
 
FROM users WHERE users.user='%s'&& users.pass = '%s'"
,
 
$login$pass);
 
$result=mysql_query($query,$link);
 
if(
mysql_num_rows($result)){
 
$array=mysql_fetch_array($result);
 
$_SESSION["id_usuario"]= $array["id"];

$_SESSION["user"]= $array["user"];
 
$_SESSION["dni"]= $array["dni"];
 
$_SESSION["nombre"]= $array["nombre"];
 
$_SESSION["apellido"]= $array["apellido"];
 
$_SESSION["nivel"]= $array["nivel"];
 
$_SESSION["mail"]= $array["mail"];
 
header("Location:home.php");
 
} else {
 
echo 
"<h2>Login o Password Incorrectos</h2>";
 
}
 
?>
alguien me podria sugerir alguna solucion al error??

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 08/08/2013, 16:58
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Error con php..

El error dice que el resultado de tu consulta mysql es erroneo.
Prueba así...

$query = "SELECT users.id,

users.user,

users.dni,

users.nombre,

users.apellido,

users.nivel,

users.mail

FROM users WHERE users.user='$login' && users.pass = '$pass'";

$result=mysql_query($query,$link);
//coloca una revisión de tu consulta con mysql_error
  #3 (permalink)  
Antiguo 08/08/2013, 17:07
 
Fecha de Ingreso: agosto-2013
Ubicación: San Juan
Mensajes: 7
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Error con php..

gracias por responder tan rapido, cambie la linea como dices... pero sigue dando el mismo error... esta en la linea 35 que seria esta:

Código PHP:
if(mysql_num_rows($result)){ 
y otra cosa, como hago para poner una revision de consulta con mysql_error???
  #4 (permalink)  
Antiguo 08/08/2013, 17:13
 
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error con php..

Hola te recomiendo primero imprimas la consulta con las variables es decir:

Código PHP:
Ver original
  1. echo $query; exit;

antes de

Código PHP:
Ver original
  1. $result=mysql_query($query,$link);

para revisar si la consulta se está armando bien, para esto una ves que obtengas el resultado de la variable puedes ejecutarla directamente en mysql.
  #5 (permalink)  
Antiguo 08/08/2013, 17:21
 
Fecha de Ingreso: agosto-2013
Ubicación: San Juan
Mensajes: 7
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Error con php..

bsanchez0323, ahora en la pagina de check.php, sale:

Código HTML:
SELECT users.id, users.user, users.dni, users.nombre, users.apellido, users.nivel, users.mail FROM users WHERE users.user='login'&& users.pass = 'pass'
como sigo?
  #6 (permalink)  
Antiguo 08/08/2013, 17:24
 
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error con php..

Ok y tienes algun usuario llamado user que tenga la contraseña pass? y tu introduces esos datos en el usuario y contraseña del formulario? xq si no x ahí estamos empezando mal.
  #7 (permalink)  
Antiguo 08/08/2013, 17:25
 
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error con php..

Puedes colocar el código de tu formulario donde introduces usuario y contrseña?
  #8 (permalink)  
Antiguo 08/08/2013, 18:18
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 3 meses
Puntos: 9
Respuesta: Error con php..

Cambia
Código PHP:
Ver original
  1. $result=mysql_query($query,$link);
Por
Código PHP:
Ver original
  1. $result=mysql_query($query,$link) or die (mysql_Error());

Y te dara un error mas exacto C:
  #9 (permalink)  
Antiguo 09/08/2013, 06:56
 
Fecha de Ingreso: agosto-2013
Ubicación: San Juan
Mensajes: 7
Antigüedad: 10 años, 8 meses
Puntos: 0
Información Respuesta: Error con php..

Cita:
Iniciado por omarinfinito Ver Mensaje
Cambia
Código PHP:
Ver original
  1. $result=mysql_query($query,$link);
Por
Código PHP:
Ver original
  1. $result=mysql_query($query,$link) or die (mysql_Error());

Y te dara un error mas exacto C:
ese es el error...

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM users WHERE user='login'&& pass = 'pass'' at line 17


y lo que tengo en esa linea es esto: users.user,


y para el que me pidio el codigo de donde pongo el user y pass... aca va..

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<title>GDP - Gestion de Datos Personales (San Juan)</title>
<link rel="stylesheet" href="./css/style.css" type="text/css" media="all">
</head>
<body>
<div id="header">
<center>

<div class="container1">
<img src="./img/logo1.png"><br>
<h2>Bienvenidos a GDP</h2>
<form name="ingreso" action="check.php" method="post">
<dl>
<dt>Usuario:</dt>
<dt><input type="text" name="user"><br></dt>
<br>
<dt>Contraseña:</dt>
<input type="password" name="pass"><br>
<br>
<dt><input type="submit" value="Enviar"> o <a href="/recuperar.php">Olvide mi contraseña</a></dt>

</dl>
</form>

</center>
</div>
</body>
</html> 
  #10 (permalink)  
Antiguo 09/08/2013, 09:24
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 3 meses
Puntos: 9
Respuesta: Error con php..

Prueba cambiando && por AND
  #11 (permalink)  
Antiguo 09/08/2013, 09:34
 
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error con php..

Hola

Yo relicé algunas pruebas y al parecer algo está mal en tu consulta o en tu base de datos como bien lo dice el error que te arroja ya que yo lo tengo así y funciona muy bien.

Comparalo y me dices como te va.

conn.php

Código PHP:
Ver original
  1. <?
  2. $conexion = mysql_connect("localhost", "root","");
  3. if  (!$conexion) {
  4.     die('No pudo conectarse: ' . mysql_error());
  5. }
  6. mysql_select_db("foros",$conexion);?>


check.php

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include "conn.php";
  5.  
  6. //$link=Conectarse();
  7.  
  8. $login = $_POST['user'];
  9. $pass = $_POST['pass'];  
  10. $pass=sha1(md5($pass));
  11.  
  12. $query = sprintf("SELECT users.id, users.user, users.dni, users.nombre, users.apellido, users.nivel, users.mail FROM users WHERE users.user='%s'&& users.pass = '%s'", $login, $pass);
  13.  
  14. $result=mysql_query($query,$conexion);
  15.  
  16. if(mysql_num_rows($result)){
  17.  
  18. $array=mysql_fetch_array($result);
  19.  
  20. $_SESSION["id_usuario"]= $array["id"];
  21. $_SESSION["user"]= $array["user"];
  22. $_SESSION["dni"]= $array["dni"];
  23. $_SESSION["nombre"]= $array["nombre"];
  24. $_SESSION["apellido"]= $array["apellido"];
  25. $_SESSION["nivel"]= $array["nivel"];
  26. $_SESSION["mail"]= $array["mail"];
  27.  
  28. header("Location:home.php");
  29.  
  30. } else {
  31.  
  32. echo "<h2>Login o Password Incorrectos</h2>";
  33.  
  34. }
  35.  
  36. ?>

BD

id user dni nombre apellido nivel mail
1 admin dni B Sanchez 1 [email protected] pass = 90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad
  #12 (permalink)  
Antiguo 10/08/2013, 08:56
 
Fecha de Ingreso: agosto-2013
Ubicación: San Juan
Mensajes: 7
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Error con php..

gracias por sus respuestas... pero lo pude solucionar...

modifique el archivo check.php a esto:

Código PHP:
<?php
 
session_start
();
 
include 
"conn.php";

include 
"error_login.php";
 
$link=Conectarse();
 
$login $_POST['user'];
 
$pass $_POST['pass'];
 
$pass=sha1(md5($pass));
 
$query sprintf("SELECT id, user, pass, level, dni, name, apellido, mail FROM users WHERE user='login' && pass = 'pass'",
 
$login$pass);

# echo $result; exit;

$result=mysql_query($query,$link) or die (mysql_Error());
 
 if (
mysql_num_rows($result)) 
 
 {
 
 
$array=mysql_fetch_array($result);
 
 
$_SESSION["id"]= $array["id"];

 
$_SESSION["user"]= $array["user"];
 
 
$_SESSION["pass"]= $array["pass"];
 
 
$_SESSION["level"]= $array["level"];
 
 
$_SESSION["dni"]= $array["dni"];
 
 
$_SESSION["name"]= $array["name"];
 
 
$_SESSION["apellido"]= $array["apellido"];
 
 
$_SESSION["mail"]= $array["mail"];
 
header("Location: home.php");

 
} else {

header("Location: index.php");

exit;

}
 
?>
lo que no puedo solucionar es que cuando ingresan mal el user y pass... en vez de redirigir a index.php para que se vuelvan a loguear, queda en check.php... y si pongo bien el user y pass... tambien queda ahi... estaran bien los header?
  #13 (permalink)  
Antiguo 12/08/2013, 12:25
 
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 8 meses
Puntos: 2
Respuesta: Error con php..

Probablemente tengas algún error en tu consulta, para no complicarte tanto también puedes utilizar esta forma:

Código PHP:
Ver original
  1. $query = "SELECT users.id, users.user, users.dni, users.nombre, users.apellido, users.nivel, users.mail FROM users WHERE users.user='$login'&& users.pass = '$pass'";

checa bien que los campos conicidan o como te mecionaba anteriormente puedes imprimirla y el resultado ejecutarlo directamente el mysql para verificar que sea error en la consulta.
  #14 (permalink)  
Antiguo 15/08/2013, 15:20
Avatar de balerocms  
Fecha de Ingreso: agosto-2013
Ubicación: MX
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Error con php..

la clase mysql está obsoleta, prueba con mysqli -> multi_query.

http://php.net/manual/en/mysqli.multi-query.php

Etiquetas: mysql, select, sql
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 12:11.