Hola a todos:
En primer lugar os cuento la mecánica de la página que me da error.
Es un formulario de login (
http://misitio.es/login) el cual se envía a sí mismo la información y la procesa.
En caso de ser un login correcto redirige la página a la zona restringida (
http://misitio.es/admin).
En caso de ser incorrecto se queda en la página del login y muestra el formulario de nuevo con un aviso:
Código HTML:
<div style="color:#FF0000;">Usuario o contraseña no válidos</div>
En la página de login incluyo una página de funciones.
Una vez incluida, ejecuto una función que me evalua si se ha ejecutado el formulario, y en ese caso evalua si es correcto o no. Aquí os pongo la función:
Código PHP:
function crear_sesion()
{
if(isset($_POST["user"]) && isset($_POST["pass"]))
{
if($_POST["user"]=="unusuario" && $_POST["pass"]=="unacontraseña")
{
$_SESSION['Administracion']="admin";
sesion_admin();
}else{
$msg='<div style="color:#FF0000;">Usuario o contraseña no válidos</div>\n';
}
}
}
Como veis, si el POST ha sido ejecutado y el usuario/pass son correctos llama a otra función. Esa función es la que redirige a la página restringida (
http://misitio.es/admin) una vez evaluados los datos.
NOTA: Las sesiones
session_start(); ya han sido iniciadas previamente.
Por otra parte la variable $msg contiene un mensaje en caso de que los datos introducidos sean erróneos, aquí podeis ver donde lo muestro:
Código HTML:
<div class="titulo">Acceso al área restringida</div>
<?php echo($msg); ?>
<form action="../login" method="post" name="f_login">
<fieldset id="login">
<legend>Introduzca sus datos de acceso</legend>
<table border="0">
<tr><td>Usuario: </td><td><input type="text" name="user" value=""></td></tr>
<tr><td>Contraseña: </td><td><input type="password" name="pass" value=""></td></tr>
<tr><td></td><td><input type="button" value="Entrar" onClick="javascript:comprobar_f('f_login')"></td></tr></table>
</fieldset>
</form>
La variable $msg la he declarado anteriormente fuera de la función, para que no fuera local.
El problema es que no consigo que me reconozca el envío del formulario, es como si no viniera de la propia página o no enviara el formulario. Para eliminar más dudas pongo aquí la función de js que me comprueba y envía el formulario (comprobar_f('f_login'))
Código HTML:
if(document.f_login.user.value=="")
{
alert("Introduzca el nombre de usuario");
document.f_login.user.focus();
}else{
if(document.f_login.pass.value=="")
{
alert("Debe introducir la contraseña");
document.f_login.pass.focus();
}else{
document.f_login.submit();
}
}
Seguro que al final es una tontería y me he pasado 15 minutos poniendo bonito el post
Se agradecen todo tipo de sugerencias!
Un saludo y gracias a todos por adelantado!