Foros del Web » Programando para Internet » PHP »

session, atras al navegador

Estas en el tema de session, atras al navegador en el foro de PHP en Foros del Web. hola comunidad mi problema es el siguiente tengo en mi index.php Código PHP: <?php require( "funciones.php" ); require( "./CustomSql.inc.php" ); $db  = new  CustomSQL ( $DBName ...
  #1 (permalink)  
Antiguo 21/02/2006, 13:23
 
Fecha de Ingreso: diciembre-2005
Mensajes: 7
Antigüedad: 18 años, 4 meses
Puntos: 0
session, atras al navegador

hola comunidad
mi problema es el siguiente
tengo en mi index.php
Código PHP:
<?php
require("funciones.php");
require(
"./CustomSql.inc.php");
$db = new CustomSQL($DBName);
SessionStart();
$showtable true;
$errortag false;
if (!empty(
$userlogin)) {

if (empty(
$login)){
    
$errortag true;
    
$errormsg $error_usernameempty;
}

if (empty(
$password)){
    
$errortag true;
    
$errormsg $error_passwordempty;
}
$split=md5($password);
$passwdenc=substr($split,0,-12);
$customerid $db->logincheck($login,$passwdenc);
if (
$customerid==0) {
    
$errortag true;
    
$errormsg $error_wrongpassword;
}

if (!
$errortag){
    
session_register("CID");
    
    
$CID $customerid;
    
$showtable false;

}

}

if (
session_is_registered("CID")){
session_name();    
$_SESSION['usuario_login']=$login;    
$showtable false;
    
$bienv="<table align='center' width='192' height='101' border='0' cellpadding='0' cellspacing='0'>
    <tr><td align='center'><span class='menu'>Bienvenido "
.$_SESSION['login']."</span></td></tr>
    <tr><td><span class='menu'>Miembro de </span></td></tr>
    <tr><td><a href='logout.php'>Salir</a></td></tr></table>"
;
}

?>
y en la misma pagina mi form
Código HTML:
<form action="<?php print "$PHP_SELF"; ?>" method="post">
				<tr><td colspan="2">&nbsp;</td></tr> 
			<td width="238" height="117" background="images/bgform_1.jpg" valign="top" style="padding-left:25px;padding-top:24px;"><table width="192" cellpadding="0" cellspacing="0" border="0">
				<tr><td><font color="#FF0000">
					  <?php if ($showtable){?>
					</font></td></tr>
				<tr><td><input name="login" type="Text" id="login" style="width:140;height:20" value="<?php print "$login"; ?>">
					  <span class="menu">					  Login</span> </td></tr>
				<tr><td><input name="password" type="Password" id="password" style="width:140;height:20">
				    <span class="menu">Passw</span></td></tr>
				<tr><td><font color="#FFFFF">
				    <label>
				    <input name="userlogin" type="submit" class="prod" id="userlogin" value="Login"></label>
				  </font>
				 <a href="registrarse.php" class="style1">
			      Registrarse</a><font color="#FF0000">
			      <?php }else{echo"$bienv";}?>
			      </font></td></tr>
				<tr><td>&nbsp;</td></tr></table>
			  <a href="index.php"></a></td>
			</form> 
todo va normal,me deslogueo y todo bien, pero cuando le doy atras al navegador, el usuario sigue ahi, pense en comprobar con isset($_server['usuario_login']), pero siempre va a tener un valor puesto que en la funcion SessionStart(), lo que hago es darle un nombre de anonimo, ademas, no puedo restringir la pagina porque es el index
Código PHP:
 function SessionStart($username="anonimo",$tipo="no_identificado"){
  
session_start();
  
$_SESSION['usuario_login'] = $username;
  
$_SESSION['tipo'] = $tipo;
 } 
alguna sugerencia

Gracias de antemano
  #2 (permalink)  
Antiguo 21/02/2006, 17:28
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
me parece que el error debe estar en la pagina logout.php... ese codigo no lo estas mostrando aqui en el foro o si? Saludos
__________________
Liber
  #3 (permalink)  
Antiguo 21/02/2006, 17:31
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
proba con session_destroy() en la pagina de logout.php
__________________
Liber
  #4 (permalink)  
Antiguo 21/02/2006, 17:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 7
Antigüedad: 18 años, 4 meses
Puntos: 0
Re:

Eso ya lo hago, y me sale de la session pero el problema esta cuando voy atras
Código PHP:
<?php
include(funciones.php);
session_start();
session_destroy();
Redireccionar(2,"index.php","Vuelva pronto");
?>
  #5 (permalink)  
Antiguo 22/02/2006, 05:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes un buen lio de uso de sesiones. Por un lado usas las -obsoletas- funciones session_register() y session_is_register() .. por otro lado usas los no tan nuevos arrays superglobales $_SESSION.

Debes aclararte con el uso de las variables de sesión. Debes usar siempre y para todo el arrays superglobal $_SESSION, tanto para dar un valor a una variable de sesión como para accederla.

Por ejemplo:
Código PHP:
<?
if (!$errortag){
    
session_register("CID");
    
    
$CID $customerid;
    
$showtable false;

}
sería:

Código PHP:
<?
if (!$errortag){
    
$_SESSION['CID']= $customerid;
    
$showtable false;

}
También usas "session_name()" .. no sé con qué fin .. pero dicha función se usa para definir un nombre de sesión (si lo indicas como parámetro) o para obtener su nombre (si lo muestras o asignas a una variable).

El caso es que sea como sea el uso que pretendas darle, dicha función se usa -antes- de session_start() y no despues como ahí lo usas.

Revisa el uso de las variables de sesión que haces y ajusta tu código al uso de $_SESSION:

www.php.net/session

Un saludo,
  #6 (permalink)  
Antiguo 22/02/2006, 06:18
Avatar de decano  
Fecha de Ingreso: diciembre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola : no se si te pueda servir pero a mi me resulta bien
Código PHP:
session_name();
session_start();
session_cache_limiter('nocache,private');    
if (!isset(
$_SESSION['registrado']) && !isset($_SESSION['pass']))
{
session_destroy();
die (
"Codigo acceso :  !Acceso Denegado!<br>
     <a href='ing.php'>Inicie Sessión Por Favor</a>"
);


exit;

un saludo.
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 05:09.