现在来测试一下我们写出来的网页~
发现注册之後只会看到"success"的讯息
於是我们要修改程序码
让使用者在注册之後可以被引导到welcome
页面
新增以下在controller/user.php
的register()内:
$this->welcome();
记得是在注册之後唷~
这样就可以成功重新导向欢迎页面了
咦?
浏览器报错了
是甚麽问题呢?
哦原来是因为前几天,我们有设定session暂存username
,而注册完并没有存session,所以浏览器读不到username
了解bug产生的原因後,随即前往修复
一样到controller/user.php
的register()新增一行:
$this->session->set_userdata($sess_data = array('username' => $data['username']));
测试一下:
先随便找个帐号注册
测试成功~
其实也不太算
透过刚刚的注册测试会发现
之前我们的register主要获取view传来的使用者资料是在model中
这不太符合我们的MVC分工开发模式
所以我们把这件事拉回controller中执行。
controller/user.php
中的register():
$data = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password'),
'name' => $this->input->post('name'),
'gender' => $this->input->post('gender'),
'about' => $this->input->post('about'),
);
$this->user_model->register($data);
等我们的controller拿到data之後,再传给model
而model/user_model.php
中的register():
public function register($data)
{
$this->db->insert('user', $data);
}
如果刚刚注册测试时,就算用了之前已经注册的帐号(test之类的)
我们的网页还是会让你注册通过,而导致database中
username叫test的有好几个
为了避免这个使用者名称重复的情况发生
我们在controller多一些判断
username
给Model做搜寻username
的data。如果有就报错给使用者并让使用者重新注册首先,我们再user_model.php
新增一个函式回传相同username的资料个数:
public function checkreg($data)
{
return $this->db->where('username',$data['username'])
->get('user')
->num_rows();
}
接着到controller/user.php
底下修改register():
public function register()
{
$data = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password'),
'name' => $this->input->post('name'),
'gender' => $this->input->post('gender'),
'about' => $this->input->post('about'),
);
$check = $this->user_model->checkreg($data);
if($check == 0){
$this->user_model->register($data);
$this->session->set_userdata($sess_data = array('username' => $data['username']));
$this->welcome();
}
else{
echo "使用者名称已被注册";
echo "<button><a href=".base_url()."index.php/register style='text-decoration:none; color:black'>返回</button>";
}
}
然後把welcome.php
的login success改成:
<h1>Welcome <?php echo $_SESSION['username'] ?></h1>
大功告成~~
接着来测试看看吧~
我们利用刚刚注册的tttt来试试看~
这样就成功预防相同username注册帐号的情况罗~~
>>: [DAY 29] 章节3-9: 一切都是假象-辛普森悖论(Simpson’s paradox)(统计谬误)
Download free KingRoot App for your Smartphone tha...
● 这章会示范如何透过永丰iLeader查询交易帐务 接续前一章,我们这章来查询股票买卖的交易纪录 ...
大家好,我是阿飞,今天的题目是演算法初阶题目 Two Sum,让我们一起来看看: 题目来源 Code...
督促自己每天学习的方法就是在健康情况允许的情况下,每天至少丢一篇正在学习中的文章 单元测试是甚麽 1...
JavaScript Array (阵列) 阵列 (array) 是一个有序的序列,阵列中可以储存不...