繁体   English   中英

注册后如何将用户标识存储在新创建用户的会话变量中

[英]how to store the userid in the session variable for newly created user after registration

我在从MySql表的userid列中获取值并将其存储在会话中时遇到问题。

这是详细的问题:

我的数据库有很多表,但现在考虑2。

表名登录

| userid | username | password

表名person_details

| firstname | lastname | dob

除此之外,我(考虑)2页,其中2种形式(每页1页);

一个用于登录,其他用于登录后的详细信息。

我的person_details表的useridlogin表的外键。

我想要的是当用户注册时,提供的usernamepassword应使用唯一的(自动生成的) userid username保存在login表中,该userid目前运行良好。*

现在问题出在这部分。 当用户注册后,他/她将被定向到person_details表单,并在填写表单后单击“提交”,数据应保存到person_details表中, 并具有与“ login”表中相同的“ userid”

In order to do that I think i have to store the 'userid' in the session variable so that it can be used as a parameter while inserting the value to 'person_details' table but i am not able to pass that value.

这是我的代码:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "login")) {
$insertSQL = sprintf("INSERT INTO secure_login (username, password) VALUES (%s, %s)", GetSQLValueString($_POST['username'], "text"), GetSQLValueString($_POST['password'], "text"));

mysql_select_db($database_mydatabase, $mydatabase);
$Result1 = mysql_query($insertSQL, $mydatabase) or die(mysql_error());
$obj = @mysql_fetch_object($Result1);
$_SESSION['userID']=$obj->userid;

我也尝试过,但是没有运气

    mysql_select_db($database_mydatabase, $mydatabase);
$Result1 = mysql_query($insertSQL, $mydatabase) or die(mysql_error());
$_SESSION['userID']=$Result1->userid;

这是我尝试时遇到的错误:

Cannot add or update a child row: a foreign key constraint fails (`mydatabase`.`personaldetails`, CONSTRAINT `personaldetails_ibfk_2` FOREIGN KEY (`userid`) REFERENCES `secure_login` (`userid`) ON DELETE CASCADE ON UPDATE CASCADE)

我没有会话就尝试了,没关系,数据已使用自动生成的userid保存到了person_details表中。

如果您需要任何代码或其他任何信息,请告诉我。

编辑我在会话变量中获得了userID,所以解决了一半的问题。 现在,我要做的就是为person_details设置相同的用户ID。

PS:当我在这里发布此问题时,我希望得到一个答案,但我得到的只是一些访问,还有一个同伴在为我做一些编辑(我认为他非常喜欢,他以代码的形式编辑了我的一些评论),谢谢朋友。

您的问题很难理解,并且声称已解决了一半问题的编辑并不能很好地解决问题。 这里有一些建议:

  1. 停止使用mysql_并开始使用mysqli_
  2. 我认为您不会因为插入而成功捕获任何项目
  3. 如果未按在目标表中出现的确切顺序插入值,则需要枚举要插入的值。

     INSERT INTO person_details(firstname, lastname, dob, userid) VALUES('firstname', 'lastname', 'dob', 'userid'); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM