2013-07-12 36 views
0

我不知道我做錯了什麼不工作,但我只是搞砸了一下

我有AA的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> 

所以它會要求一個錯誤,因爲在函數定義我已經發布presens參數的E,和我沒有傳遞任何參數,通過這個環節

所以這就是爲什麼我需要

a href="<?php echo base_url();?>mailing/index/?club="<?php echo $club_info[0]['club_title'];?>" 

,這樣我可以使用isset($ _ REQUEST [「俱樂部」],以檢查是否存在或不。

+0

你解決了這個問題嗎? – SasaT

回答

1

首先,沒有必要echo base_url();只有/郵件/索引就足夠了。將McGarnagle告訴你的參數作爲第三部分傳遞給你。

<a href="/mailing/index/club_title"></a> 

然後在您的索引功能控制器:

$club_title = $this->uri->segment(3); 

你剛纔設置的新變量稱爲club_title保存其價值。這就是你通過params的方式,如果你不想從其他頁面傳遞它,你不需要。這隻意味着在這種情況下該變量將爲空。

方式URI的輔助工作,所以你明白髮生了什麼事:

控制器 - 段1種 方法 - 段2 Paramater - 段3

,你想,你可以添加任意多的參數,然後調用訪問他們與URI。請確保您加載它在你的autoload.php在config文件夾或在你這樣的每個控制器的構造函數:

$this->load->helper('url'); 

PS:我們從來沒有在笨使用$ _REQUEST。

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. 

See Documentation here

+0

有沒有辦法把這個變成?它打破了Facebook的PHP SDK:http://stackoverflow.com/questions/6790272/why-is-facebook-php-sdk-getuser-always-returning-0/13278198#13278198 – Mischa

+0

@Mischa,我會建議不要打破因爲它關心的是安全標準。您可以嘗試其他方法來使您的代碼正常工作。 – Pupil

0

清洗出於安全原因$_REQUEST變量。我認爲這與在Codeigniter手冊here中描述的自動輸入過濾有關,但它在那裏沒有特別提及。我不確定設置

$config['global_xss_filtering'] = TRUE; 

在config.php中是否會影響它。