我做了一个 3 步(3 个不同的页面)注册过程:第一步:用户提供基本信息(姓名、密码、性别、生日等)第二步:用户提供额外信息(关于、职业、兴趣等),提交数据并获得验证链接第三步:显示注册状态(成功或失败)我使用会话主要存储信息。像这样的会话变量$_SESSION["step_one_complete"]告诉我上一步已完成,这是必需的。我在signup.php页面开头使用了以下代码,以便每次signup.php加载前一个会话数据时都会被清除:<?php //signup.php(step one)session_start();//Clear previous session data$_SESSION = array();//I'm not sure about the two lines bellowsession_destroy();//Restart sessionsession_start();...我需要我在代码中提到的两行吗?我是否正确使用了会话?还是有更好的方法来处理多步骤表单?谢谢!
1 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
你只需要start_session,你不需要覆盖或销毁它。
也许我没有正确理解这个问题,但是当您执行start_session() 时,您可以通过启动新会话或恢复现有会话来启用当前 php 脚本中的会话。我认为就您而言,这就是您所需要的。参考:PHP - session_start
另外,我认为覆盖会话是不好的做法,您也可以删除您不打算删除的内容。如果你想重置你的变量,我建议你将它们存储到一个数组中,比如
$_SESSION['form']['email']
然后如果你想重置 make
$_SESSION['form'] = array();
我认为如果你制作这样的结构,你可以做得更好:
function is_first_step_completed() // checks if the first step fields are filled or not
function is_second_step_completed() // checks if the second step has all fields completed
if (!is_first_step_completed()) {
// show first step
}
而不是存储变量 is_first_step_completed。如果您使用这样的变量,则需要始终将其设为真或假。
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消
