[Resuelto] ayuda, uso de variables de sesion en php

Iniciado por Misterio_S, 20 Diciembre 2014, 04:30 AM

0 Miembros y 1 Visitante están viendo este tema.

Misterio_S

estoy teniendo problemas con las variables de sesion, tengo un php principal que muestra una imagen y enlaces hacia otras secciones "mis_notas, mis_contactos, recetas" la primera ves que alguien entra en principal.php muestra "hola, invitado inicia sesion", tengo otro php acceso.php aqui escribes usuario/contraseña para logearse y guardar en las variables de sesion la conexion mysql (mysql_connect), nombre , apellido, y demas datos recogidos de la basedatos y te vuelve a mandar a principal.php require principal.php y esta ves muestra "hola, juan carlos garcia " que es el usuario logeado (hasta aqui todo bien), ahora de aqui (principal.php) intento entrar a las otras secciones "mis_notas, mis_contactos" , pero parece que el php no reconoce las variables de sesion , al usar esas variables sale :

"undefined variable nombre en c:\xamp\htdocs..."
undefined variable apellido en c:\xamp\htdocs...

trate cambiar varias cosas pero no hay solucion , ahora sale:

Warning: mysql_query() expects parameter 2 to be resource, integer given in C:\xampp\htdocs\...


esto es parte del codigo
Código (php) [Seleccionar]
$_SESSION['link'] = mysql_connect($Host,$Usuario,$Clave);

   if ($_SESSION['link']==true)
   {
      echo "conexion correcta";
        $_SESSION['apellido'] = ...



como ven guardo la conexion en una variable sesion pero despues cuando consulto ese valor 'link' desde mis_notas.php ya no existe, nisiquiera existe la sesion php, para comprobar la sesion uso esto:
Código (php) [Seleccionar]
<?php
if (strlen(session_id())> 0)
{
    echo 
"ya existe una sesion anterior<br>";
}
else
{
    echo 
"no hay sesion iniciada<br>";


no se , pero parece que las variables de sesion tienen algunas limitaciones o algo asi, alguien por favor ayudeme o expliqueme cual podria ser el problema.



edit:

estuve viendo el valor que retorna session_id() despues de llamar a session_start() y siempre es el mismo, parece que el problema esta más en guardar la conexion mysql en la variable de sesion.

engel lex

tendŕas que mostrar un poco más de tu php


para ver completo el contenido de la varible de sesion usa
Código (php) [Seleccionar]
echo "<pre>";
print_r($_SESSION);
echo "</pre>";


con eso puedes ver toodo el contenido... ve que cargas y ue te llega y avisas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Misterio_S

si eso estoy haciendo, y ya note que el problema es la variable de conexion de tipo recurso (resource creo), y parece que ese tipo variables no se guardan del todo bien en las variables de sesion, porque cuando probe las demas variables tipo texto funcionan normal, queria ahorrame conectar y consultar  a la base de datos por cada php y por eso quise guardar la conexion en las variables de sesion ,pero pues ni modo lo hare una conexion por cada php, encontre algunas consultas en otros foros con el mismo problema.

http://www.forosdelweb.com/f68/guardar-ojeto-conexion-sesion-589219/

gracias.

engel lex

efectivamente, al finalizar el script se cierra forzosamente el mysql, y el recurso que es el "instante de conexion" se vence... tienes que abrir el mysql en cada conexion
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.