我基本上是PHP的初学者。我对它有基本的了解,但我真的很难找到解决方案。
HomePage.php:
<?php
require('dbconnection.php');
if(isset($_POST)&&(sizeof($_POST)>0))
{
$sql_query_insert_user = "insert into users(user_fname,user_mname,user_lname,user_dob,user_email,user_doc,user_gender,user_nationality) values '$fname','$mname','$lname','$dob','$email','$doc','$gender','$nationality')";
mysql_query($sql_query_insert_user,$dbconnect) or die("cannot insert to user");
$user_id = mysql_insert_id();
session_start();
$_SESSION['user_id'] = $user_id;
$_SESSION['user_name'] = $user_name;
$sql_query_insert_user_login = "insert into users_login(user_id,user_name,user_password) values ('$user_id','$user_name','$user_password')";
mysql_query($sql_query_insert_user_login,$dbconnect) or die("cannot connect to user login");
}
?>
我尝试像这样访问会话变量:
UserHome.php
<?php
session_start();
echo $_SESSION['id'];
echo $_SESSION['user_name'];
?>
显示:
注意:未定义索引:id注意:未定义索引:user_name
有关此错误的任何想法?我花了很多年时间试图找出问题所在。
答案 0 :(得分:1)
您正在定义$_SESSION['user_id'] = $user_id;
,然后引用$_SESSION['id']
。它需要user_
前缀。
除了该错误之外,您需要确保在method="post"
标记中使用<form>
或if (isset($_POST...
阻止执行,以及您的会话变种永远不会被设定。
完成所有操作后,请停止使用mysql_*
个功能。他们已经弃用了,社区已经迁移到PDO和像MySQLi这样的类似替代品已经有一段时间了。