Estoy haciendo un login para usuarios, el tema es que habia echo uno y me digieron que para que tenga seguridad tenia que parametrizar la consulta.
Lo hice o a caso creo a verlo echo, pero no me funciona. Me da error
El código es:
Código:
Desde ya gracias.
<?php
if(isset($_POST['ingresar'])){
$usuario=$_POST['usuario'];
$contrasena=$_POST['contrasena'];
$mysqli = new mysqli("localhost","user","password","database");
if ($mysqli->connect_errno) {
echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
/* Etapa 1: preparación */
if (!($sentencia = $mysqli->prepare("SELECT * FROM tabla WHERE usuario = (?)"))) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli->error;
}
/* Etapa 2: vincular*/
if (!$sentencia->bind_param("s", $contrasena)) {
echo "Falló la vinculación de parámetros: (" . $sentencia->errno . ") " . $sentencia->error;
}
/* Etapa 3 Ejecutar*/
if (!$sentencia->execute()) {
echo "Falló la ejecución: (" . $sentencia->errno . ") " . $sentencia->error;
}
$resultado = $mysqli->query($sentencia);
$numeroregistro= $resultado->affected_rows;
$registros = $resultado->fetch_assoc();
if($numeroregistro>0){
$contrasenaDB=$registros['contrasena'];
$salt_contrasenaDB=$registros['salt_contrasena'];
// Encriptamos contraseña y comparamos
if(crypt($contrasena, $salt_contrasenaDB) == $contrasenaDB){
$estado_cuenta=$registros['estado'];
if($estado_cuenta=="A"){
echo "Conexion Exitosa";
$_SESSION['usuario']=$usuario;
$_SESSION['login_ok']=1;
}
}
else{
echo "Error de Conexion, compruebe su usuario y contraseña";
}
}else{
echo "Error de Conexion, compruebe su usuario y contraseña";
}
}
}



