PHP: 함수 리턴값의 array입력 관련
글쓴이: jiny92 / 작성시간: 수, 2014/03/05 - 2:49오후
php 생초보입니다.
php 코딩 중에 이상 사항이 있어 원인 및 수정방법에 대해 문의드립니다.
시나리오는
1. 암호화된 email 주소를 DB에서 읽어 복호화 함
2. 복호화된 email 주소를 array에 넣어 return 함
3. return된 결과값을 이용해 인증처리를 수행함
입니다.
pseudo code는
$san_email = $this->aes_decrypt($row['email']); //string을 리턴합니다. ..., $attributes = array( 'uid' => array($username), 'displayName' => array($dec_full_name), 'email' => array($san_email), ); ..., return $attributes;
입니다.
증상입니다.
1. $this->aes_decrypt()
로 얻은 string을 print_r로 출력해보면 모든 email 주소에 대해서 정상 출력됩니다.
2. attributes array도 print_r로 출력하면 정상으로 보입니다.
3. 하지만, 몇몇 email domain에 대해서 return된 값이 오류를 발생시킵니다. 예를 들어, a@naver.com 등
4. print_r로 출력된 email 주소를 직접입력했을 때는 오류가 발생하지 않습니다. 예를 들어,
//$san_email = $this->aes_decrypt($row['email']); //<-- 대신에 $san_email = "a@naver.com"; //<-- 이렇게 직접 적으면 이하 동일
DB의 charset은 utf8입니다. 어떻게 해결해야 하는지 도움 부탁드립니다.
Forums:
케릭터셋 문제는 아닌듯
케릭터셋 문제는 아닌듯
한글 메일주소가 아닌이상 케릭터셋 문제는 아닐겁니다.
깨지는 메일주소원문과 캡쳐결과를 한번 올려보시는게 좋을겁니다
댓글 달기