Eigen errors Zend Captcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! 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

Bekijk vacature »

Back-end PHP Developer

Dit ga je doen Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Hier ga je werken Onze klant, gevestigd in de omgeving van Alkmaar, levert wereldwijd oplossingen op het gebied van IT. Dag in dag uit werken zij met veel passie aan hun product waarmee ze streven naar verbeteringen binnen zorg. Voor onze klant zijn we op zoek naar een medior PHP Developer. Je komt te werken

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

NodeJS developer

Functie Als Fullstack developer kom je te werken in het ontwikkelteam. Je bent samen met je collega’s continu bezig om de software uit te breiden, maar hiernaast doe je onderzoek naar de inzet van nieuwe technieken, tools of bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Qua technische kennis zoeken ze iemand die goed op de hoogte is van de nieuwste ontwikkelingen, daar zij nu ontwikkelen op NodeJs back-end,

Bekijk vacature »

C# Ontwikkelaar

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

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 »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

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

26/04/2024 21:58:05
 
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.