INICIO FORO
Regresar   Foro Coches > Zona General > Electrónica / Informática


 

programando con php error en login

 
Respuesta

 
Herramientas
Viejo 07-abr-2021, 18:20   #1
potatohead
ForoCoches: Usuario
 
Avatar de potatohead
 
Dic 2019 | 529 Mens.
Lugar: madrid
programando con php error en login

hola shurs me sale este error cuando intento ingresar con un usuario y pass ya registrado el en la bd :


Fatal error: Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in C:\xampp\htdocs\RedSocial\php\IniciarSesion.php:22 Stack trace: #0 C:\xampp\htdocs\RedSocial\php\IniciarSesion.php(22 ): mysqli_fetch_array(false) #1 {main} thrown in C:\xampp\htdocs\RedSocial\php\IniciarSesion.php on line 22


alguien puede decirme que le pasa? llevo horas intentando arreglarlo y no entiendo que puede pasar...
potatohead está desconectado   Responder Con Cita


Viejo 07-abr-2021, 18:23   #2
dagavi_
ForoCoches: Miembro
 
Avatar de dagavi_
 
Jun 2016 | 4.207 Mens.
Pues sin tocar nada de PHP yo diría que la línea 22 de C:\xampp\htdocs\RedSocial\php\IniciarSesion.php, el argumento 1 de mysqli_fetch_array, que supongo que estará en esa linea (y que concretamente pondrá "mysqli_fetch_array(false)"), tiene que ser algo del tipo mysqli_result, pero le has pasado un booleano (el false que se ve)

Pero vamos, ya digo, yo no tengo ni zorra de PHP, simplemente he leido lo que has puesto y te lo he vuelto a escribir.
dagavi_ está desconectado   Responder Con Cita
Viejo 07-abr-2021, 18:25   #3
Topke
ForoCoches: Miembro
 
Avatar de Topke
 
Jun 2019 | 15.445 Mens.
LLevo muchi tiempo sin programar en PHp, pero pega captura de la linea 22 del archivo IniciarSesion.php

Pinta a que estás pasando mal los parámetros a mysqli_fetch_array()
Topke está conectado ahora   Responder Con Cita
Viejo 07-abr-2021, 18:27   #4
potatohead
ForoCoches: Usuario
 
Avatar de potatohead
 
Dic 2019 | 529 Mens.
Lugar: madrid
esta es la pagina la linea 22 seria la de $consulta = mysqli_fetch_array($consulta);




include ("Conexion.php");

session_start();
$_SESSION['login'] = false;


$nickname = $_POST["nickname"];
$password = $_POST["contraseña"];





$consulta = "SELECT *
FROM 'persona'
WHERE Nickname= '$nickname' ";


$consulta = mysqli_query($conexion, $consulta);
$consulta = mysqli_fetch_array($consulta);


if($consulta) {

if (password_verify($password, $consulta['Password'])) {


$_SESSION[login] = true;
$_SESSION[nickname] = $consulta;
$_SESSION[nombre] = $consulta;
$_SESSION[apellidos] = $consulta;
$_SESSION[edad] = $consulta;
$_SESSION[descripcion] = $consulta;
$_SESSION[FotoPerfil] = $consulta;

header('Location: ../miPerfil.php');

} else {
echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";

}
}else{


echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";
}

mysqli_close($conexion);




?>
potatohead está desconectado   Responder Con Cita


Viejo 07-abr-2021, 18:31   #5
potatohead
ForoCoches: Usuario
 
Avatar de potatohead
 
Dic 2019 | 529 Mens.
Lugar: madrid
Cita:
Originalmente Escrito por Topke Ver Mensaje
LLevo muchi tiempo sin programar en PHp, pero pega captura de la linea 22 del archivo IniciarSesion.php

Pinta a que estás pasando mal los parámetros a mysqli_fetch_array()
no consigo encontrar el problema pfff
potatohead está desconectado   Responder Con Cita
Viejo 07-abr-2021, 18:34   #6
Deline
ForoCoches: Miembro
 
Avatar de Deline
 
May 2012 | 5.733 Mens.
Cita:
Originalmente Escrito por potatohead Ver Mensaje
esta es la pagina la linea 22 seria la de $consulta = mysqli_fetch_array($consulta);




include ("Conexion.php");

session_start();
$_SESSION['login'] = false;


$nickname = $_POST["nickname"];
$password = $_POST["contraseña"];





$consulta = "SELECT *
FROM 'persona'
WHERE Nickname= '$nickname' ";


$consulta = mysqli_query($conexion, $consulta);
$consulta = mysqli_fetch_array($consulta);


if($consulta) {

if (password_verify($password, $consulta['Password'])) {


$_SESSION[login] = true;
$_SESSION[nickname] = $consulta;
$_SESSION[nombre] = $consulta;
$_SESSION[apellidos] = $consulta;
$_SESSION[edad] = $consulta;
$_SESSION[descripcion] = $consulta;
$_SESSION[FotoPerfil] = $consulta;

header('Location: ../miPerfil.php');

} else {
echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";

}
}else{


echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";
}

mysqli_close($conexion);




?>
Hace años que no programo y puede que diga una tontería pero al menos te intento ayudar.

No tendría que ser algo como:

$_SESSION[nickname] = $consulta[nickname];
$_SESSION[nombre] = $consulta[nombre];

etc...

pones solo $consulta sin concretar la posición del array.

Si estoy diciendo una tonteria no te rías mucho de mi
Deline está desconectado   Responder Con Cita
Viejo 07-abr-2021, 18:35   #7
dagavi_
ForoCoches: Miembro
 
Avatar de dagavi_
 
Jun 2016 | 4.207 Mens.
Yo más que según el la doc https://www.php.net/manual/es/mysqli.query.php

El query retorna "false" si da error, tal vez el problema esté en que no haces bien la conexión con la DB (pero de nuevo, yo de PHP no se nada y no me voy a poner a mirar no se si hay algo claro que toquen los de PHP que digan "si,e s que antes tienes que hacer un tx start, o yo que se). Pero vamos, lo que dice esa doc es que eso retorna error (que es lo que después metes en la 22, pero la 21 ya te ha falaldo)
dagavi_ está desconectado   Responder Con Cita
Viejo 07-abr-2021, 18:36   #8
potatohead
ForoCoches: Usuario
 
Avatar de potatohead
 
Dic 2019 | 529 Mens.
Lugar: madrid
Cita:
Originalmente Escrito por Deline Ver Mensaje
Hace años que no programo y puede que diga una tontería pero al menos te intento ayudar.

No tendría que ser algo como:

$_SESSION[nickname] = $consulta[nickname];
$_SESSION[nombre] = $consulta[nombre];

etc...

pones solo $consulta sin concretar la posición del array.

Si estoy diciendo una tonteria no te rías mucho de mi



gracias por responder yo igual estoy perdidisimo pero me piden hacerlo en php y estoy flipando .. he probado cambiando lo que me dices y nada sigue igual
potatohead está desconectado   Responder Con Cita
Viejo 07-abr-2021, 18:47   #9
wq!
ForoCoches: Usuario
 
Mar 2017 | 116 Mens.
Me suena que es un error con la conexión a la base de datos como ya te han dicho.
wq! está desconectado   Responder Con Cita
Viejo 07-abr-2021, 19:11   #10
pasanto
LoCuRaaa!!!
 
Avatar de pasanto
 
Oct 2008 | 13.285 Mens.
Lugar: Almeria / Jaén
Cita:
Originalmente Escrito por Deline Ver Mensaje
Hace años que no programo y puede que diga una tontería pero al menos te intento ayudar.

No tendría que ser algo como:

$_SESSION[nickname] = $consulta[nickname];
$_SESSION[nombre] = $consulta[nombre];

etc...

pones solo $consulta sin concretar la posición del array.

Si estoy diciendo una tonteria no te rías mucho de mi
Exactamente por ahí van los tiros, está recorriendo el array pero no le indica las posiciones ni nada.

Al lo, aquí tienes un ejemplo de cómo utilizar el fech_array

https://www.w3schools.com/php/func_m...etch_array.asp

Salu2
pasanto está desconectado   Responder Con Cita
Viejo 08-abr-2021, 04:39   #11
sammau1
ForoCoches: Miembro
 
Ene 2009 | 217 Mens.
Hola buenas.

Pueden ser dos cosas, tampoco me hagas mucho caso que a estas horas ya no soy persona :

1ª : Como te han dicho, problema al realizar la conexion con la DB

2ª : ¿existe el Nickname en la tabla 'persona'?, ten en cuanta que deben coindir mayusculas/minusculas y espacios: ejemplo no es lo mismo "PotatoHead" que "potatohead " o que " PotatoHead"


Si tienes posibilidad de probar la sentencia en mysql directamente, ya sea con phpMyAdmin o con headiSQL, mejor, asi descartas que sea un error de la sentencia o que directamente no devuelve resultado.


Y coincido con lo de poner lo siguiente de esta forma :


Cita:
$_SESSION[nickname] = $consulta[nickname];
$_SESSION[nombre] = $consulta[nombre];

Podrias tambien mirar hacer el mysqli_fetch_array, una vez compruebas que mysqli_query no es false, te dejo la modificacion

Cita:
nclude ("Conexion.php");

session_start();
$_SESSION['login'] = false;


$nickname = $_POST["nickname"];
$password = $_POST["contraseña"];





$consulta = "SELECT *
FROM 'persona'
WHERE Nickname= '$nickname' ";


$consulta = mysqli_query($conexion, $consulta);


if($consulta) {



// Aqui hago la conversion a un array
$consulta = mysqli_fetch_array($consulta);

if (password_verify($password, $consulta['Password'])) {


$_SESSION[login] = true;
$_SESSION[nickname] = $consulta;
$_SESSION[nombre] = $consulta;
$_SESSION[apellidos] = $consulta;
$_SESSION[edad] = $consulta;
$_SESSION[descripcion] = $consulta;
$_SESSION[FotoPerfil] = $consulta;

header('Location: ../miPerfil.php');

} else {
echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";

}
}else{


echo "contaseña incorrecta";
echo "<br><a href='../index.html' >Intentalo de nuevo . </a></div>";
}

mysqli_close($conexion);

Saludos
sammau1 está desconectado   Responder Con Cita
Viejo 08-abr-2021, 06:29   #12
dalki
ForoCoches: Usuario
 
Avatar de dalki
 
Ene 2019 | 6 Mens.
En PHP estoy oxidado pero está mal la query: https://es.stackoverflow.com/questio...e-un-sql-query

Sería así:

$consulta = "SELECT *
FROM persona
WHERE Nickname = {$nickname}";

No descarto que tengas mal alguna otra cosa, quitando lo que te han comentado. Por ejemplo:

$consulta = mysqli_query($conexion, $consulta);

Has definido $consulta como un string y vas a sobreescribirlo con un objeto.

Puede que tengas mal la conexión, comprueba. Echa un vistazo al ejemplo https://www.php.net/manual/es/mysqli...etch-array.php

Suerte!
dalki está desconectado   Responder Con Cita




Respuesta

Regresar   Inicio | Foro Coches > Zona General > Electrónica / Informática

Regresar Amazon.es

    - Electrónica
    - Informática
    - VideoJuegos
    - Libros
    - Bricolaje y Herramientas
 PCComponentes.com

    - Componentes
    - Periféricos
    - Ordenadores
    - Smartphones
    - Audio/Foto/Video

Regresar  Tiendas Chinas:

    - GearBest
    - BangGood
Herramientas


 [ VERSIÓN MÓVIL ]
Info Legal | Privacidad | Cookies | Notificaciones | Normas de uso | Updates | Ayuda | Invitaciones | Contacto