在表单对应的函数中,添加表单验证的代码。这是最简单的表单验证,username和password都不能为空。如果任何一个为空,则重新显示开始视图。通过这个验证之后才去验证是否正确登录!
其他的文件不变,变化的只是控制器start.php中的assessme函数。
start.php:
<?php
class Start extends CI_Controller
{
function __construct()
{
parent::__construct();
// $this->output->enable_profiler(TRUE);
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('unit_test');
$this->load->library('menu');
$this->unit->active(TRUE);
$this->load->database();
}
function index()
{
// $data['mytitle']="My site";
// $data['base']=$this->config->item('base_url');
// $data['css']=$this->config->item('css');
$data['mytitle']="A website to monitor other websites";
$data['text']="Please log in here!";
$mymenu=$this->menu->show_menu();
$data['menu']=$mymenu;
$this->load->view('entrypage',$data);
}
function hello($name)
{
echo $name;
}
function another_function()
{
echo "you are here!";
}
function assessme()
{
$this->load->library('form_validation');
$rules['username']="required";
$rules['password']="required";
$this->form_validation->set_rules($rules);
$this->load->library('session');
$name=$_POST['username'];
$password=$_POST['password'];
if($this->form_validation->run()==FALSE)
{$this->index();}
else
{
if($name=='fred' && $password=='12345')
{
$this->benchmark->mark('here_start');
$newdata=array('status'=>'ok');
$this->session->set_userdata($newdata);
echo $this->session->userdata('ip_address')."<br>";
echo $this->session->userdata('session_id')."<br>";
echo $this->session->userdata('user_agent')."<br>";
echo $this->session->userdata('last_activity')."<br><br>";
$currentsession=array('ip_address'=>$this->session->userdata('ip_address'),
'session_id'=>$this->session->userdata('session_id'),
'user_agent'=>$this->session->userdata('user_agent'),
'last_activity'=>$this->session->userdata('last_activity'));
$this->db->insert('ci_sessions',$currentsession);
$this->benchmark->mark('here_end');
echo $this->benchmark->elapsed_time('here','there')."<br>";
// $this->output->enable_profiler(TRUE);
$this->mainpage();
}
else
{
$this->index();
}
}
}
function mainpage()
{
$test=floor(1.56);
$expected_result=1;
$test_name='test php floor function';
$this->unit->run($test,$expected_result,$test_name);
$test=floor(2.56);
$expected_result=1;
$test_name='tests php floor function';
$this->unit->run($test,$expected_result,$test_name);
//echo $this->unit->result();
$this->load->view('mainpage');
}
}
?>