在下面的代码中,我试图检索模块id,使用它来运行查询,以便能够找到属于该模块id的模块编号和模块名称,然后包括模块id、模块编号和模块名称的会话变量。
我遇到的问题是,尽管我正在使用(isset(),但我得到了$_SESSION['idmodule']的未定义索引,并且session运行良好,该会话变量没有问题,但其他两个会话变量存在问题。
现在查询是正确的,所以查询没有问题,只是我在猜测如何调用$_SESSION变量的问题。
代码如下:
if (isset($_POST['module']))
{
$query = "SELECT ModuleNo, ModuleName FROM Module WHERE ModuleId = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('s', $_POST['module'] );
$stmt->execute();
$stmt->bind_result($moduleno, $modulename);
while ( $stmt->fetch() ) {
// session data
if (isset($moduleno)){
$_SESSION['idmodule'] = $moduleno;
}
if (isset($modulename)){
$_SESSION['namemodule'] = $modulename;
}
}
$_SESSION['module'] = $_POST['module'];
}。
发布于 2012-11-29 11:18:39
if (isset($moduleno)){
$_SESSION['idmodule'] = $moduleno;
}
if (isset($modulename)){
$_SESSION['namemodule'] = $modulename;
}这两个语句都可以防止未设置$_SESSION['idmodule']或$_SESSION['namemodule'],因此当您稍后引用它们时,您可能会收到警告。
为了防止出现这种情况,在代码的后面你可能需要这样做:
if (isset($_SESSION['idmodule'], $_SESSION['namemodule']) {
// your code here更好的方法是清理一些东西:
while ( $stmt->fetch() ) {
// inside here $moduleno and $modulename are already set
$_SESSION['idmodule'] = $moduleno;
$_SESSION['namemodule'] = $modulename;
}如果找不到模块,最好跳过其余的代码,只显示一条错误消息。
https://stackoverflow.com/questions/13618226
复制相似问题