CI 묻고 답하기

제목 url segments 값으로 email주소 전송방법
글쓴이 벨리 작성시각 2009/11/17 11:26:33
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 23965   RSS
segments 값으로 email 주소 전송하면
domain.com/email/send_email/abc@domain.com

오류 출력됩니다.
"The URI you submitted has disallowed characters."

세그먼트로 메일주소 전송하는 방법 혹시 어떻게들 사용하고 계시나요?
1. @ <- 문자 치환
2. post 처리
3. 기타


function send_email($address='') {
    if(! $address) $address = $this->uri->segment(3);

    /*
        some code
    */
}




 다음글 에러 디스플레이 문제 (6)
 이전글 오라클 9i 버전 데이타베이스 연동 (3)

댓글

ci세상 / 2009/11/17 12:39:01 / 추천 0
config.php에 126줄에 다음부분과 같이 처리하시면 됩니다. 기본, 숫자, 영문만 허용합니다.

$config['permitted_uri_chars'] = '';
변종원(웅파) / 2009/11/17 12:40:54 / 추천 0
이메일은 개인정보인데 주소에서 꼭 사용하셔야할 이유가 있는지요?

보편적으로 post로 처리합니다.

주소로 넘기기전에 rawurlencode() 처리를 해서 넘기던가
config.php 파일을 수정하여 사용하시는 방법이 있습니다.

$config[
'uri_protocol']    = "QUERY_STRING";
//원래 값은 AUTO

벨리 / 2009/11/17 15:26:19 / 추천 0
ci세상님 방법으로 해결했습니다.^^ 감사합니다.
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@';
config.php에 있었군요...

xml통신용 주소라 메일주소를 새그먼트로 처리했었는데요...
개인정보라 저도 고민중입니다.


ci세상 / 2009/11/17 15:35:48 / 추천 0
역으로 넘기지 말고 xml을 긁어가면 어떨까요?^^
변종원(웅파) / 2009/11/17 15:56:10 / 추천 0
$config['permitted_uri_chars'] = '';
이 방법이 편하기는 한데 주소표시줄에 < ^ 등을 한번 걸러주는 부분이라 되도록이면 원래대로 사용하는 것이 좋습니다. (이렇게 이야기하면서 포럼도 빈값으로 처리중입니다. ^^;)
물론 코어단에서 < ^ 등에 대한 처리가 되긴 합니다. 액티브레코드에서도 그렇고..
그렇지만 이중삼중 자물쇠 채워놓는게 더 안전하겠죠? ^^