Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/09/2015, 11:59
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Problemas con $_SESSION y header "Location"

Cita:
Iniciado por lubtufano Ver Mensaje
La función header debe usarse siempre antes de mostrar nada con echo, de no ser así header no funcionará, mira el manual.

http://php.net/manual/es/function.header.php
Cita:
Iniciado por xfxstudios Ver Mensaje
El echo alli no tiene practicamente ninguna utilidad porque la redireccion es inmediata al realizarse la comprobacion asi que lo puedes eliminar, en cuanto al header prueba cobn comillas simples, algo asi:


echo innecesario:
Código PHP:
Ver original
  1. echo "La sesión se llama: " .$sesion;


header con comillas simples, a mi me funciona asi sin problemas, claro sin ningún echo antes de el
Código PHP:
Ver original
  1. header('Location: http://google.es/');
Hola de nuevo.

La verdad es que lo del html etc etc lo sabía pero no me había planteado el tema de los "echo" incluso aun siendo como ejemplo ya que en algunos casos los suelo poner para ver si hace la ejecución correcta. Ahora he borrado todos estos y despúes de ver otros fallos la mayoría me funciona correctamente, sin embargo hay algunos que no puedo ya que los tengo dentro de includes. Por ejemplo algo así en el archivo "usuarios.php".

Código HTML:
Ver original
  1. <article>  
  2.             <h2>Preferencias del usuario</h2>      
  3.            
  4.             <?php
  5.  
  6.             if(isset($_GET['source'])){
  7.                 $source = $_GET['source'];
  8.             }
  9.             else{
  10.                 $source = "";
  11.             }
  12.  
  13.             switch ($source) {             
  14.                 case 'editar_usuario':
  15.                 include "inc/editar_usuario.php";
  16.                 break;
  17.                 default:
  18.                 include "inc/usuario.php";
  19.                 break;
  20.             }
  21. ?>

Y donde tengo la redirección es en "inc/editar_usuario.php" pero claro ahora tengo que cambiarla de ruta o buscar otra manera que no sea esa meta que acabo de incluir por el momento:

Código PHP:
Ver original
  1. <?php
  2. if($editar_usuario_query = mysqli_query($conexion, $query)){                                       
  3.                 //echo "Editado correctamente, redirijo";
  4.                 echo "<meta http-equiv='Refresh' content='0;URL=\"http://.../jose_c//jose_c/usuarios.php?id=$id_usuario\"'>";  
  5.                 //header("Location:http://.../jose_c/usuarios.php?id=$id_usuario");
  6.                
  7.             }
  8.             else {
  9.                 //header("Location: http://.../jose_c/usuarios.php?id=$id_usuario");
  10.                 echo "Error de edición". confirmarConsulta($edit_user_query);
  11.             }
  12. ?>

¿Alguna otra recomendación? Gracias a ambos por la ayuda.