Foros del Web » Programando para Internet » PHP »

como destruir una sesion en php

Estas en el tema de como destruir una sesion en php en el foro de PHP en Foros del Web. hola, he estado probando varios codigo para destruir una session pero ninguno es optimo para lo q quiero, digito el botón atras y me vuelve ...
  #1 (permalink)  
Antiguo 20/05/2010, 10:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 20
Antigüedad: 17 años
Puntos: 0
como destruir una sesion en php


hola, he estado probando varios codigo para destruir una session pero ninguno es optimo para lo q quiero, digito el botón atras y me vuelve a la sesion, cosa q no es optima, lo q' quiero es q' cuando salga de la session haga algo similar a cuando uno entra a una cuenta de e-mail, ya q' cuando sale, te vuelve al formulario de ingreso y cuando digita atras te vuelve a la pagina del proveedor del e-mail, y no a la cuenta, entonces como hago para ello:

estas son algunas logicas q' no me funcionan:

salida1.php
Código PHP:
<?php 
session_start
(); 
$_SESSION = array();
if (isset(
$_COOKIE[session_name('nombre_sesion')])) { 
   
setcookie(session_name('nombre_sesion'), ''time()-42000'/'); 

session_destroy(); 
header ("Location: formulario_de _comienzo.php"); 
exit; 
?>
salida2.php
Código PHP:
Ver original
  1. <?PHP
  2. header ("Location: formulario_de _comienzo.php");
  3. ?>
salida3.php
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     $_SESSION = array();
  4.     session_destroy();
  5.     header("Location: formulario_de _comienzo.php");
  6. ?>
y esta es mi pagina en php de inicio de sesion:
entrada.php
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include("concexionbd.php");
  4.     $link=conexion();
  5.     $r= $_POST['texto1];
  6.        $cl= $_POST['texto2];
  7.     $sqlx="SELECT  * FROM usuario WHERE CampoPrincipal = '$r'";
  8.     $eje = mysql_query($sqlx,$link);
  9.     $row=mysql_fetch_object($eje);
  10.     if ($cl==$row->CampoPass){
  11.         if ($row->CampoEstado=='Activo'){
  12.             $n = $row -> CampoNombres;
  13.             $apellidop = $row -> CampoPrimerApellido;
  14.             $_SESSION['ususist'] = $row -> CampoPrincipal;
  15.             $_SESSION['passsist'] = $row -> CampoPass;
  16.             $_SESSION['isist] = $nombres.' '.$ap.'<a href=salir.php>Salir</a>';?>
  17.             <table width="100%" border="1" align="center">
  18.                 <tr>
  19.                     <td colspan="2">
  20.                         <table width="100%"  cellspacing="0" cellpadding="0">
  21.                             <tr>
  22.                                 <td><div align="right"><?php echo $_SESSION['isist']; ?></div></td>
  23.                             </tr>
  24.                             <tr>
  25.                                 <td><div align="right">;nbsp</div></td>
  26.                             </tr>
  27.                             <tr>
  28.                                 <td>&nbsp;</td>
  29.                             </tr>
  30.                             <tr>
  31.                                 <td>&nbsp;</td>
  32.                             </tr>
  33.                         </table>
  34.                     </td>
  35.                 </tr>
  36.                 <tr>
  37.                     <td width="20%"><br><br><br><br><br><br><br><br><br><br></td>
  38.                     <td width="80%" valign="top">&nbsp;</td>
  39.                 </tr>
  40.                 <tr>
  41.                 <td colspan="2">&nbsp;</td>
  42.                 </tr>
  43.             </table><?php
  44.         }
  45.     }else{
  46.         echo($r.', su clave es incorrecta<br><br><br>');?>
  47.         <div align=center><a href="recuperarclave.php?r=<?php echo $r; ?>">¿Olvido su Clave?</a></div><?php
  48.     }
  49. ?>
y por ultimo la funcion de la base de datos:
concexionbd.php
Código PHP:
Ver original
  1. <?php
  2. function conexion(){
  3.         if (!($link=mysql_connect("localhost","usuariobd","pass")))
  4.         {
  5.                 echo "Error conectando a la base de datos.";
  6.                 exit();
  7.         }
  8.         if (!mysql_select_db("usuariobd",$link))
  9.         {
  10.                 echo "Error seleccionando la base de datos.";
  11.                 exit();
  12.         }
  13.         return $link;
  14. }
  15. ?>

Última edición por victormanuel2008; 20/05/2010 a las 10:28 Razón: correcion del programa
  #2 (permalink)  
Antiguo 20/05/2010, 11:11
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años, 6 meses
Puntos: 13
Respuesta: como destruir una sesion en php

Si asocias una sesion a una variable unica con la cual se inica sesion al volver atrás y la sesion fue destruida, el navegador lo la reconocerá, ya que la sesión fue destruida y no existe más.
  #3 (permalink)  
Antiguo 20/05/2010, 11:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: como destruir una sesion en php

Para destruir las sesiones solo necesitas
Código PHP:
Ver original
  1. <?php
  2. $_SESSION = array();
Ahora, lo importante es siempre hacer las corroboraciones en todas las páginas web. Es decir que todas las páginas tengan algo como
Código PHP:
Ver original
  1. <?php
  2. header("Expires: Fri, 09 Mar 2001 10:17:17 GMT");    // Fecha en el pasado
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre modificado
  4. header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
  5. header("Cache-Control: post-check=0, pre-check=0", false);
  6. header("Pragma: no-cache");                          // HTTP/1.0
  7.  
  8. if(empty($_SESSION['algunaLlave'])){
  9.   header('Location: index.php');
  10. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 20/05/2010, 12:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 20
Antigüedad: 17 años
Puntos: 0
Respuesta: como destruir una sesion en php

Cita:
Iniciado por abimaelrc Ver Mensaje
Para destruir las sesiones solo necesitas
Código PHP:
Ver original
  1. <?php
  2. $_SESSION = array();
Ahora, lo importante es siempre hacer las corroboraciones en todas las páginas web. Es decir que todas las páginas tengan algo como
Código PHP:
Ver original
  1. <?php
  2. header("Expires: Fri, 09 Mar 2001 10:17:17 GMT");    // Fecha en el pasado
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre modificado
  4. header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
  5. header("Cache-Control: post-check=0, pre-check=0", false);
  6. header("Pragma: no-cache");                          // HTTP/1.0
  7.  
  8. if(empty($_SESSION['algunaLlave'])){
  9.   header('Location: index.php');
  10. }
probe con tu logica abimaelrc pero aun no me funciona.
  #5 (permalink)  
Antiguo 20/05/2010, 14:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: como destruir una sesion en php

Si no posteas lo que haz hecho, no te podemos ayudar. Lo que yo te indique, sí funciona. Te coloco todo el ejemplo (analiza el ejemplo para que entiendas, no solo copies y pegues)

a.php
Código PHP:
Ver original
  1. <?php
  2. $_SESSION['foo'] = 1;
  3. header('location: b.php');

b.php
Código PHP:
Ver original
  1. <?php
  2. header("Expires: Fri, 09 Mar 2001 10:17:17 GMT");    // Date in the past
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
  4. header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
  5. header("Cache-Control: post-check=0, pre-check=0", false);
  6. header("Pragma: no-cache");                          // HTTP/1.0
  7.  
  8. if(empty($_SESSION['foo'])){
  9.     header('location: error.php');
  10. }
  11. ?>
  12. <a href="c.php">c.php</a>
  13. <a href="d.php">Log-out</a>

c.php
Código PHP:
Ver original
  1. <?php
  2. header("Expires: Fri, 09 Mar 2001 10:17:17 GMT");    // Date in the past
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
  4. header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
  5. header("Cache-Control: post-check=0, pre-check=0", false);
  6. header("Pragma: no-cache");                          // HTTP/1.0
  7.  
  8. if(empty($_SESSION['foo'])){
  9.     header('location: error.php');
  10. }
  11. ?>
  12. <a href="b.php">b.php</a>
  13. <a href="d.php">Log-out</a>

d.php
Código PHP:
Ver original
  1. <?php
  2. $_SESSION = array();
  3. ?>
  4. Logout

error.php
Código PHP:
Ver original
  1. error
Haz la prueba con todos esos archivos. Pero antes de todo, borra el cache y luego corre el código que te expuse. Cuando pulse el enlace de log-out, luego le dí para atrás y me salio el mensaje de error. Pero como te comenté borra el cache para que no recargues páginas ya grabadas en el cache.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: Ninguno
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 12:12.