将表单发布到服务器并将user_id保存到$ _SESSION后的未定义索引

时间:2013-03-10 18:04:09

标签: php session

我基本上是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

有关此错误的任何想法?我花了很多年时间试图找出问题所在。

1 个答案:

答案 0 :(得分:1)

您正在定义$_SESSION['user_id'] = $user_id;,然后引用$_SESSION['id']。它需要user_前缀。

除了该错误之外,您需要确保在method="post"标记中使用<form>if (isset($_POST...阻止执行,以及您的会话变种永远不会被设定。

完成所有操作后,请停止使用mysql_*个功能。他们已经弃用了,社区已经迁移到PDO和像MySQLi这样的类似替代品已经有一段时间了。