Foros del Web » Programando para Internet » PHP »

Login y un checkbox en php

Estas en el tema de Login y un checkbox en php en el foro de PHP en Foros del Web. Hola cuando entra en este foro e ingresa su nombre de usuario y contraseña hay una casilla que dice( ¿Recordarme? ), alguien me puede dar ...
  #1 (permalink)  
Antiguo 17/08/2004, 14:20
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 192
Antigüedad: 13 años, 5 meses
Puntos: 1
Login y un checkbox en php

Hola cuando entra en este foro e ingresa su nombre de usuario y contraseña hay una casilla que dice( ¿Recordarme? ), alguien me puede dar la idea de como es su funciona esta casilla, que hay que poner el nombre de usuario o password en sesiones o cookies ¿hay que propagarlo o guardar el nombre de usuario y comprobar con la base de datos?

gracias por su atención
  #2 (permalink)  
Antiguo 17/08/2004, 14:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
para qu el usuario no tenga que logearse en cada visita tienes que usar cookies,pero son poco seguras ya que se guardan en el PC y se pueden modificar los datos de esta,las sesiones aunque mas seguras tienen como problema el tener que logearte en cada visita,yo uso ambas formas lo que hago es que si el visitante quiere usar cookies en cada página compruebo que el login,password y el ID coinciden con los de mi BD,sbre lo del checbox lo tengo asi:

compruebo el usuario y todo en la BD y luego:

Código PHP:
//conecto a a BD

//compruebo si todo esta correcto
$query="SELECT login,user_id,password FROM usuarios WHERE login='$login'"
$link=mysql_connect($server,$dbuser,$dbpass); 
$result=mysql_db_query($database,$query,$link); 
if(
mysql_num_rows($result)==0){ 
echo 
"No existe el login introducido"
} else { 
$array=mysql_fetch_array($result); 
if(
$array["password"] == MD5($pass) ){ 
$_SESSION["user_id"]=$array["user_id"]; 
$_SESSION["login"]=$array["login"]; 
$_SESSION["password"]=$array["password"]; 
header("location: usuario.php"); 
} else { 
echo 
"Password incorrecto!"

//si el usuario a marcado el checkbox llamado autologin pasa lo siguiente

if(isset(
$_POST['autologin'])){        
      
setcookie("cook_user_id"$_SESSION["user_id"], time()+60*60*24*100"/"); 
      
setcookie("cook_login"$_SESSION["login"], time()+60*60*24*100"/"); 
espero que te sirva lo que te puse ;)

Última edición por Newphp; 17/08/2004 a las 14:39
  #3 (permalink)  
Antiguo 17/08/2004, 18:14
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 192
Antigüedad: 13 años, 5 meses
Puntos: 1
Hola Gracias Por Responder, voy a poner en practica tu ejemplo, tambien habia pensado enviar una cookie y despues cuando el usuario vuelva, leer dicha cookie y asignarla a una sesion

$_SESSION["nombre"]=$_COOKIE["recordar"]
  #4 (permalink)  
Antiguo 17/08/2004, 18:38
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
si eso lo tb lo pense en su dia :D pero me decante por el metodo que uso ahora,no me preguntes el porque pero lo hice asi....quizas porque cuando hice el sistema me liaba mucho con el php xDDDd

buena suerte ;)
  #5 (permalink)  
Antiguo 18/08/2004, 14:03
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 192
Antigüedad: 13 años, 5 meses
Puntos: 1
Hola Aqui Intente Hacer un auto login con casilla de verificación incluida, los expertos me lo podrian revisar a ver si esta bien o mal, ya que soy solo principiante en php;

login3.php

Código PHP:
[CODE]<?if (isset($_COOKIE["nombre"]) && isset($_COOKIE["id"])){
$id_cookie=$_COOKIE["id"];
$login_cookie=$_COOKIE["nombre"];
// comprueba con los datos que existen en la BD antes de enviar con  un Header Location
// datos provisorios
$id_db="01";
$nombre_db="nick";
if (
$id_cookie==$id_db && $login_cookie==$nombre_db){
    
session_start();
    
$_SESSION["log"]="true";
    
$_SESSION["id"]=$id_cookie;
    
$_SESSION["nombre"]=$login_cookie;
    
header("location: aplicacion4.php?".session_name()."=".session_id());
}
}else{
if (!isset(
$_POST["submit"])){
?>


 <form name="form1" method="post" action="">
  <table width="37%" border="0" align="center" cellspacing="5" class="unnamed1">
    <tr> 
      <td bgcolor="#006699"><h4 align="center"><font color="#FFFFFF">autologin</font></h4></td>
    </tr>
    <tr> 
      <td><div align="center">Nombre:</div></td>
    </tr>
    <tr> 
      <td><div align="center"> 
          <input name="login" type="text" id="login">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">Password</div></td>
    </tr>
    <tr> 
      <td><div align="center"> 
          <input name="password" type="text" id="password">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center"> 
          <input name="submit" type="submit" id="submit" value="Login">
        </div></td>
    </tr>
    <tr> 
      <td height="20"> <div align="center">&iquest;Olvido su Contrase&ntilde;a 
          ?</div></td>
    </tr>
    <tr> 
      <td><div align="center"> 
          <input name="rec1" type="checkbox" id="recordar" value="true">
          &iquest; Recordar ?</div></td>
    </tr>
    <tr> 
      <td bgcolor="#006699">&nbsp;</td>
    </tr>
  </table>
</form>
<?
}else{
    if (isset(
$_POST["login"]) && isset($_POST["password"])){
            if (empty(
$_POST["login"]) && empty($_POST["password"])){
                    echo 
"Debe Ingresar Login y Contraseña";
            }else{
                if (
$_POST["login"]=="nick" && $_POST["password"]=="n1"){
                        
$id="01"//valor buscado y asignado de la base de datos
                        
if (isset($_POST["rec1"])){
                            
// casilla activada
                            // envio la cookie al usuario
                            
setcookie("id",$id,time()+86400*360);
                            
setcookie("nombre",$_POST["login"],time()+86400*360);
                            
setcookie("log","true",time()+86400*360);
                            
session_start();
                            
// propago el SID por url metodo seguro
                            
$_SESSION["log"]="true";
                            
$_SESSION["id"]=$id;
                            
$_SESSION["nombre"]=$login;
                            
header("location: aplicacion4.php?".session_name()."=".session_id());
                            exit;
                        }else{
                            
// casilla desactivada
                            
session_start();
                            
$_SESSION["log"]="true";
                            
$_SESSION["id"]=$id;
                            
$_SESSION["nombre"]=$login;
                            
header("location: aplicacion4.php?".session_name()."=".session_id());
                            exit;
                        }
                }else{
                    echo 
"nombre de usuario no existe, <a href='login3.php'>Click Aqui para volver al inicio</a>";
                }
                                
            }
    }else{
            echo 
"No Autorizado";
    }



}
}
?>[/CODE]
aplicacion4.php

Código PHP:
[CODE]<?

header
("Expires: Mon, 27 Jul 1997 05:00:00 GMT");
header("Last-Modified:"gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: Pre-Check, Post-Check=0",false);
header("Pragma: No-Cache");
session_start();

if (
$_SESSION["log"] || $_COOKIE["log"]) {
            echo 
"<h1>Bienvenido a mi pagina segura</h1>";
            echo 
"<br><br><br>";
            echo 
"<a href='salir1.php'>Click Aqui para Desconectarse</a>";
            
}else{
session_destroy();
unset(
$nombre);
unset(
$contra);
header("Location: login3.php");
exit;
}[/
CODE]
salir1.php

Código PHP:
[CODE]<?
session_start
();

unset(
$_SESSION['id']);
unset(
$_SESSION['nombre']);
unset(
$_SESSION['log']);
$_SESSION = array(); // reset session array
session_destroy();   // destroy session.
unset($id_cookie);
unset(
$login_cookie);
//setcookie("id",",time()-2592000),'/',",0);
//setcookie("nombre",",time()-2592000),'/',",0);
unset($_COOKIE["log"]);
unset(
$_COOKIE["id"]);
unset(
$_COOKIE["nombre"]);

echo 
"gracias por entrar";
 
?>[/CODE]
a pesar de que destruye las seciones no logro matar las cookies alguien me podria decir como hacerlo en este codigo

Última edición por don_fransisco; 18/08/2004 a las 14:17
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:39.