Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/10/2011, 17:15
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 7 meses
Puntos: 1567
Respuesta: Xhtml+php problema para mostrar seciones

Bueno, ver como trabaja tu aplicación, requeriria ver si esta todo correcto, te dejo una pequeña guia de como hacerlo, despues tendrias que adaptarlo

Para trabajar con sesiones, primero te conviene entender bien como trabajan
tedejo el codigo de tres archivos

sesion.php (es el inicio o página de acceso)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. if(isset($_SESSION['logueado'])){
  4. if($_SESSION['logueado'] == "si"){
  5. echo "conectado como <b>" . $_SESSION['usuario'] . "</b>\n";
  6. echo "<a href='salir.php'>Cerrar sesion</a>";
  7. }else{
  8. echo "Inicia sesión <a href='loguin.php'>aqui</a>";
  9. }
  10. }else{
  11. echo
  12. <form action='loguin.php' method='post'>
  13. usuario <input type='text' name='ingreso_usuario' value=''>
  14. <input type='submit' name='procesar_ingreso' value='ingresar'>
  15. </form>
  16. ";
  17. echo "Inicia sesión <a href='loguin.php'>aqui</a> [genera un error ya que no hay post]";
  18. }
  19. ?>
  20. <hr>
  21. <p>Ver cookies de sesion</p>
  22. <?php
  23. foreach ($_COOKIE as $indice=>$str){
  24. $$indice =  $str ;
  25. echo "$indice = $str \n";
  26. }
  27. ?>
  28. <p>Ver variables de sesion</p>
  29. <?php
  30. foreach ($_SESSION as $indice=>$str){
  31. $$indice =  $str ;
  32. echo "$indice = $str <br>";
  33. }
  34. ?>

loguin.php, aqui se crean las variables de sesion (una vez que veriificas el usuario correcto, yo en el ejemplo no valido nada, solo que se haga el post)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. if(isset($_POST['procesar_ingreso'])){
  4. $ingreso_usuario = $_POST['ingreso_usuario'];
  5. }else{
  6. echo "error, no hubo post";
  7. exit();
  8. }
  9. $_SESSION['logueado'] = "si";
  10. $_SESSION['usuario'] = $ingreso_usuario;
  11. // para hacer el test deshabilitamos la redirección automática a través de headers
  12. //header('Location: sesion.php');
  13. echo "<br><a href='sesion.php'>ir al inicio</a>";
  14. ?>
  15.  
  16. <hr>
  17. <p>Ver cookies de sesion</p>
  18. <?php
  19. foreach ($_COOKIE as $indice=>$str){
  20. $$indice =  $str ;
  21. echo "$indice = $str \n";
  22. }
  23. ?>
  24. <p>Ver Variables de sesion</p>
  25. <?php
  26. foreach ($_SESSION as $indice=>$str){
  27. $$indice =  $str ;
  28. echo "$indice = $str <br>";
  29. }
  30. ?>

salir.php (el logout, cierre se sesion y expiracion de cookie de sesion)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. $_SESSION = array();
  4. if (ini_get("session.use_cookies")) {
  5. setcookie(session_name(), '', time() - 60000,
  6. $params["path"], $params["domain"],
  7. $params["secure"], $params["httponly"]
  8. );
  9. }
  10. // para hacer el test deshabilitamos la redirección automática a través de headers
  11. //header('Location: sesion.php');
  12. echo "<br><a href='sesion.php'>ir al inicio</a>";
  13. ?>
  14. <p>Ver cookies de sesion</p>
  15. <?php
  16. foreach ($_COOKIE as $indice=>$str){
  17. $$indice =  $str ;
  18. echo "$indice = $str \n";
  19. }
  20. ?>
  21. <p>Ver variables de sesion</p>
  22. <?php
  23. foreach ($_SESSION as $indice=>$str){
  24. $$indice =  $str ;
  25. echo "$indice = $str <br>";
  26. }
  27. ?>

Como verás eliminé la redireccion automática para que puedas analizarlo, y al pie de cada archivo, deje a manera de debug, que te muestre los valores actuales. para la cookie y para las variables de sesion.

Cuando entiendas bien el funcionamiento, creo que te será más fácil resolver tu problema.

Sería oportuno tambien que pidas muevan tu post al foro de php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.