la idea seria algo asi
Código PHP:
<?php
session_start(); //lo necesitaras
function xRequest($key,$stack,$def=''){ //solo como utileria
return isset($stack[$key])?$stack[$key]:$def;
}
$modo=xRequest('modo',$_REQUEST);
$error=xRequest('error',$_REQUEST);
$loged=xRequest('loged',$_SESSION); //por si despued de logeado intenta venir a login de nuevo
if($loged){
header('Location:la_url_del_login.php');
}
switch($modo){
case 'validate':
$usr=xRequest('user',$_POST);
$pw=xRequest('pw',$_POST);
if($tu_validacion_va_aqui){ // lo que decia javifo :-)
$_SESSION['loged']=true; //solo como ejemplo
header('Location:la_url_del_login.php'); //redirecionar ***
}else{
header('Location:'.$_SERVER['PHP_SELF'].'?error=Login Invalido'); //redireccinar ***
}
case 'exit': // + - ejemplo
$_SESSION['loged']=false;
unset($_SESSION['loged']);
break;
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>?modo=validate" method="post">
<input type="text" name="user">
<input type="password" name="pw"><br>
<input type="submit">
</form>
<div style="color:#FF0000 "><?=$error?></div>
si lo del header te da problemas haz una busqueda en los foros(hay un monto al respecto), pero la idea basica es que no debes enviar(imprimir) NADA antes de mandar los headers.
bueno espero haber sido de ayuda