【问题标题】:Changing Form Action Location in CodeIgniter在 CodeIgniter 中更改表单操作位置
【发布时间】:2010-09-14 17:03:57
【问题描述】:

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

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

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

【问题讨论】:

标签: php codeigniter


【解决方案1】:

form_open() 使用 config.php 中设置的基本 url:$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 的情况下按原样使用它。

【讨论】:

  • 效果很好,不知道为什么我自己没有想到这一点。谢谢!
  • 效果很好,不知道为什么我自己没有想到这一点。谢谢!
猜你喜欢
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-01
  • 2013-04-11
  • 2012-04-25
  • 1970-01-01
  • 2017-09-17
相关资源
最近更新 更多