1、新建一个php文件session.php,用于定义session
<?php
session_start();//这个不能少
$_SESSION['hid_name'];
$_SESSION['hid_email'];
$_SESSION['hid_sex'];
2、在控制器中给session赋值和获取session信息,已经把用户信息再次传入HTML中,使存在用户登陆信息时,用户信息输入框不再显示
include"session.php";//这是前面定义的那个php文件
session_start();
$login_name="";
$login_email="";
$login_sex="";
$test_post=$_POST['hid_name'];//用于测试post是否传来数据
$test_session=$_SESSION['hid_name'];//用于测试session里面是否已经具有数据
if(strlen($test_post)>0){
//第一次填写用户信息,其数据通过post传到控制器,在这一次将信息就写入session,
//发表留言后会刷新页面,这时post里面不会有数据,只能读取session里面的用户信息,避免右侧信息栏显示
$login_name=$_POST['hid_name'];
$login_email=$_POST['hid_email'];
$login_sex=$_POST['hid_sex'];
//为session赋值
$_SESSION['hid_name']=$login_name;
$_SESSION['hid_email']=$login_email;
$_SESSION['hid_sex']=$login_sex;
//将用户信息传入HTML
$this->assign("login_name",$login_name);
$this->assign("login_email",$login_email);
$this->assign("login_sex",$login_sex);
}
if(strlen($test_session)>0){
//第二次发表留言或刷新页面,则从session里面读取用户信息
//从session里面读取用户信息
$login_name=$_SESSION['hid_name'];
$login_email=$_SESSION['hid_email'];
$login_sex=$_SESSION['hid_sex'];
//将session里面的信息在此传入HTML
$this->assign("login_name",$login_name);
$this->assign("login_email",$login_email);
$this->assign("login_sex",$login_sex);
}
if(isset($_POST['submit'])){
//第一次提交表单时要接收表单上的用户信息
$user_name=$_SESSION['hid_name'];
$user_email=$_SESSION['hid_email'];
$user_sex=$_SESSION['hid_sex'];
//如果存在用户信息
if(strlen($user_name)>0 && strlen($user_email)>0){
$_SESSION['hid_name']=$user_name;
$_SESSION['hid_email']=$user_email;
$_SESSION['hid_sex']=$user_sex;
}
$this->assign("login_name",$login_name);
$this->assign("login_email",$login_email);
$this->assign("login_sex",$login_sex);
}
3、HTML部分
<div class="publisher_info">
<p class="name">昵称:</>
<input type="text" name="name" id="name_text" style="width: 100px;"/><p style="color: red; position: absolute; margin-top:-15px; margin-left:240px">*</p>
<p class="sex">性别:</p>
<input name="sex" type="radio" checked class="radio_sex" value="男"/>男
<input name="sex" type="radio" value="女" class="radio_sex"/>女</br>
<p class="email">邮箱:</p>
<input class="email_text" name="email" type="text" style="width: 100px;"/><p style="color: red; position: absolute; margin-top:-15px; margin-left:240px">*</p>
<input type="button" name="submit_user_info" id="submit_btn" class="user_info_btn" value="提交"/>
</div>
<div class="right_answer_div">
<textarea name="content" class="" id="ta"></textarea>
<input type="submit" value="提交" name="submit" id="submit" style="margin-left: 35px;"/>
<input type="hidden" value='<?php echo $sscode;?>' name="submit_sign" id="submit_sign"><!--隐藏域,用于记录session的值-->
<input type="hidden" value="<?php echo $login_name;?>" name="hid_login_name" id="hid_login_name"/>
<input type="hidden" name="hid_name" id="hid_name"/>
<input type="hidden" name="hid_login_email" value="<?php echo $login_email;?>" id="hid_login_email"/>
<input type="hidden" name="hid_email" id="hid_email"/>
<input type="hidden" name="hid_login_sex" value="<?php echo $login_sex;?>" id="hid_login_sex"/>
<input type="hidden" name="hid_sex" id="hid_sex"/>
</div>
实现的功能:在我的页面右侧有一个用户信息填写栏,用户必须提交自己的个人信息后才可以发表留言,用户提交个人信息后,这些信息将会被存入到session中,用户再次发表留言或者刷新页面时就不需要反复提交个人信息来进行留言了