Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Captchta i dziwny bład (kod działa)
kielich
post 7.03.2010, 18:51:41
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


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


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
Quantum
post 7.03.2010, 18:55:09
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


sprawdź co zwraca $captchaSession->getIterator().

Ten post edytował sniffer32 7.03.2010, 19:06:23
Go to the top of the page
+Quote Post
kielich
post 7.03.2010, 18:57:15
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Niby wszystko ok ...

  1. ArrayObject Object ( [storage:ArrayObject:private] => Array ( [word] => tof8d8 ) )


Ten post edytował kielich 7.03.2010, 18:57:27


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
Quantum
post 7.03.2010, 19:29:57
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
kielich
post 8.03.2010, 00:05:53
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


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;



--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 03:08