10

我在 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 中制作了一个本地主机版本,一切都很好,但是当我将它转换为社交引擎时,会话不起作用。

4

5 回答 5

2

在您使用会话对象的任何页面中,将此代码放在文件的开头:

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

这样,如果会话尚未启动,它将启动它;否则,如果会话已经开始,它将忽略会话开始。这很重要,因为如果会话已经启动,调用 session_start() 有时会导致错误。

于 2012-07-23T08:21:12.180 回答
1

使用 session 来存储 user_id 是完全错误的。要获得 user_id 试试

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity();(或 $user->getIdentity 如果您有另一个用户的对象)。

如果您仍然需要使用 session 来存储这些数据,请使用Zend-approach

于 2013-10-10T10:12:33.977 回答
1

这就是我通过会话获取用户 ID 的方式

session_start();

$userID = $viewer->getIdentity();

$_SESSION['user_id'] = $userID;

echo $_SESSION['user_id'];
于 2013-09-03T07:29:49.353 回答
0
session_start(); 
$_SESSION["test"] = "hello world";
session_start();
echo $_SESSION["test"];

上面的代码有效吗?如果没有,请检查php.ini 中的session.save_path

注意:要保留此变量,请记住在从会话中调用变量之前在每个 php 脚本/页面上调用 session_start()。

于 2012-07-14T10:59:05.700 回答
0

Yoy 可能会忘记在页面顶部开始您的会话

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

$_SESSION['user_id'] 可能没有存储值。检查您的登录页面(基本上在登录会话变量将设置之后)或在注册天气后您为该会话变量分配了一个值..

为会话变量设置值:

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

于 2012-07-25T07:20:35.303 回答