Codeigniter自定义url字符串

时间:2015-01-11 09:04:27

标签: php codeigniter

我是codeigniter的新手,我正在制作一个医生网站,并且需要允许用户使用像http://www.mywebsite.com/newyork之类的简单网址搜索医生。所以这个网址没有任何类,因为可能有很多州和州不能为每个州提供课程。我应该在路线脚本中更改404覆盖吗?或者有更好的方法来实现它

$route['(:any)']='search/check_state';

如果我使用上面的路由,那么像/ login这样的其他页面也不起作用。请帮助

2 个答案:

答案 0 :(得分:0)

试了一下

$route['search/check_state/:any'] ='search/check_state';

答案 1 :(得分:0)

创建包含所有状态的数据库并以这种方式执行

在search / check_state里面

// Get state from URL
$state = $this->uri->segment(1, "");

// Make sure state is not null and its found in database
if($state <> "" && $this->validateState($state)){
    // Valid state, continue
}else{
    // Give error message / redirect to 404 page
}

向控制器添加新功能

function validateState($state){
    // If database contains $state then return true else return false
}

<强>更新

您也可以使用POST表单。

将表单放入用户提供输入详细信息的页面

echo form_open(base_url().'path_to_post_validation');
// make form here that sends "state" into page that handles validation
echo form_close();

处理POST验证

// Make sure user has send POST request
if($this->input->post()){

    // Set form validation rules
    $this->form_validation->set_rules('state', 'state', 'required|trim|xss_clean');

    // Run form validation
    if ($this->form_validation->run() == TRUE){

        // Store state into variable
        $state = $this->input->post('state');

        // Check database that it contains $state and then continue or give error message
    }
}