我想存储我在$_SESSION
中提交表单的用户的mysql数据库中的user_level
我的代码目前是这样的:
<form id='login' action='<?php echo $fgmembersite->GetSelfScript(); ?>' method='post' accept-charset='UTF-8'>
<fieldset >
<?php
if(isset($_POST['submitted']))
{
session_start();
if($fgmembersite->Login())
{
$mysqli = new mysqli('host', 'name', 'psw', 'db');
if ($result = $mysqli->query("SELECT user_level FROM users WHERE username='$username'")) {
$_SESSION['user_level'] = $result;
}
$fgmembersite->RedirectToURL("loginhome.php");
}
}
?>
<legend>Login</legend>
<input type='hidden' name='submitted' id='submitted' value='1'/>
<div class='short_explanation'>* benötigte Felder</div>
<div><span class='error'><?php echo $fgmembersite->GetErrorMessage(); ?></span></div>
<div class='container'>
<label for='username' >Benutzername*:</label><br/>
<input type='text' name='username' id='username' value='<?php echo $fgmembersite->SafeDisplay('username') ?>' maxlength="50" /><br/>
<span id='login_username_errorloc' class='error'></span>
</div>
现在我在网站上进行了检查,在那里您使用print_r($_SESSION);
进行了重定向,我得到了这样的结果:
[user_level] => mysqli_result Object ( [current_field] => [field_count] => [lengths] => [num_rows] => [type] => )
有谁可以向我解释那里发生了什么?或者出了什么问题?
答案 0 :(得分:1)
这可能无法解决您的问题,但应始终在脚本的最顶层开始会话。
<?php
if (!isset($_SESSION)) {
session_start();
}
// ... Other code ...
您的查询也存在问题。您应该像以下一样使用它:
$conn = new mysqli('host', 'username', 'password', 'database');
$stmt = $conn->prepare("SELECT * FROM table WHERE id = ?");
$stmt->bind_param("s", $editID);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
print_r($row);
答案 1 :(得分:0)
试试这个
1)在页面顶部开始session
2)您应该在associative array
中获取数据,然后在session
variable
中分配值
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$_SESSION['user_level'] = $row['user_level'];
}