Eigen errors Zend Captcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

IoT Developer

Ben jij innovatief, heb jij passie voor energie en ben je data gedreven? Bouw dan mee aan IoT binnen Bredenoord. Samen met een gedreven team werk jij aan mooie technische en innovatieve oplossingen. Wat houdt de functie van IoT Developer in? Binnen Bredenoord zijn wij momenteel volop in ontwikkeling met ons IoT platform. Als uitbreiding van ons team zijn wij op zoek naar een IoT Developer. Je zal in projectverband meehelpen met het implementeren van IoT vraagstukken binnen Bredenoord. Als IoT Developer op onze R&D-afdeling word je verantwoordelijk voor het verder inrichten en beheren van ons nieuwe IoT platform. Dat

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

Bekijk vacature »

Junior / Medior C# .NET ontwikkelaar in Brabants t

Bedrijfsomschrijving Ben jij een gepassioneerde C# .NET ontwikkelaar met een voorliefde voor hardware? Dan is dit de perfecte kans voor jou! Bij ons bedrijf krijg je de kans om deel uit te maken van een team van sociale en enthousiaste techneuten die er elke dag naar streven om onze eigen ontwikkelde software nog beter te maken. Het team van ongeveer 10 team medewerkers maakt zich hard om de interne processen gestroomlijnd te laten verlopen. Functieomschrijving Als lid van ons hechte en behulpzame team word je betrokken bij diverse projecten. Daarbij krijg je te maken met data-analyses, content en de logistieke

Bekijk vacature »

Pagina: 1 2 volgende »

PHP Newbie

PHP Newbie

10/12/2008 22:50:00
Quote Anchor link
Heey allemaal,

Ik ben bezig met zend_captcha. Deze geeft echter als default error "Captcha value is wrong". Nu wil ik dit vervangen door mijn eigen error.

Ik heb hier 2 opties voor:
1. We openen Zend_Captcha_Word en veranderen daar de error melding
2. We voegen in Zend_Captcha_Word de volgende functie toe:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
     /**
     * Set error message of bad captcha
     *
     * @param string $message
     * @return Zend_Captcha_Word
     */

    public function setErrorMessage($message)
    {

        $this->_messageTemplates[self::BAD_CAPTCHA] = $message;
        return $this;
    }

?>


En dan kan ik gewoon de error meegeven bij het initialiseren.

Dit zijn beide geen ideale opties. Optie 1 niet omdat ik mijn error message flexibel wil houden en niet hard wil defineren. Optie 2 niet omdat ik daarmee een functie toevoeg aan het framework en ik de code daarmee niet meer kan kopieren naar een andere server met Zend zonder ook die aangepaste class mee te kopieren.

Wat blijft er dan nog over? Zend_Captcha_Word extenden, in die class de functie toevoegen uit optie 2 en vervolgens

$var = new deGeextendeClasse;
$var->SetErrorMessage('bla');

doen. Die optie valt echter ook af aangezien Zend_Captcha_Word een abstracte class is, dus de geextende class ook abstract moet zijn en die mag ik niet rechtstreeks benaderen.

En nu weet ik niet meer wat ik moet doen. Iemand die me hierbij kan helpen?

Groet
Newb
 
PHP hulp

PHP hulp

03/12/2024 18:21:39
 
M Ypma

M Ypma

11/12/2008 00:20:00
Quote Anchor link
een abstracte klasse is er juist om ge-extend te worden! Hoezo mag dat volgens jou niet? Een abstracte klasse is als een Interface, echter mag je in een abstracte klasse al wel methodes uitschrijven.
 
PHP Newbie

PHP Newbie

11/12/2008 10:28:00
Quote Anchor link
Ik zeg niet dat ik hem niet mag extenden, ik zeg dat ik hem niet rechtstreeks mag benaderen.

GeextendeClass::functie() mag niet.
 
M Ypma

M Ypma

11/12/2008 10:53:00
Quote Anchor link
Quote:
Zend_Captcha_Word een abstracte class is, dus de geextende class ook abstract moet zijn en die mag ik niet rechtstreeks benaderen.

Dat zei je dus niet, je zei dat hij ook abstract moet zijn, maar dat is onzin.
Maar ik snap wel je probleem nu idd.
 
PHP Newbie

PHP Newbie

11/12/2008 14:57:00
Quote Anchor link
Dat is geen onzin. De geextende class van een abstracte class moet ook abstract zijn.
 
Bo az

Bo az

11/12/2008 15:12:00
Quote Anchor link
Natuurlijk hoef een geextende class van een abstracte class niet abstract te zijn. Hoe zou je anders ooit tot een concrete class kunnen komen?

Voorbeeld:
Voertuig zou een abstracte class kunnen zijn.
Auto erft van voertuig, maar is geen abstracte class, maar een concrete.
Het zelfde geldt ook voor bijvoorbeeld fiets etc.

Op je vraag heb ik niet direct antwoord, maar ik denk eigenlijk dat er nog een betere manier moet zijn, er zal bij het ontwerp toch wel rekening mee gehouden zijn dat de error message ook aangepast moet kunnen worden?
Zelf heb ik nog nooit met Zend_Captcha gewerkt, maar is er niet een vergelijkbare manier om een error message in te stellen zoals die er ook voor zend form elementen is?
 
PHP Newbie

PHP Newbie

11/12/2008 16:57:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class Zend_Captcha_Word_Error extends Zend_Captcha_Word
{
     /**
     * Set error message of bad captcha
     *
     * @param string $message
     * @return Zend_Captcha_Word
     */

    public function setErrorMessage($message)
    {

        $this->_messageTemplates[self::BAD_CAPTCHA] = $message;
        return $this;
    }

    
    public function render(Zend_View_Interface $view, $element = null) { }
}

?>


Dat is een werkende functie, maar wanneer ik hem zo aanroep:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$error
= new Zend_Captcha_Word_Error();
$error->setErrorMessage('boe');
?>


Dan gaat dat natuurlijk niet werken, ik initieer namelijk een nieuwe class dus de error melding wordt niet aangepast.

Iemand die me kan vertellen wat ik nu moet doen?

Fatal error: Class test contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Zend_Captcha_Adapter::render)
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
M Ypma

M Ypma

11/12/2008 18:19:00
Quote Anchor link
@Boaz and @PHP Newbie
I rest my case
 
Bo az

Bo az

11/12/2008 19:04:00
Quote Anchor link
Dat heeft te maken met de manier waar op het gebruikt moet worden, daar weet ik verder ook niet het fijne van.

Ik weet niet op welke manier je de captcha wil gebruiken, maar als dat Zend_Form_Element_Captcha is, dan heb ik het vermoeden dat je een melding via Zend_Form_Element_Captcha::setOptions zou moeten kunnen instellen. Helaas kan ik er verder heel weinig informatie over vinden.
 
PHP Newbie

PHP Newbie

11/12/2008 21:37:00
Quote Anchor link
Ik gebruik inderdaad Zend_Form_element_Captcha en ik heb inderdaad ook het probleem dat de informatie verre van voor het oprapen ligt.

Bij een standaard formulier element doe je het gewoon zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $veld
->addValidator('NotEmpty', true, array('messages' =>    array(
                                                                        'isEmpty' => 'Geef een waarde op',
                                                                    )));

?>


Zend_Captcha gebruikt echter zijn eigen validator:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
    /**
     * Validate the word
     *
     * @see    Zend_Validate_Interface::isValid()
     * @param  mixed $value
     * @return boolean
     */

    public function isValid($value, $context = null)
    {

        if (!is_array($value) && !is_array($context)) {
            $this->_error(self::MISSING_VALUE);
            return false;
        }

        if (!is_array($value) && is_array($context)) {
            $value = $context;
        }


        $name = $this->getName();

        if (isset($value[$name])) {
            $value = $value[$name];
        }


        if (!isset($value['input'])) {
            $this->_error(self::MISSING_VALUE);
            return false;
        }

        $input = strtolower($value['input']);
        $this->_setValue($input);

        if (!isset($value['id'])) {
            $this->_error(self::MISSING_ID);
            return false;
        }


        $this->_id = $value['id'];
        if ($input !== $this->getWord()) {
            $this->_error(self::BAD_CAPTCHA);
            return false;
        }


        return true;
    }

?>


En ik heb dus geen idee hoe ik die error anders aan zou kunnen passen dan op bovenstaande manier.
 
PHP Newbie

PHP Newbie

13/12/2008 13:12:00
Quote Anchor link
:-)
 
PHP Newbie

PHP Newbie

15/12/2008 14:52:00
Quote Anchor link
(-:
 
PHP Newbie

PHP Newbie

18/12/2008 17:13:00
Quote Anchor link
:-(
 
PHP Newbie

PHP Newbie

25/12/2008 19:08:00
Quote Anchor link
)-:
 
Jelmer -

Jelmer -

25/12/2008 19:29:00
Quote Anchor link
Kan je hem niet extenden (ja, ook ik heb m'n twijfels hierbij wanneer ik dit zo typ) om de $_messageTemplates property te vervangen?

edit: of zou het via Zend...Captach::setOption('_messageTemplates', array()) lukken?
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
PHP Newbie

PHP Newbie

25/12/2008 21:32:00
Quote Anchor link
Ik krijg het daarmee niet voor elkaar... Toch vreemd dat hier op internet ook niks over te vinden is, ik zal toch niet de enige zijn met dit probleem?
 
Jelmer -

Jelmer -

25/12/2008 22:54:00
Quote Anchor link
Wat probeer je op het moment? Kan je een hele kleine setup maken waarin je alleen dit probleem naar voren kan laten komen?

(Ik heb ZF wel in m'n include_path staan, maar gebruik het zo goed als nooit. Wanneer je een opstapje geeft is het voor mij, en anderen de drempel wat lager om te proberen.)

Of kan je anders laten zien hoe je de instanties aanmaakt & raadpleegt?
 
PHP Newbie

PHP Newbie

25/12/2008 23:47:00
Quote Anchor link
Dit is het hele captcha verhaal:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
    $captcha
= new Zend_Form_Element_Captcha('captcha', array('captcha' => array('captcha' => 'Image',
                                                            'fontSize' => 38,
                                                            'wordLen' => 5,
                                                            'timeout' => 300,
                                                            'LineNoiseLevel' => 4,
                                                            'DotNoiseLevel' => 30,
                                                            'ErrorMessage' => 'test',
                                                            'font' => $_SERVER['DOCUMENT_ROOT'] . '/KINGRICH.TTF',
                                                            'imgDir' => $_SERVER['DOCUMENT_ROOT'] . '/application/tmp/captcha/',
                                                            'imgUrl' => Zend_Controller_Front::getInstance()->getBaseUrl().'/application/tmp/captcha/'),
                                                            'imgAlt' => 'Captcha')
                                                            );

    
    $captcha->setLabel('Voer code in');
?>


Aanroepen doe ik zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $form
= new CaptchaForm();

    $this->view->form = $form;
    
    if ($this->_request->isPost())
    {

        $formData = $this->_request->getPost();
        
        if(!$form->isValid($formData))
        {

            $form->populate($formData);
        }

        else
        {
            $this->view->message = 'De goede code';
        }
    }

?>


Voorbeeld
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
Jelmer -

Jelmer -

26/12/2008 00:43:00
Quote Anchor link
Werkt het niet simpelweg zo? (even incompleet gekopieerd en geplakt)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$captcha
= new Zend_Form_Element_Captcha('captcha', array('captcha' => array(
    '_messageTemplates' => array(
        Zend_Captcha_Word::MISSING_VALUE => 'Missende value',
        Zend_Captcha_Word::MISSING_ID => 'Missende identiteit',
        Zend_Captcha_Word::BAD_CAPTCHA => 'BEEEP Fout!'
    ),
    'captcha' => 'Image',
    'fontSize' => 38,
    'wordLen' => 5,
    'timeout' => 300,
    'LineNoiseLevel' => 4,
    'DotNoiseLevel' => 30,
    'ErrorMessage' => 'test',
    'font' => '/Library/Fonts/Microsoft/Gill Sans MT.ttf',
    'imgDir' => '/tmp/'),
    'imgAlt' => 'Captcha')
    );

    
$captcha->isValid(array('captcha' => 'Pindakaas'));
    
var_dump($captcha);
?>

Wanneer ik nu $captcha->isValid(array('captcha' => 'Pindakaas')) aanroep, en var_dump($captcha) eruit gooi, zie ik alleen maar Nederlandse foutmeldingen in de dump.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
PHP Newbie

PHP Newbie

08/01/2009 00:13:00
Quote Anchor link
Heerlijk, dank u :-D
 

01/04/2009 10:30:00
Quote Anchor link
Geweldig!

Ik zat zelf te kloten met het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$captcha -> addErrorMessage('De tekens waren niet gelijk!');

maar dat werkte niet op de een of andere manier.. Nu deze maar eens proberen!
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.