现在我们的网页已经具有相当基本的功能了
但是,有一个很容易发现的问题,
就是浏览器并没有记住使用者的资讯,而造成每一次都要重新登入
带来我们的新产品--Session
来看看官方怎麽说:
session类别允许你在使用者浏览你的网页时, 保存使用者的"状态"及纪录使用者活动。Session类别将每个使用者的session资讯序列化 (并可经过加密)後, 储存在cookie中。
这正是我们要的保存使用者的状态和纪录使用者活动
要使用session前,要先载入(load)
可以直接利用config/autoload.php
$autoload['libraries'] = array('session');
或是直接在档案中打上
$this->load->library('session');
接着到config/config.php
修改:
$config['sess_expiration'] = 0;
sess_expiration是希望session存在的秒数,设为0的目的是要让session不会过期,直到浏览器关闭
我们要在使用者登入後记住使用者资讯,所以到User.php
底下的login()做修改:
public function login()
{
$check_data = $this->user_model->login($this->input->post('username'));
if($check_data == ""){
echo "Unregister user.";
}
else{
if($check_data->password == $this->input->post('password')){
$data = $check_data;
$this->session->set_userdata($sess_data = array('username' => $data->username));
$this->welcome($data);
}
else{
echo "Password Error!";
}
}
}
将资讯(使用者的username)用session储存起来
接着来到login.php
登入的介面,新增以下内容:
<?php
$this->load->helper('url');
if(isset($_SESSION['username'])){
redirect('index.php/user/welcome', 'refresh');
}
?>
这段意思就是当使用者有登入过而留下session纪录时,在登入页面可以直接重新导向至後续的网页。
昨天的资料传递问题也可以一并解决~
修改welcome()
,把参数拿掉~
public function welcome()
{
$this->load->view('pages/welcome.php');
}
和
pages/welcome.php
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Home</title>
</head>
<body>
<h1>Login Success!</h1><br>
<h2>Then what do you want to do?</h2>
<form method=post action="gotoupdate">
<button type="submit">点我进行资讯更改</button>
</form>
</body>
</html>
修改gotoupdate()
:
public function gotoupdate()
{
$check_data = $this->user_model->login($_SESSION['username']);
$data['about'] = $check_data->about;
$data['username'] = $this->input->post('username');
$this->load->view('pages/update.php',$data);
}
接着来测试一下吧~
一样打开 http://localhost/ci/index.php/
登入之後再回到http://localhost/ci/index.php/
然後再按下登入
就会直接略过登入的步骤而到登入後的介面罗~
<<: [Day - 27] React Bootstrap 套件心得分享
看到书上特别讲述Servo的控制 仔细看了一下 发现这个可分别控制到机器人的关节转动或是当成指示刻度...
使用地图区块,可将地图嵌入网站上的任何文章或页面之内。 若要新增地图区块,请按一下区块插入工具图示。...
新增一个C# Sprite并命名为PlayerController後开始撰写程序码 using Un...
昨天在controller有做了一个post的登入api, 不过也就只是验证你传入的帐密有没有正确而...
ls 指令会列出目录中的各个档案与目录,供使用者浏览整个目录的结构,是个十分常用的指令。 但它的设计...