Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Captchta i dziwny bład (kod działa)
Forum PHP.pl > Forum > Przedszkole
kielich
Witam mam dziwny problem mianowicie napisałem sobie system Captcha i dostaje dziwny błąd lecz kod działą według moich zamiarów

błąd to :
Kod
Notice:  Undefined index:  word in ... on line 279


279 to ten kawałek
  1. $captchaWord = $captchaIterator['word'] ;


A o to cały kod
  1.  
  2. $form = new Zend_Form();
  3.  
  4. $captcha = new Zend_Form_Element_Captcha(
  5. 'captcha',
  6. array('label' => 'Write the chars to the field',
  7. 'captcha' => array(
  8.  
  9. 'captcha' => 'Image',
  10.  
  11. 'wordLen' => 6,
  12.  
  13. 'timeout' => 300,
  14.  
  15. 'font' => 'arial.ttf',
  16.  
  17. 'imgDir' => 'img/captcha/',
  18.  
  19. 'imgUrl' => ''.$this->view->baseUrl.'/img/captcha/',
  20. )));
  21. $form->setAction('')
  22.  
  23. ->setMethod('post')
  24.  
  25. ->addElement($captcha)
  26. ->addElement('submit','Submit');
  27.  
  28. $this->view->form = $form;
  29. echo $this->view->form ;
  30.  
  31. $request = $this->getRequest();
  32.  
  33. $captcha = $request->getPost('captcha');
  34. $captchaId = $captcha['id'];
  35.  
  36. $captchaInput = $captcha['input'];
  37.  
  38. $captchaSession = new Zend_Session_Namespace('Zend_Form_Captcha_'.$captchaId);
  39.  
  40. $captchaIterator = $captchaSession->getIterator();
  41.  
  42. $captchaWord = $captchaIterator['word'] ;
  43.  
  44. if( $captchaWord ) {
  45.  
  46. if( $captchaInput != $captchaWord ){
  47.  
  48. echo "Nie fajnie ";
  49.  
  50. } else {
  51. echo "no, jest OK";
  52. }
  53.  
  54. } else {
  55. return false;
  56.  
  57. }

Myślę żę kod zrozumiały , bardzo proszę o jakąś radę bo dziwne że kod działa ale wywala błąd no a error_reporting nam sprawy nie załatwi
Quantum
sprawdź co zwraca $captchaSession->getIterator().
kielich
Niby wszystko ok ...

  1. ArrayObject Object ( [storage:ArrayObject:private] => Array ( [word] => tof8d8 ) )
Quantum
Robiłem kiedyś podobne skrypty w połączeniu z sesjami. Czasem skrypt próbował odczytać wartość z sesji gdy nie została jeszcze w niej zapisana. Z braku czasu nie analizuje kodu, ale możesz to sprawdzić.
kielich
No jeśli wyśle formularz to wartość WORD jest i nie ma bledu ale kiedy nie jest wysłany no to błąd sad.gif

kurcze już nie wiem jak to rozgryźć smile.gif

bardzo prosze o jakąś pomoc

próbowałem dodać to w if'a ale dalej jest błąd tyle że w druga strone po wysłaniu formularza sad.gif kurde ...
macie jakieś pomysły questionmark.gif

proszę o jakiekolwiek porady ...sad.gif juz od 4 H sie z tym mecze ;/

czy naprawde nikt nie jest w stanie mi pomóc ?!?!?! ;(

dla tych którzy beda mieli kiedys podobny problem , rozwiazalem go w iinny sposób zamiana kod

  1.  
  2. $captchaIterator = $captchaSession->getIterator();
  3.  
  4. $captchaWord = $captchaIterator['word'] ;


na kod
  1. $captchaWord = $captchaSession->word;

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.