在CodeIgniter中更改表单操作位置

时间:2010-09-14 17:03:57

标签: php codeigniter

我正在为客户端使用Codeigniter编写Web应用程序,并使用其内部开发机器之一。由于安全限制,Web服务器端口仅在内部,不会暴露给外部世界,因此我必须通过SSH隧道访问它。所以我点击了这样的网络服务器:http://localhost/path_to_data

我正在使用标准的Form Helper在Codeigniter中创建一个表单,唯一的问题是表单的操作指向Codeigniter配置文件中的框的位置。我无法更改此配置值,因为我们有内部开发人员也访问它,不会使用SSH隧道,因此他们通过“真实”URL来访问它。

有没有办法强制Codeigniter使用表单指向相对路径而不是完整路径?

1 个答案:

答案 0 :(得分:0)

form_open()使用config.php中设置的基本网址:$config['base_url']。尝试根据$_SERVER['SERVER_NAME']使其成为条件。这样,使用“http://demo.local”的内部开发人员以及使用“http://localhost/”的内部开发人员将能够根据他们访问服务器的方式查看正确的绝对URL。

$config['base_url'] = 'http://demo.local/' ;
if ($_SERVER['SERVER_NAME'] == 'localhost') {
    $config['base_url'] = http://localhost/' ;
}

作为旁注,我注意到form_open()检查传递的参数是否是一个完整的URL(特别是如果它包含一个“://”),如果是,那么它将它设置为表单的动作而不是任何处理。因此,您可以调用form_open("http://localhost/form_submit")并在不使用base_url的情况下按原样使用它。