질문 Q #8641
url segments 값으로 email주소 전송방법
벨리 2009-11-17 11:26:33
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
    */
}




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

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

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

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

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

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

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


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