2013-07-12 3 views
0
내가 잘못하고있는 무슨 잘 모릅니다

에서 작동하지 않습니다하지만 난 조금을 엉망입니다

내가

<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> 

이제 기능이

하는 컨트롤러를 호출 그게 AA HREF가
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 매개 변수의 전자, 그리고 난 내가있는 경우 또는 체크는 isset ($ _ REQUEST [ '클럽'] 사용할 수있는

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

그렇게해야하는 이유

그래서 그게이 링크를 통해 모든 매개 변수를 전달하고 있지 않다 아니.

+0

해결하셨습니까 ?? – SasaT

답변

1

우선, base_url()을 echo 할 필요가 없습니다./mailing/index 만 있으면 충분합니다. 매개 변수를 전달하려면 McGarnagle이 세 번째 세그먼트로 말했던 것처럼해야합니다.

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

그런 다음 인덱스 기능의 컨트롤러에서 :

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

당신은 그 값을 유지하는 새로운 변수라는 club_title을 설정했습니다. 그것이 매개 변수를 전달하는 방법이며 다른 페이지에서 전달하지 않으려는 경우에는 필요하지 않습니다. 이 경우 변수가 null이됨을 의미합니다. URI 도우미 그렇게 작동

하는 방법은 무슨 일이 일어 났는지 이해 :

컨트롤러 - 세그먼트 1 방법 - 세그먼트 2 Paramater - 당신은 당신이 원하는만큼 많은 매개 변수를 추가 한 다음 액세스를 호출 할 수 있습니다 3

세그먼트를 그것들은 URI를 가지고있다. 당신이 config 폴더 또는이처럼 각 컨트롤러의 구조 기능에 autoload.php에로드해야합니다 :

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

PS를 : 우리는 CodeIgniter의에서 $ _REQUEST를 사용하지 않습니다.

1

CodeIgniter는 보안을 위해 $_GET, $_COOKIE$_POST을 제외한 모든 GLOBAL을 비활성화합니다.

참조 :

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

이것을 전환 할 수있는 방법이 있습니까? 페이스 북의 PHP SDK가 깨졌습니다 : http://stackoverflow.com/questions/6790272/why-is-facebook-php-sdk-getuser-always-returning-0/13278198#13278198 – Mischa

+0

@ 미샤, 내장 된 표준은 보안에 대해 염려합니다. 코드를 작동시키는 다른 방법을 시도해 볼 수 있습니다. – Pupil

0

CodeIgniter의 퍼지 보안상의 이유로 $_REQUEST 변수입니다. Codeigniter 설명서 here에 설명 된 자동 입력 필터링과 관련 있다고 가정합니다. 그러나 특별히 언급하지는 않았습니다. 그것이 영향을 미치는 여부를 config.php 파일에

$config['global_xss_filtering'] = TRUE; 

설정 여부를 나는 확신입니다.