Tengo un login sencillo el cual hice a mi manera y con el que tengo problemas para trabajar.
Les dejo todo el código del login que obvio esta horrible.
Código PHP:
Ver original<?php
if(isset($_POST["cerrarsesion"])){ echo "cerrar sesion";
//aqui iria la funcionalidad del login
setcookie("EMail1", "", time()+604800); //enviamos las cookies al nacegador [expiraran dentro de una semana] $opc="";
$ct_id=0;
?>
<form action="index.php" name="login" id="login" method="post">
<div id="labels">
<div id="lbl_user"><label>E-Mail</label></div>
<div id="lbl_pass"><label>Password</label></div>
</div>
<div id="inputs">
<div id="inp_user"><input name="email" id="email" type="text" maxlength="30" value="E-Mail" /></div>
<div id="inp_pass"><input name="contraseña" id="contraseña" type="password" maxlength="30" /></div>
<div id="inp_enviar"><input type="submit" name="btnlogin" id="btnlogin" value="Enviar"/></div>
</div>
<div style="clear:both;"></div>
<div><a href="index.php?opc=recordarpass">Recordar Contraseña?</a></div>
<div>No se ha registrado aún?<br /> <a href="index.php?opc=registro">Registrarse</a></div>
<div id="inp_r"><label id="r" class="res"></label></div>
</form>
<?php }
else
if(isset($_POST["btnlogin"])){ //aqui iria la funcionalidad del login
echo "login";
$Q=Login($_POST["email"],$_POST["contraseña"]);
{
//echo $_POST["email"]."=>".$_POST["contraseña"];
//echo $row["cl_id"]."=>".$row["cr_id"];
setcookie("EMail1", $_POST["email"], time()+604800); //enviamos las cookies al nacegador [expiraran dentro de una semana] if(is_integer($_SESSION["opc"]) && $_SESSION["opc"]>0) $ct_id=$_SESSION["opc"];
else if($_SESSION["opc"]=="micuenta" || $_SESSION["opc"]== "quienessomos" || $_SESSION["opc"]== "contactanos" || $_SESSION["opc"]== "tienda" || $_SESSION["opc"]== "dudas" || $_SESSION["opc"]== "micuenta")
$opc=$_SESSION["opc"];
else {$opc=""; $ct_id=0;}
}
else $opc="errorlogin";
//si se pudo logear, hace $opc="micuenta"
//si no se pudo logear, muestra mensaje que no se pudo logear
}
else
if(!isset($_COOKIE["EMail1"]) || $_COOKIE["EMail1"]=="") { ?> <form action="index.php" name="login" id="login" method="post">
<div id="labels">
<div id="lbl_user"><label>E-Mail</label></div>
<div id="lbl_pass"><label>Password</label></div>
</div>
<div id="inputs">
<div id="inp_user"><input name="email" id="email" type="text" maxlength="30" value="E-Mail" /></div>
<div id="inp_pass"><input name="contraseña" id="contraseña" type="password" maxlength="30" /></div>
<div id="inp_enviar"><input type="submit" name="btnlogin" id="btnlogin" value="Enviar"/></div>
</div>
<div style="clear:both;"></div>
<div><a href="index.php?opc=recordarpass">Recordar Contraseña?</a></div>
<div>No se ha registrado aún?<br /> <a href="index.php?opc=registro">Registrarse</a></div>
<div id="inp_r"><label id="r" class="res"></label></div>
</form>
<?php
}else
{
echo "Bienvenido ";
echo '
<form name="login" id="login" action="index.php" method="post">
<input name="cerrarsesion" id="cerrarsesion" type="submit" value="Cerrar Sesión" />
</form>
';
}
if(isset($_COOKIE["EMail1"]) && $_COOKIE["EMail1"]!=""){ echo "Bienvenido ". $_COOKIE["EMail1"];
echo '
<form name="login" id="login" action="index.php" method="post">
<input name="cerrarsesion" id="cerrarsesion" type="submit" value="Cerrar Sesión" />
</form>
';
}
?>
Los dos problemas actuales son que cuando le doy clic al boton de login, me recarga la pagina pero no me crea la cookie sino hasta que vuelvo a recargar la pagina. Luego, si me deslogueo me muestra el form de login pero tambien la parte de logeado y tambien se quita refrescando, de hecho lo mas malo o no se que tanto es que si refrescan la pagina te dice que se van a enviar datos y no se que y no se cuando, si hubiera una forma de evitar eso pues creo es molesto para los usuarios (aunque es raro el que le da en refrescar, a menos que sea un usuario de nivel casi medio o superior).
Gracias y disculpen la molestia.