Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Macky25

#1
PHP / Problema con mysql_fetch_array
20 Septiembre 2016, 23:31 PM
Ayer y hoy durante toda la tarde me la he pasado reparando un código php (tal vez sencillo) el cual me dictaba error siempre cerca de la conexión a la base de datos, un error que resolví hace unos minutos. Pero avanzando con el código me resulta otro nuevo error.  :-\

Una vez registrada la consulta MySQL y guardada la variable de result (resultado) se solicita que seleccione una tabla como elemento asociativo. He probado varios códigos pero no me funciona. El problema está en que no encuentro el código 'correcto' para las variables ya ejecutadas en el código.

Código (php) [Seleccionar]

<?php
session_start();
?>


<?php

$bd_host ":::::::"// Hosting (IP del servidor) ; Ejemplo: mysql.hostinger.es
$bd_usuario "root"// Usuario con los permisos root ; Ejemplo: u656089451_user
$bd_password ""// Contraseña del usuario ; Ejemplo: F96sd821a
$bd_base "******";
$conexion = new mysqli($bd_host$bd_usuario$bd_password$bd_base);

//CONVERTIMOS LOS VALORES
$usuarioingresado $_POST["usuario"];
$passwordingresado $_POST["password"];


$sql "SELECT * FROM susuarios WHERE usuario='$usuarioingresado'";
$result mysqli_query($conexion$sql);
$result $conexion -> query($sql);


         
//ACA RESIDE EL ERROR!!
$row $result->fetch_array(MYSQLI_ASSOC); 
        
//Muestra el siguiente error: Warning: mysql_fetch_array() expects at most 2 parameters, 3 given in /home/u558790442/public_html/megasups/funcionentrar.php on line 24



//Ahora verificamos que la contraseña ingresada sea la correcta
if (password_verify($passwordingresado$row['password']))
//Si la contraseña es correcta
{
$_SESSION['loggedin'] = true;
$_SESSION['usuario'] = $usuario;
$_SESSION['loggedin'] = time();
$_SESSION['loggedin'] = $_SESSION['start']+(5*60);

echo "<font face='arial'>BIENVENIDO </font>".$_SESSION['usuario'];
   echo "<br><br><a href=privado.php>Sección Exclusiva</a>";
}else{
echo "<font face='arial' color='arial'><b>Usuario o Password incorrectos!<b></font><br>";
echo "<font face='arial'>Est&aacute;s seguro que te llamas <b><i>$usuarioingresado</i></b>?</font>";
}

mysqli_close($conexion);
?>



No creo tener más tiempo para seguir testeando (y creo menos, cuando sé que existe una solución). Sólo necesito el código correcto que necesita el código (LogIn, que valida el usuario/password) para funcionar.

PD: Ya he buscado en phpost.net y varias páginas web las cuales grafican diferentes tipos de código.

:-(  :-(  :-(
#2
Si tengo una base de datos (MySQL) en la cual se encuentran los campos de...

'id' - 'usuario' - 'password' - (...)

Los cuales serán rellenados en un registro de usuarios
¿Cómo notificar que el usuario ya ha sido registrado, y por lo tanto impedir ese registro?
#3
Estoy creando un formulario de usuarios en PHP, pero algo que necesito es cifrar las contraseñas de los usuarios que se registren.

El md5 según foros es tremendamente malo para este trabajo (salvo que sean cantidades grandes de caracteres). El Sha1 si que es vulnerable (está decayendo en lo que refiere a seguridad). Y php no recomienda ni utilizarlos.

El hash de passwords de php es PASSWORD_DEFAULT, y PASSWORD_BCRYPT. Se encuentran el la misma página de PHP, pero no entiendo las indicaciones que señalan, son confusas. (http://php.net/manual/es/function.password-hash.php)

Necesito el código necesario para poder cifrar las contraseñas antes de generar una conexión con la base de datos y enviar el formulario. Además de el código para el 'Log In', de modo el cual la contraseña ingresada en el Log In pueda compararse con la contraseña ingresada en el registro desde el principio, y el usuario logearse dentro del sitio.

Estoy seguro que no es un código al que se deba crear, debe ser un código que muchos tienen o llevan en su sitio reservados para las contraseñas.

Gracias de antemano.  :)