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:
Gracias a todos y un saludo:<?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; } ?>
Javy