Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/01/2009, 04:56
jonatanc
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Problemas con $_POST

Cita:
Iniciado por Sancas Ver Mensaje
Hola a todos:

En primer lugar os cuento la mecánica de la página que me da error.
Es un formulario de 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 ).
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 () 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&ntilde;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!
puede agregar un campo oculto en tu form que se llame "envio" con valor uno ponele , y desde php lo procesas asi:
Código PHP:
if($_POST['envio']=="1"){
echo 
"proceso datos del form";
}else{
echo 
"usted no envio el form";

en el html deberias agregar
Código HTML:
<input type="hidden" name="envio" value="1"/> 
Saludos