2012-07-14 14 views
10

tengo esta consulta en MySQL en una página php:de sesiones en PHP en Social Engine

mysql_query("INSERT INTO tz_todo SET text='".$text."', 
            position = ".$position.", 
            user_id=".$_SESSION['user_id'].", 
            view_stat=0"); 

que intentó hacerse eco de la consulta y el resultado es el siguiente:

INSERT INTO tz_todo SET text='trial text', position = 21, user_id=, view_stat=0 

parece que se no puede obtener el valor de sesión de user_id.

Y $_SESSION['user_id'] no funciona en el motor social. ¿Cómo corregir esto? También hice una versión localhost en mi xampp y todo está bien, pero cuando la convertí en un motor social, la sesión no funciona.

+4

¿llama 'session_stat();' al principio del archivo? – David

+1

Comprueba si hay funciones de motor social nativas para manejar la sesión y úsalas para almacenar/obtener información desde allí. –

+0

@David Sí. Ya comencé la sesión. – KazuNino

Respuesta

0
session_start(); 
$_SESSION["test"] = "hello world"; 
session_start(); 
echo $_SESSION["test"]; 

hace por encima de código de trabajo? Si no es así, comprobar su session.save_path en el php.ini

NOTA: para retener esta variable recuerde llamar a session_start() en cada script php/página antes de llamar a la variable de la sesión.

+0

, el código funciona, pero el motor social no conservará el valor de la sesión. – KazuNino

+1

Mira en este enlace: http://www.socialengineforum.com/index.php?/topic/15992-bug-fix-your-session-configuration-is-incorrect/ – Sathishkumar

+0

Lo he intentado también pero no pasa nada: ( – KazuNino

2

En cualquier página en la que utiliza objetos de sesión, coloque este código al principio del archivo:

if(!isset($_SESSION)){session_start();} 

De esta manera si no se ha iniciado la sesión, que comienza ella; de lo contrario, ignora el inicio de la sesión si la sesión ya ha comenzado. Esto es importante porque al llamar a session_start() si la sesión ya se ha iniciado, a veces puede provocar errores.

0

Yoy podría olvidarse de empezar la sesión en la parte superior de la página

<?php if(!isset($_SESSION)){ session_start(); } ?>

$ _SESSION [ 'user_id'] puede que no se almacena un valor. comprobar su página de inicio de sesión (Básicamente después de las variables de sesión de inicio de sesión fijarán) o después del tiempo de registro que ha asignado un valor a la variable de sesión ..

establecer un valor a una variable de sesión:

$ _SESSION [ 'user_id '] = "1234567";

1

Así es como consigo mi ID de usuario a través de la sesión

session_start(); 

$userID = $viewer->getIdentity(); 

$_SESSION['user_id'] = $userID; 

echo $_SESSION['user_id']; 
1

Usando sesión para almacenar el user_id es totalmente equivocado. Para obtener un user_id, pruebe

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity(); (o $ user-> getIdentity si tiene el objeto de otro usuario).

Si aún necesita utilizar la sesión para almacenar esta información, use Zend-approach.