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"; } } }