데이터를 데이터베이스에 삽입하고 데이터가 인간에서 전송되었는지 확인하기 위해 양식을 만들었으며 이미 CI에 통합 된 보안 문자를 사용했습니다.CodeIgniter CAPTCHA 유효성 확인
$checkrules = array(
'img_path' => realpath(APPPATH . '../upload/checking/img') . '/',
'img_url' => base_url() . 'upload/checking/img/',
'font_path' => realpath(APPPATH . '../upload/checking/font.ttf'),
'img_width' => 150,
'img_height' => 30,
'expiration' => 7200
);
$check = create_captcha($checkrules);
$data['checkimg'] = $check['image'];
$this->form_validation->set_rules('name', 'Name', 'required|max_length[40]|xss_clean');
$this->form_validation->set_rules('email', 'E-mail', 'required|valid_email|xss_clean');
$this->form_validation->set_rules('website', 'Website', 'max_length[80]|prep_url|xss_clean');
$this->form_validation->set_rules('comment', 'Comment', 'required|xss_clean');
$this->form_validation->set_rules('check', 'Check', 'required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('cms/theme', $data);
}
else
{
echo "success";
$this->load->view('cms/theme', $data);
}
내 질문은 이제 보안 문자를 확인하는 가장 좋은 방법은 무엇이다 :
이 내 컨트롤러?
) 1. 이미 작성한 콜백을 작성했지만 양식을 보낼 때 새로운 보안 문자 코드로 인해 오류가 발생하여 문제가 발생했습니다.
2.) CAPTCHA의 코드를 데이터베이스에 삽입하고 확인하십시오. 문제는 많은 데이터베이스를로드 할 것이고 매우 바쁠 것이기 때문입니다.
두 번째 질문입니다. 이 CAPTCHA는 .jpg 사진 만 폴더에 저장합니까 아니면 다른 형식 일 수 있습니까? (. 나는 그들이 사용 후이 보안 문자이기 삭제할 때문에이 부탁 해요)
안녕하세요, img_path는 저장하거나 코드를 작성해야합니다. 혼란스러워서 실제로 어떻게 작동할까요? –
@Akhilraj N S : 나는 당신의 발걸음을 따라 갔지만 captha는 작동하지 않는 것으로 보이며 양식은 제출됩니다. 나는 당신의 콜백 함수를 그대로 사용했고 inseted도 시도했다 : if (0! == strcmp ($ this-> input-> post ('captcha'), $ this-> session-> userdata [ 'captcha' ]))하지만 모두 같은 효과가 있습니다. 그리고 마지막으로 폴더에서 이미지를 삭제하려고했지만 "unlink (전체 경로 \ captcha) : 권한이 거부되었습니다"라는 오류가 나타납니다. – Lykos
@Deepanshu, img_path는 captcha 이미지를 저장할 폴더/디렉토리입니다. 해당 폴더를 만들어야합니다. 저장 될 이미지는 captcha를 통해 PHP로 생성 된 이미지입니다. – user1149244