Foros del Web » Programando para Internet » PHP »

Ayuda: PHPSESSID y Login con Cookies

Estas en el tema de Ayuda: PHPSESSID y Login con Cookies en el foro de PHP en Foros del Web. Hola a todos, Mi problema es el Siguiente, tengo un login que funciona con Base de Datos, en donde se loguean y crea una session, ...
  #1 (permalink)  
Antiguo 04/11/2008, 10:37
Avatar de Breaklo  
Fecha de Ingreso: junio-2008
Ubicación: Buenos Aires
Mensajes: 95
Antigüedad: 15 años, 10 meses
Puntos: 1
Ayuda: PHPSESSID y Login con Cookies

Hola a todos,
Mi problema es el Siguiente, tengo un login que funciona con Base de Datos, en donde se loguean y crea una session, y si marca Remember me , crea cookies.
(EL de la contraseña lo tengo que encriptar, ya se).

La cosa es que si no marcas Remember Me, supuestamente cuando cerras el navegador, deberia terminar la Session, pero me crea el cookie
PHPSESSID que dura un tiempo largo ,y lo toma como si fuera el cookie para loguear. Entonces te reconoce.

Alguien tiene una sugerencia sobre el Script ?

El archivo "config.php" tiene todas las variables.

Login.php
Código PHP:
<?
include('config.php');

session_start();
if((!isset(
$_SESSION['loggedin'])) && ($_COOKIE["$cookie"] == 1) )            
{

$nombre $_COOKIE["$cookie(nombre)"];    // Select the username from the cookie
$pass $_COOKIE["$cookie(pass)"];    // Select the password from the cookie


$query "SELECT nombre,pass FROM usuario WHERE nombre = '$nombre' AND pass = '$pass'";
$result mysql_query($query$conectarDB);
if(
mysql_num_rows($result)) 
    {
    
$_SESSION['loggedin'] = 1;
    
header("Location: $pagina/admin");
        }
    exit();
}



if (isset(
$_SESSION['loggedin'])) {
echo 
"Ya estas Logueado"; }


?>

<form method="post" name="cookie" action="login.php?do=login">

<p><label for="username">Username : <input type="text" name="nombre" id="nombre" /></label></p>
<p><label for="password">Password : <input type="password" name="pass" id="pass" /></label></p>
<p><label for="setcookie"><input type="checkbox" name="setcookie" value="setcookie" id="setcookie" /> Remember Me</label></p>

<p><input type="submit" name="submit" value="Submit" /> <input type="reset" name="reset" value="Reset" /></p>
</form>


<?php

if ((isset($_GET["do"])) && ($_GET["do"] == 'login')) {
session_start();            // Shows we are using sessions

$nombre $_POST['nombre'];            // Gets the inputted username from the form
$pass $_POST['pass'];            // Gets the inputted password from the form
$time time();                    // Gets the current server time
$check $_POST['setcookie'];                // Checks if the remember me button was ticked


$query "SELECT nombre, pass FROM usuario WHERE nombre = '$nombre' AND pass = '$pass'";
$result mysql_query($query$conectarDB);
if(
mysql_num_rows($result)) {    // If the username and password are correct do the following;
   
$_SESSION['loggedin'] = 1;        // Sets the session 'loggedin' to 1

    
if($check) {        // Check to see if the 'setcookie' box was ticked to remember the user
    
setcookie("$cookie""1"$time 86400);
    
setcookie("$cookie(nombre)""$nombre"$time 86400);        // Sets the cookie username
    
setcookie("$cookie(pass)""$pass"$time 86400);    // Sets the cookie password
    
}

    
header("Location: $pagina/admin");
   exit(); 
}
else            
// If login is unsuccessful forwards the user back to the index page with an error
{
   
header("Location: login.php?error=1");
   exit();
} }



if (isset(
$_GET['error']) AND !empty($_GET['error'])) 
 {
    echo 
'Invalid login data supplied. Please try again.';
 }
?>

function admin(); (Es la que comprueba si se inicio sesion)
Código PHP:
function admin() {
session_start();

$isset_session_loggedin = isset($_SESSION['loggedin']);
$cookie_valor = isset($_COOKIE["$cookie"]);
if (!
$isset_session_loggedin){
    if (
$cookie_valor) {
    
header("Location: $pagina/login.php");
    }
    
    else {
   
header("Location: $pagina/index.php?error=1");
   
    }
exit(); }



Y el LOGOUT
Código PHP:
<?php
include('config.php');
session_start();
session_unset();
session_destroy();
if(isset(
$_COOKIE["$cookie"]))    
{
$time time();
    
setcookie("PHPSESSID",""$time 86400);
    
setcookie("$cookie",""$time 86400);
    
setcookie("$cookie(nombre)",""$time 86400);
    
setcookie("$cookie(pass)",""$time 86400);
}
header("Location: $pagina");

exit();
?>
  #2 (permalink)  
Antiguo 04/11/2008, 10:42
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Ayuda: PHPSESSID y Login con Cookies

Quizás te sirva:

http://www.forosdelweb.com/f18/faqs-...ml#post2619525

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 08:18.