Hola a todos:
El problema que tengo es al usar "mysql_real_escape_string".
Si lo quito, me funciona perfecto. ¿Me podeis decir donde está el fallo y como lo puedo solucionar?
Código:
<?php
// NECESARIO PARA CREAR SESIONES
require_once("../incluye/sesion.php");
// INICIA SESIÓN
$sesion = new sesion();
// SI EL FORMULARIO HA SIDO ENVIADO, SE VALIDA
if(isset($_POST['submit'])){
// SE CREAN LAS VARIABLES SE LIMPIAN DE POSIBLE CÓDIGO MALICIOSO
$nombreusuarios = mysql_real_escape_string($_POST['nombreusuarios']);
$claveusuarios = mysql_real_escape_string($_POST['claveusuarios']);
$claveusuarios = md5($claveusuarios);
// SE VALIDA QUE SEAN VERDADERAS LAS VARIABLES
if(validarUsuario($nombreusuarios,$claveusuarios) == true)
{
$sesion->set('nombreusuarios',$nombreusuarios);
// SI SON VERDADERAS, MANDA A SIGUIENTE PÁGINA
header("location: privado2.php");
} else { // SI SON FALSAS
echo "Verifica tu nombre de usuario y contraseña";
}
}
// VALIDA EL NOMBRE Y LA CLAVE DE USUARIO
function validarUsuario($nombreusuarios,$claveusuarios)
{
// CONECTAR A LA BASE DE DATOS
$conexion = new mysqli("localhost","invitado","pass","bd");
// SE HACE LA CONSULTA
$consulta = "SELECT claveusuarios FROM usuarios WHERE nombreusuarios = '$nombreusuarios';";
// RECOGE EL RESULTADO
$result = $conexion->query($consulta);
if($result->num_rows > 0){
$fila = $result->fetch_assoc();
// COMPARA LA CLAVE DE USUARIO
if(strcmp($claveusuarios,$fila['claveusuarios']) == 0)
// DEVUELVE VERDADERO
return true;
else
// DEVUELVE FALSO
return false;
}
else
// DEVUELVE FALSO
return false;
}
?>
Gracias a todos y un saludo:
Javy