Сессия в PHP в Social Engine

У меня есть этот запрос в mysql на php-странице:

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

Я попытался выполнить эхо-запрос, и результат следующий:

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

кажется, что он не может получить значение сеанса user_id.

И $_SESSION['user_id'] не работает в социальном движке. Как исправить это? Я также сделал локальную версию в моем xampp, и все в порядке, но когда я преобразовал ее в социальный движок, сеанс не работает.

Ответ 1

На любой странице, где вы используете объекты сеанса, поместите этот код в начало файла:

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

Таким образом, если сеанс еще не запущен, он запускает его; в противном случае он игнорирует начало сеанса, если сеанс уже запущен. Это важно, потому что вызов session_start(), если сеанс запущен, может иногда приводить к ошибкам.

Ответ 2

То, как я получаю свой идентификатор пользователя через сеанс

session_start();

$userID = $viewer->getIdentity();

$_SESSION['user_id'] = $userID;

echo $_SESSION['user_id'];

Ответ 3

Использование сеанса для хранения user_id совершенно неверно. Чтобы получить пользовательскую попытку

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity(); (или $user- > getIdentity, если у вас есть другой объект пользователя).

Если вам все еще нужно использовать сеанс для хранения этих данных, используйте Zend-подход.

Ответ 4

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

работает ли над кодом? если нет, проверьте session.save_path в php.ini

ПРИМЕЧАНИЕ. Чтобы сохранить эту переменную, не забудьте вызвать session_start() на каждой странице php script/page, прежде чем вызывать переменную из сеанса.

Ответ 5

Yoy может забыть начать сеанс в верхней части страницы

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

$_ SESSION ['user_id'] может не сохранять значение. проверьте свою страницу входа (в основном после того, как будут установлены переменные сеанса входа) или после регистрации погоды вы присвоили значение этой переменной сеанса..

установка значения переменной сеанса:

$_ SESSION ['user_id'] = "1234567";