Problema script mysql_fetch_array()

Iniciado por sergio98, 17 Junio 2014, 14:57 PM

0 Miembros y 2 Visitantes están viendo este tema.

sergio98

El script me da error:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u815225632/public_html/check-login.php on line 17

<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
$user $_REQUEST['user'];
$password $_REQUEST['password'];
$co mysql_connect("---host---""---usuario---""---password---");
mysql_select_db("users"$co);
$se mysql_query("select USER,PASSWORD from users where USER=$user"$co);
echo $user;
echo "<br />";
echo $password;
echo "<br />";
if ($re mysql_fetch_array($se)) {
echo $re['USER'];
echo $re['PASSWORD'];
if ($re['PASSWORD'] == $password) {
echo "OK!";
} else {
echo "NO!";
}
}
?>

</body>
</html>


Gracias y espero q me ayudéis a solucionarlo

marko1985

#1
tienes que pasar otro parámetro a mysql_fetch_array y dejarlo así

Código (php) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
$user $_REQUEST['user'];
$password $_REQUEST['password'];
$co mysql_connect("---host---""---usuario---""---password---");
mysql_select_db("users"$co);
$se mysql_query("select USER,PASSWORD from users where USER='$user'"$co);
echo $user;
echo "<br />";
echo $password;
echo "<br />";
if ($re mysql_fetch_array($seMYSQL_ASSOC)) {
echo $re['USER'];
echo $re['PASSWORD'];
if ($re['PASSWORD'] == $password) {
echo "OK!";
} else {
echo "NO!";
}
}
?>

</body>
</html>


En el ejemplo 3 de esta página verás lo que te comento http://es1.php.net/manual/es/function.mysql-fetch-array.php

PD: También creo que te faltan las comillas simples en la variable de la consulta $user

engel lex

 Marco no es eso, ese parametro es opcional

Porque probablemente el query haya venido vacío y si no retorna nada "se" será false, usa un if para comprobar si no retornó valores

Por cierto ya esta desaconsejado usar la extensión de mysql, en su ligar usar mysqli o mysql pdo, mas info en php.net
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

marko1985

Cita de: engel lex en 17 Junio 2014, 15:24 PM
Marco no es eso, ese parametro es opcional

Porque probablemente el query haya venido vacío y si no retorna nada "se" será false, usa un if para comprobar si no retornó valores

Por cierto ya esta desaconsejado usar la extensión de mysql, en su ligar usar mysqli o mysql pdo, mas info en php.net

Fíjate en el error que le sale:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u815225632/public_html/check-login.php on line 17

También le faltan las comillas simples en el la variable.

Que lo pruebe, es sólo una humilde opinion. Es cierto que está desaconsejado, pero antes de meterse en Clases y objetos debería de funcionar correctamente esto.

sergio98

Gracias por las respuestas... pero nada, me sigue tirando el mismo error.

He probado a poner las comillas simples y también el valor opcional, ¿alguna idea más?
Gracias

engel lex

Has un vardump a "se" dime que retornó
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

marko1985

Cita de: sergio98 en 17 Junio 2014, 15:32 PM
Gracias por las respuestas... pero nada, me sigue tirando el mismo error.

He probado a poner las comillas simples y también el valor opcional, ¿alguna idea más?
Gracias

¿$user y $pass te salen en el navegador? USER y PASS los tienes con mayúsculas en la bbdd.

Prueba sustituyendo la consulta así,

Código (php) [Seleccionar]
$se = mysql_query("SELECT * FROM users where USER='$user'", $co);

sergio98

Cita de: engel lex en 17 Junio 2014, 15:37 PM
Has un vardump a "se" dime que retornó

var_dump($se);
Booleano(false)

Y sí, las variables $user y $password me aparecen en el navegador.

Con el script que me has dado me sigue sin ir.

engel lex

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u815225632/public_html/check-login.php on line 17

la funcion esperaba una variable conteniendo un resource, pero si el query no retorna nada, da false... y false es un booleano, asi que causa error, muestra de eso...

Cita de: sergio98 en 17 Junio 2014, 15:56 PM
var_dump($se);
Booleano(false)

revisa si en tu base de datos estan lo datos bien escritos usa el phpmyadmin para hacer el query
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

EFEX

Esto pasa cuando no verificas primero que se realize la conexion con la db.. conectar con db > no se pudo conectar? > bump error(login incorrecto o whatever).
GITHUB