在表单对应的函数中,添加表单验证的代码。这是最简单的表单验证,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');
 }
}
?>

posted on 2012-01-20 13:05  vesa3.0  阅读(441)  评论(0编辑  收藏  举报