我不知道我做错了什么,但我只是搞砸了一下
我有一个调用控制器的href
<a href="<?php echo base_url();?>mailing/index/?club=<?php echo $club_info[0]['club_title'];?>"><img src="<?php echo base_url();?>assets/front_assets/images/button_joinclub.png" width="180" height="44" border="0"></a>
现在功能就是这个
class mailing extends CI_Controller{
private $pagesize = 20;
function __construct() {
parent::__construct();
@session_start();
}
function index()
{
echo $_REQUEST['club'];
}
}
但它给了我错误
A PHP Error was encountered
Severity: Notice
Message: Undefined index: club
Filename: controllers/mailing.php
Line Number:12
EDIT
我需要从不同的页面调用邮件/索引,有时我需要传递参数,有时不需要
如果我使用
function index($club)
{
//function body;
}
然后我总是需要发送一些参数
有时调用href也可以像这样
<a href="<?php echo base_url();?>mailing"><img src="<?php echo base_url();?>assets/front_assets/images/button_joinclub.png" width="180" height="44" border="0"></a>
所以它会调用一个错误,因为在函数定义中我发布了一个参数的presense,而我没有通过这个链接传递任何参数
这就是我需要的原因
a href="<?php echo base_url();?>mailing/index/?club="<?php echo $club_info[0]['club_title'];?>"
这样我就可以使用isset($ _ REQUEST [&#39; club&#39;]来检查是否存在。
答案 0 :(得分:1)
首先,不需要回显base_url();只有/ mailing / index就够了。传递参数,就像McGarnagle告诉你的第三段一样。
<a href="/mailing/index/club_title"></a>
然后在你的控制器中使用索引函数:
$club_title = $this->uri->segment(3);
你刚刚设置了一个名为club_title的新变量来保存它的值。这就是你传递params的方式,如果你不想从其他页面传递它,你不需要。它只表示在这种情况下变量将为null。
URI帮助程序的工作方式让您了解发生了什么:
控制器 - 第1段 方法 - 段2 参数 - 第3段
您可以根据需要添加任意数量的参数,然后使用URI调用它们。确保将它加载到配置文件夹中的autoload.php或每个控制器的构造函数中,如下所示:
$this->load->helper('url');
PS:我们从不在codeigniter中使用$ _REQUEST。
答案 1 :(得分:1)
CodeIgniter禁用除$_GET
,$_COOKIE
和$_POST
之外的所有GLOBALS以确保安全。
<强>参考:强>
Register_globals
During system initialization all global variables are unset, except those found in the $_GET, $_POST, and $_COOKIE arrays. The unsetting routine is effectively the same as register_globals = off.
答案 2 :(得分:1)
CodeIgniter带有帮助程序方法,可让您获取POST,GET,COOKIE或SERVER项目,但CodeIgniter禁用除$ _GET,$ _ COOKIE和$ _POST之外的所有GLOBALS,以确保安全性。
您可以使用以下输入法:
$ this-> input-> post()
$ this-> input-> get()
$ this-> input-> cookie()
$ this-> input-> server()
答案 3 :(得分:0)
CodeIgniter 清除 $_REQUEST
变量。我认为它与Codeigniter手册here中描述的自动输入过滤有关,但它并没有特别提及。我不确定是否设置
$config['global_xss_filtering'] = TRUE;
在config.php中是否会影响它。