Foros del Web » Programando para Internet » PHP »

Problema al pasar valor de una variable de sesion de un archivo A a otro B

Estas en el tema de Problema al pasar valor de una variable de sesion de un archivo A a otro B en el foro de PHP en Foros del Web. Hola amigos veran tengo un problema simple pero que me lleva de cabeza les cuento: tengo 2 archivos; En el archivo "A" declaro variables de ...
  #1 (permalink)  
Antiguo 17/07/2012, 02:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Problema al pasar valor de una variable de sesion de un archivo A a otro B

Hola amigos veran tengo un problema simple pero que me lleva de cabeza les cuento:


tengo 2 archivos;

En el archivo "A" declaro variables de sesion (id, nombre y avatar)

para poder recuperar los valores de esas variables en otro archivo "B",

pero solo puedo recuperar en el archivo "B" los valores de (nombre y avatar) pero no logro recuperar el numero de (id),

pueden ayudarme?, les estaria muy agradecido. este es el codigo:


Archivo "A":


Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. include "conex.php";
  5.  
  6. if ($_GET['id'] != "")
  7. {
  8.   $link=Conectarse();
  9.   $id_recibido = $_GET["id"];
  10.  
  11.  
  12.   $result = mysql_query("select * from users where id = '$id_recibido'");
  13.  
  14.     if($row = mysql_fetch_array($result))
  15.     {
  16.         $_SESSION["elid"] = $row["id"];
  17.         $_SESSION["username"] = $row["nombre"];
  18.         $_SESSION["elavatar"] = $row["avatar"];
  19.  
  20.         die (header('Location: /index.php?id='.$id_recibido));
  21.                      
  22.     }      
  23. }
  24.  
  25. .
  26. .
  27. .
  28. .
  29. .
  30. .
  31.  
  32. ?>


y el archivo "B":


Código PHP:
Ver original
  1. $elid = $_SESSION['elid'];
  2.                             $username = $_SESSION['username'];                                                     
  3.                             $elavatar = $_SESSION['elavatar'];
  4.  
  5.                                                        
  6.                             if (isset($_SESSION['username']))
  7.                             if (isset($_SESSION['elavatar']))
  8.                            
  9.                                                        
  10.                             {
  11.                                
  12.                                 echo '<br/>';
  13.                                 echo 'Soy, '.'<b>'.$_SESSION['username'].'</b>'.' '.'mi id es , '.'<b>'.$_SESSION['elid'].'</b>'."<img class='micro_avatar' height='24' src='$elavatar' alt='imagen_representativa'>";
  14.  
  15.                             }
  #2 (permalink)  
Antiguo 17/07/2012, 03:10
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

usa en todos los ficheros que trabajes con sesiones: (Por ejemplo en tu fichero B)

Código PHP:
Ver original
  1. <?php session_start(); ?>
  2. <?php //resto del script

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 17/07/2012, 03:29
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Si, si lo de session_start(); ya lo tengo puesto en los dos archivos y sigue sin funcionar.


Se que es una tonteria pero estoy aqui atascado que no veo la solucion.

help!!"
  #4 (permalink)  
Antiguo 17/07/2012, 04:07
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Lo primero.

Prueba con algo simple.

Fichero A:

Código PHP:
Ver original
  1. $_SESSION['name'] = 'Test';

Fichero B:

Código PHP:
Ver original
  1. if(isset($_SESSION['name'])) {
  2. echo $_SESSION['name'];
  3. } else {
  4. echo 'No no...';
  5. }
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #5 (permalink)  
Antiguo 17/07/2012, 04:27
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

HE puesto en el archivo A:

Código PHP:
Ver original
  1. $_SESSION['name'] = 'Test';

y en el archivo B:

Código PHP:
Ver original
  1. if(isset($_SESSION['name'])) {
  2. echo $_SESSION['name'];
  3. } else {
  4. echo 'No no...';
  5. }

Pero no me recoge ningun valor

Pero es raro por que el

Código PHP:
Ver original
  1. $_SESSION["username"] = $row["nombre"];


Si que me recoge el valor
  #6 (permalink)  
Antiguo 17/07/2012, 04:38
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Puedes probar:

Código PHP:
Ver original
  1. ini_set("display_errors", "1");

Quizás tu configuración para las sesiones no es correcta.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #7 (permalink)  
Antiguo 17/07/2012, 04:57
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 14 años, 2 meses
Puntos: 91
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Siguiendo con la respuesta de arriba te recomiendo veas las configuraciones de session en el php.ini

Comprueba que esté habilitado y que la carpeta donde se almacenan las sesiones tengan permisos para que el webservice pueda escribir.

Si no tienes acceso al php.ini pregunta a el responsable (hosting, administrador, etc..) si está habilitada esta opción.

Un saludo.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #8 (permalink)  
Antiguo 17/07/2012, 05:01
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Pero mirad, las sesiones de :


Código PHP:
Ver original
  1. $_SESSION["username"] = $row["nombre"];
  2.         $_SESSION["elavatar"] = $row["avatar"];


funcionan correctamente y puedo recoger sus valores en el archivo B


Si tuviera los problemas que me deciis no recogeria valores de ninguna sesion

  #9 (permalink)  
Antiguo 17/07/2012, 05:03
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 14 años, 2 meses
Puntos: 91
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

En el archivo A en la parte donde terminas el script die recibe como parámetro un integer o un string, en cambio header retorna void por lo que probablemente el problema esté en esa linea de código.

si quieres redirigir y asegurarte que se haga la redirección prueba de esta manera.

Código PHP:
Ver original
  1. header("Location: ...");

sino,

Siguiendo con la respuesta de arriba te recomiendo veas las configuraciones de session en el php.ini

Comprueba que esté habilitado y que la carpeta donde se almacenan las sesiones tengan permisos para que el webservice pueda escribir.

Si no tienes acceso al php.ini pregunta a el responsable (hosting, administrador, etc..) si está habilitada esta opción.

Un saludo.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #10 (permalink)  
Antiguo 17/07/2012, 10:00
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

vale hay ya un avance algo que por dar error ya es un indicio de que entra en la condicional miren a ver si pueden dar con la guinda de la solucion:


en el archivo "A" he puesto:

Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. include "conex.php";
  5.  
  6. if ($_GET['id'] != "")
  7. {
  8.   $link=Conectarse();
  9.   $id_recibido = $_GET["id"];
  10.  
  11.  
  12.   $result = mysql_query("select * from users where id = '$id_recibido'");
  13.  
  14.     if($row = mysql_fetch_array($result))
  15.     {
  16.         $_SESSION["elid"] = $row["id"];
  17.         $_SESSION["username"] = $row["nombre"];
  18.         $_SESSION["elavatar"] = $row["avatar"];
  19.        
  20.         die (header('Location: /index.php?id='.$id_recibido));
  21.                      
  22.     }      
  23. }
  24.  
  25. .
  26. .
  27. .
  28. .
  29. .
  30. .




y en el archivo "B"


Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3.                         if($_SESSION["elid"] == $row["id"])
  4.                         {
  5.                                 printf
  6.                                
  7.                 ("<div><a href='perfil_admin.php>hola</a></div>", $id);
  8.                                                                                  
  9.                                                     }
  10.                                                     else
  11.                                                     {
  12.                                                         echo "<font color='ff0000'><b>Error, intentelo de nuevo</b></font>";
  13.                                                     }
  14.                                                    
  15.                                                    
  16.                                                 {
  17.                                                 mysql_free_result($result);  
  18.                                                
  19.                                                
  20.                             }
  21.  
  22. ?>




Como digo da error, pero el error que me lanza es el mensaje de error de esta condicional asi que esta que quiere salir, solo falta que coja la id del archivo "A"



A ver si entre todos le ponemos la guinda al pastel, y gracias por ayudarme.
  #11 (permalink)  
Antiguo 17/07/2012, 10:06
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

que pasa si haces esto?

Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. include "conex.php";
  5.  
  6. if ($_GET['id'] != "")
  7. {
  8.   $link=Conectarse();
  9.   $id_recibido = $_GET["id"];
  10.  
  11.  
  12.   $result = mysql_query("select * from users where id = '$id_recibido'");
  13.  
  14.     if($row = mysql_fetch_array($result))
  15.     {
  16.         $_SESSION["elid"] = $id_recibido;
  17.         $_SESSION["username"] = $row["nombre"];
  18.         $_SESSION["elavatar"] = $row["avatar"];
  19.        
  20.         die (header('Location: /index.php?id='.$id_recibido));
  21.                      
  22.     }      
  23. }
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 17/07/2012, 10:15
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

Pues ya lo habia intentado antes sin exito, pero lo he vuelto a intentar por recomendacion tuya (por si sonaba la flauta) pero no sigue sin ir


Tiene que ser una tonteria por que esta a punto de caramelo pero se resiste y mira que como digo da el error de la condicion.
  #13 (permalink)  
Antiguo 17/07/2012, 10:33
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: Problema al pasar valor de una variable de sesion de un archivo A a otro

y si le cambias el nombre?

Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. include "conex.php";
  5.  
  6. if ($_GET['id'] != "")
  7. {
  8.   $link=Conectarse();
  9.   $id_recibido = $_GET["id"];
  10.  
  11.  
  12.   $result = mysql_query("select * from users where id = '$id_recibido'");
  13.   echo "elpoderosoid".$id_recibido;
  14.     if($row = mysql_fetch_array($result))
  15.     {
  16.         $_SESSION["elpoderosoid"] = $id_recibido;
  17.         $_SESSION["username"] = $row["nombre"];
  18.         $_SESSION["elavatar"] = $row["avatar"];
  19.        
  20.         die (header('Location: /index.php?id='.$id_recibido));
  21.                      
  22.     }      
  23. }
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: mysql, variables
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:17.