未定义索引:user_id。其中,user_id 是 session 变量
Undefined index: user_id. Where, user_id is session variable
我正在尝试注册用户。注册用户后直接登录。所以基本上我想马上注册就开始session
但是我无法这样做,因为 session 变量没有设置!这让我很头疼:(
请帮帮我..
这里是插入用户的代码table:
// Add register user
if(isset($_POST["register_btn"]))
{
extract(array_map("test_input", $_POST));
$md5pass=md5($password);
$m->set_data('full_name',$full_name);
$m->set_data('gender',$gender);
$m->set_data('email',$email);
$m->set_data('mobile',$mobile);
$m->set_data('password',$md5pass);
$m->set_data('created_date',$date);
$m->set_data('updated_date',$date);
$a1= array ('role_id'=> 2,
'full_name'=> $m->get_data('full_name'),
'gender'=> $m->get_data('gender'),
'email'=> $m->get_data('email'),
'mobile'=> $m->get_data('mobile'),
'password'=> $m->get_data('password'),
'created_date' => $m->get_data('created_date'),
'updated_date' => $m->get_data('updated_date'));
$last_auto_id=$d->last_auto_id("users");
$res=mysqli_fetch_array($last_auto_id);
$user_id=$res['Auto_increment'];
// inserting into users table
$insert=$d->insert('users',$a1);
if($insert>0)
{
// I am starting session here
$_SESSION['user_id']=$user_id;
header("location:account.php?msg=Your account has been created.");
}
else {
header("location:account.php?msg=Error.");
}
}
现在,如果我尝试在下面的代码中打印 $_SESSION['user_id']:
<?php
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
echo "Welcome, ".$_SESSION['user_id'] ;
}
?>
它给我输出:
Your account has been created.
Notice: Undefined index: user_id in
C:\xampp\htdocs\maxosale_client\account.php on line 30 Welcome,
我在 header 中编写了 session_start() 并包含在上面的代码中,所以这不是问题所在。
所以这是我的问题,请帮助我。
您应该在使用任何 $_SESSION 变量之前使用 session_start()。
<?php
session_start();
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
echo "Welcome, ".$_SESSION['user_id'] ;
}
?>
通知后,您能看到$_SESSION['user_id']
值吗?如果是这样,试试这个:
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
$user_id = isset($_SESSION['user_id']) ? trim($_SESSION['user_id']) : '';
echo "Welcome, " . $user_id ;
}
如果您在该通知后看不到 $_SESSION['user_id']
值,则表明会话处理存在问题。根据代码中的 php error_reporting 设置或 php.ini 文件设置,您会看到通知/警告/错误。
我明白这个问题了。我没有在向用户插入数据的页面中开始我的会话 table。
现在我输入 session_start();
它运行得很好。
此处代码:
session_start();
// Add register user
if(isset($_POST["register_btn"]))
{
extract(array_map("test_input", $_POST));
$md5pass=md5($password);
$m->set_data('full_name',$full_name);
$m->set_data('gender',$gender);
$m->set_data('email',$email);
$m->set_data('mobile',$mobile);
$m->set_data('password',$md5pass);
$m->set_data('created_date',$date);
$m->set_data('updated_date',$date);
$a1= array ('role_id'=> 2,
'full_name'=> $m->get_data('full_name'),
'gender'=> $m->get_data('gender'),
'email'=> $m->get_data('email'),
'mobile'=> $m->get_data('mobile'),
'password'=> $m->get_data('password'),
'created_date' => $m->get_data('created_date'),
'updated_date' => $m->get_data('updated_date'));
$last_auto_id=$d->last_auto_id("users");
$res=mysqli_fetch_array($last_auto_id);
$user_id=$res['Auto_increment'];
// inserting into users table
$insert=$d->insert('users',$a1);
if($insert>0)
{
// I am starting session here
$_SESSION['user_id']=$user_id;
header("location:account.php?msg=Your account has been created.");
}
else {
header("location:account.php?msg=Error.");
}
}
如果某些技巧不起作用,您可以添加
error_reporting(0);
在初始化会话变量之前,您将摆脱它。
我正在尝试注册用户。注册用户后直接登录。所以基本上我想马上注册就开始session
但是我无法这样做,因为 session 变量没有设置!这让我很头疼:(
请帮帮我..
这里是插入用户的代码table:
// Add register user
if(isset($_POST["register_btn"]))
{
extract(array_map("test_input", $_POST));
$md5pass=md5($password);
$m->set_data('full_name',$full_name);
$m->set_data('gender',$gender);
$m->set_data('email',$email);
$m->set_data('mobile',$mobile);
$m->set_data('password',$md5pass);
$m->set_data('created_date',$date);
$m->set_data('updated_date',$date);
$a1= array ('role_id'=> 2,
'full_name'=> $m->get_data('full_name'),
'gender'=> $m->get_data('gender'),
'email'=> $m->get_data('email'),
'mobile'=> $m->get_data('mobile'),
'password'=> $m->get_data('password'),
'created_date' => $m->get_data('created_date'),
'updated_date' => $m->get_data('updated_date'));
$last_auto_id=$d->last_auto_id("users");
$res=mysqli_fetch_array($last_auto_id);
$user_id=$res['Auto_increment'];
// inserting into users table
$insert=$d->insert('users',$a1);
if($insert>0)
{
// I am starting session here
$_SESSION['user_id']=$user_id;
header("location:account.php?msg=Your account has been created.");
}
else {
header("location:account.php?msg=Error.");
}
}
现在,如果我尝试在下面的代码中打印 $_SESSION['user_id']:
<?php
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
echo "Welcome, ".$_SESSION['user_id'] ;
}
?>
它给我输出:
Your account has been created.
Notice: Undefined index: user_id in C:\xampp\htdocs\maxosale_client\account.php on line 30 Welcome,
我在 header 中编写了 session_start() 并包含在上面的代码中,所以这不是问题所在。
所以这是我的问题,请帮助我。
您应该在使用任何 $_SESSION 变量之前使用 session_start()。
<?php
session_start();
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
echo "Welcome, ".$_SESSION['user_id'] ;
}
?>
通知后,您能看到$_SESSION['user_id']
值吗?如果是这样,试试这个:
extract(array_map("test_input", $_GET));
if(isset($msg)) {
echo $msg . "<br/>";
$user_id = isset($_SESSION['user_id']) ? trim($_SESSION['user_id']) : '';
echo "Welcome, " . $user_id ;
}
如果您在该通知后看不到 $_SESSION['user_id']
值,则表明会话处理存在问题。根据代码中的 php error_reporting 设置或 php.ini 文件设置,您会看到通知/警告/错误。
我明白这个问题了。我没有在向用户插入数据的页面中开始我的会话 table。
现在我输入 session_start();
它运行得很好。
此处代码:
session_start();
// Add register user
if(isset($_POST["register_btn"]))
{
extract(array_map("test_input", $_POST));
$md5pass=md5($password);
$m->set_data('full_name',$full_name);
$m->set_data('gender',$gender);
$m->set_data('email',$email);
$m->set_data('mobile',$mobile);
$m->set_data('password',$md5pass);
$m->set_data('created_date',$date);
$m->set_data('updated_date',$date);
$a1= array ('role_id'=> 2,
'full_name'=> $m->get_data('full_name'),
'gender'=> $m->get_data('gender'),
'email'=> $m->get_data('email'),
'mobile'=> $m->get_data('mobile'),
'password'=> $m->get_data('password'),
'created_date' => $m->get_data('created_date'),
'updated_date' => $m->get_data('updated_date'));
$last_auto_id=$d->last_auto_id("users");
$res=mysqli_fetch_array($last_auto_id);
$user_id=$res['Auto_increment'];
// inserting into users table
$insert=$d->insert('users',$a1);
if($insert>0)
{
// I am starting session here
$_SESSION['user_id']=$user_id;
header("location:account.php?msg=Your account has been created.");
}
else {
header("location:account.php?msg=Error.");
}
}
如果某些技巧不起作用,您可以添加
error_reporting(0);
在初始化会话变量之前,您将摆脱它。