제목 | 설정없이 GET으로 전달한 Query String 가져오기 | ||
---|---|---|---|
글쓴이 | mycastor | 작성시각 | 2010/03/19 09:28:45 |
|
|||
class MY_Input extends CI_Input { private $qs = array(); public function __construct() { parent::CI_Input(); if(isset($_SERVER['REDIRECT_QUERY_STRING'])) { $params = explode("&", $_SERVER["REDIRECT_QUERY_STRING"]); for($i = 0; $i < sizeof($params); $i++) { list($key, $value) = explode("=", $params[$i]); if(!is_null($value) && $value != "") { $this->qs[$key] = $value; } } } } public function query_string($key) { if(array_key_exists($key, $this->qs)) { return $this->qs[$key]; } else { return false; } } } config.php 파일의 설정없이 GET으로 전달한 Query String 값을 가져오도록 입력 클래스를 확장하였습니다. http://www.abs.com/controller/method?a=1&b=2&c=3 위와 같은 URL에서 a, b, c의 값을 가져올수 있으며 $this->input->query_string('a'); 와 같은 방법으로 사용하시면 됩니다. 다른 방법이 있는지는 찾아보지는 않았지만 Query String 값을 가져올수 있는 간단한 방법이라고 생각합니다. 어짜피 GET 으로 넘어온 데이터를 가져오는 것이니 보안상 문제 될것은 없겠죠? |
|||
다음글 | PHPExcel를 CI속으로~ (6) | ||
이전글 | 주소등 인코딩해서 보내기 (4) | ||
변종원(웅파)
/
2010/03/19 11:15:10 /
추천
0
|
꿈자
/
2010/03/24 14:19:15 /
추천
0
상단 소스를 그대로 libraries폴더내 MY_Input.php를 생성하여 호출해보았는데요..404 not found라고 나오네요.
위 소스말고 또다른 셋팅을 해야 하는지요? |
변종원(웅파)
/
2010/03/24 15:46:32 /
추천
0
위 소스는 php5용입니다. php버전 체크를 해보시기 바랍니다.
|
mycastor
/
2010/03/25 09:10:57 /
추천
0
꿈자님//
PHP4버젼은 위 소스처럼 클래스 생성자 사용 및 메소드의 접근한정자를 지정할 수 없습니다. PHP4 버젼을 사용하신 다면 소스를 아래의 소스를 이용하시면 됩니다. class MY_Input extends CI_Input { var $qs = array(); function MY_Input() { parent::CI_Input(); if(isset($_SERVER['REDIRECT_QUERY_STRING'])) { $params = explode("&", $_SERVER["REDIRECT_QUERY_STRING"]); for($i = 0; $i < sizeof($params); $i++) { list($key, $value) = explode("=", $params[$i]); if(!is_null($value) && $value != "") { $this->qs[$key] = $value; } } } } function query_string($key) { if(array_key_exists($key, $this->qs)) { return $this->qs[$key]; } else { return false; } } }도움이 되셨기를 바랍니다. |
사탄
/
2010/05/24 17:49:43 /
추천
0
전 이렇게 하니까.. 소스참 이뻐여 list 문 array_key_exists 한번도 사용해본적 없어서리.. function __construct() { function query_string($key) { |
스케치over
/
2012/02/06 16:31:44 /
추천
0
참고 사항입니다.
내장 Input 클래스를 확장하고자 한다면, application/core/MY_Input.php으로 파일을 만들어야 합니다. |
기존 input 클래스 보면 xss에 대한 처리부분이 있는데 query_string()에 그걸 적용해줘야 함. ^^
그것만 보완되면 편하게 주소체계를 쓸수있어서 좋네. ^^