2013-07-31 1 views
0

Я новичок в CodeIgniter, и я привык к старой школы PHP скриптов, так что я нужна помощь с этим:Использование CodeIgniter для выполнения кода из другого файла

Я хочу, чтобы включить систему Captcha в одном из мои формы. По его documentation, для создания изображения, вам нужно сделать это следующим образом:

<img id="captcha" src="/securimage/securimage_show" alt="CAPTCHA Image" /> 

Я скачал файлы, но где я их? И как я могу использовать Codeigniter для вызова файла securimage_show.php? И выводит его содержимое в атрибут src изображения?

+0

@wallyk, ваше редактирование дало мой вопрос совершенно новое значение !! Вы изменились, например: «Я привык к старой школьной php ...» к «Я использую старую школу» ... Этот вопрос является общим, а не чем-то связанным с захватом. Это может быть что угодно! пожалуйста, не трогайте мой вопрос, если в нем нет чего-то действительно неправильного и не слепо редактировать что-то! – Krimson

+0

Извините! Я часто редактирую вопросы и (ответы), чтобы улучшить грамматику и прояснить смысл. Прошу прощения за изменение смысла. Это не то, что я думал, что я делаю, и, конечно же, не намерен менять смысл. – wallyk

+1

@wallyk ах, я знаю. Извините за то, что я так груб, я не хотел гневаться на вас. В тот момент я был просто раздражен. Приветствия :) :) – Krimson

ответ

0

При добавлении Captcha в Fuel (cms на основе кода) я поместил файл php, который генерирует изображение Captcha в папке, куда вы помещаете изображения, а затем ссылается на него так же, как вы ссылаетесь на изображение:

<?php echo img(array('src'=>'image_show.php', 'alt'=> 'CAPTCHA Image')); ?> 

Возможно, это не самое приятное решение, но оно работает.

В качестве альтернативы, просто используйте плагин Captcha, написанный специально для codeigniter, например плагин NuCaptcha CodeIgniter, http://docs.nucaptcha.com/plugins/codeigniter.

0

У Codeigiter есть captcha helper.

Во-первых, вы хотите создать папку, в которой вы сможете хранить свои изображения с записями и предоставлять разрешениям этой папки выполнять операции чтения/записи. В этом случае я создал папку captcha в корневом каталоге моего экземпляра codeigniter.

Затем мы хотим загрузить captcha помощника:

$this->load->helper('captcha'); 

Давайте начать экземпляр капчи с нашими настройками (Вы можете сделать это либо в Controller или View с вашей формы):

$rand_string = strtoupper(random_string('nozero', 4)); 
$settings = array(
    'word' => $rand_string, 
    'img_path' => './captcha/', 
    'img_url' => base_url() .'captcha/', 
    'img_width' => '250', 
    'img_height' => 35, 
    'expiration' => 7200 
); 

$cap = create_captcha($settings); 
$this->session->set_userdata('captchaWord',$cap['word']); 

Обратите внимание, что я сохраняю генерируемое слово captcha в своем session всякий раз, когда я его создаю (например, при обновлении страницы). Таким образом, я могу сравнить оригинальные captcha word с вводом от моего form. Затем я буду отображаться генерироваться CAPTCHA изображение с полем ввода где-то в моей форме (View):

<form id="my_form"> 
    <input type="text" name="captcha" value=""/> 
    <?= $cap['image']; ?> 
</form> 

Теперь все, что нужно сделать, это сравнить input, полученным от my_form с фактическим значением капчи (в моем контроллере, где я обрабатываю форму отправки):

$userCaptcha = $this->input->post('captcha'); 
$actual_word = $this->session->userdata('captchaWord'); 
if(strcmp(strtoupper($userCaptcha),strtoupper($actual_word)) == 0 ) { 
    // input and captcha are the same 
} 
Смежные вопросы