Eigen errors Zend Captcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Java ontwikkelaar

Functie­omschrijving Voor een dynamisch en uitdagende opdracht zijn wij op zoek naar een senior Java ontwikkelaar. De TVS (toegangsverleningservice) maakt het voor (overheids)organisaties eenvoudig om inlogmiddelen zoals eHerkenning, eIDAS en DigiD op hun digitale dienstverlening te ontsluiten voor ondernemers en burgers. Deze dienst is 5 jaar geleden initieel opgezet om de klanten binnen ministerie van EZ&K te bedienen, maar zal nu rijksbreed worden ingezet. Als eerste grote afnemer zal TVS eerst alle diensten onder het Ministerie van Volksgezondheid, Welzijn en Sport gaan bedienen. De komende jaren zal het aantal aansluitingen op TVS hierdoor van circa twintig naar duizenden gaan oplopen

Bekijk vacature »

.NET Developer C# Familiebedrijf Senior / Medior

Bedrijfsomschrijving Als .NET Ontwikkelaar kom je te werken in de regio van Lelystad bij een organisatie die toonaangevende klanten uit heel Nederland heeft. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Er komt een grote hoeveelheid informatie bij kijken en deze moet discreet en veilig verwerkt worden. Procesgericht werken als Developer is hierbij van groot belang. De organisatie en de Ontwikkelaars van het platform hebben een adviserende rol, je hebt te maken met verschillende klantprocessen en de markt is constant in beweging. Je komt te werken bij een familiebedrijf met een prettige, informele sfeer en een fijne werkomgeving.

Bekijk vacature »

C# Developer (medior/senior)

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. “Want to become C# Developer at Coolblue? Funda will explain how to do that.” You enjoy doing this Working with various types of data stores,

Bekijk vacature »

.NET Developer Zorg-ICT

Complexe software ontwikkelen: dat is jouw ding! Voor onze vestiging in Hoogeveen zoeken wij fanatieke junior en senior .NET Developers die met de laatste Microsoft-tools en -technieken willen werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' software, die wordt ingezet in ziekenhuizen door heel Nederland. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in een klein team. ChipSoft maakt gebruik van een zelf ontwikkeld multi tier framework. Tijdens een

Bekijk vacature »

Data Engineer

Job DescriptionData Engineer The recent developments have led to worldwide measures. Most of us are working from home and facing all sort of challenges. You most likely have to keep a lot of plates spinning and manage projects, which may remind you of your role as a consultant.   We are coping with the same as you are!   At Accenture Technology we are dedicated to support our data engineering community. We are open to discuss options in the near future with Accenture.  Are you into Data Engineering technologies and daydreaming about the next step in your career? Get in touch with us via the apply

Bekijk vacature »

Senior fullstack .NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

Bekijk vacature »

Oracle Developer

Functie­omschrijving Zet je Oracle Fusion Middleware-skills in voor de innovatie van een belangrijke digitale werkomgeving binnen de rechtspraak. ?n ontwikkel je kennis van nieuwe technologie?n. Aan jou de schone taak om als Oracle Fusion Middleware-specialist een belangrijke digitale werkomgeving binnen de rechtspraak te innoveren. Dit schoolvoorbeeld voor digitaal werken is technologisch aan vernieuwing toe. En daar hebben we joúw kennis en ervaring voor nodig. Een mooie uitdaging, mét toekomstperspectief. Want de bedoeling is dat je je mee ontwikkelt met nieuwe technologieën! Hoe je werk eruitziet Jouw afdeling levert diensten aan Civiel en Bestuur, het grootste onderdeel van de rechtspraak in

Bekijk vacature »

Back-end Developer Python

BACKEND DEVELOPER PYTHON For an international client near Utrecht I'm currently looking for a Back-end Python Developer that has affinity with Data Science. Do you want to work with the most talented people and at the same time work for a company that is engaged in reducing the environmental impact? Then this could be one of the most challenging opportunities. The Responsibilities As a Back-end Developer in this company, you build something that matters in various product development projects, focusing for example on data processing, data storage, data science or platform billing. Product development projects can be executed both on-site

Bekijk vacature »

Back-end PHP Developer / Maatschappelijk betrokken

Bedrijfsomschrijving 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 in een organisatie met een open en informele sfeer. Het team waarin jij komt te werken bestaat uit 4 man die allen ervaren zijn in het programmeren in PHP. Jouw taken zullen voor 50% bestaan uit het her- en uitbouwen van systemen en voor 50% uit het onderhouden

Bekijk vacature »

C# Developer/ SQL Server/ Visual Studio/Javascript

Bedrijfsomschrijving Onze klant is een internationale organisatie gevestigd in de omgeving van Almere. De laatste jaren heeft onze klant een forse groei doorgemaakt als onderdeel van een grote Corporate werkgever. Flexibiliteit en meedenken zijn belangrijke pijlers in de organisatie. Zo is het pand bijvoorbeeld al om 7 uur open, zodat flexibele werktijden mogelijk zijn. Om klanten en werknemers optimaal van dienst te kunnen zijn is onze klant op zoek naar een .NET Developer (C#). De afdeling waar je komt te werken bestaat uit drie onderdelen: een websites team, een portals team en een team dat over een HR-systeem gaat. Voor

Bekijk vacature »

C# developer gezocht (distributed systems, SOA, NS

Ben je een C# developer met een oplossingsgerichte mentaliteit en op zoek naar een veelzijdige baan binnen een kleinschalig dynamisch bedrijf, waar je mee kunt denken in het groter geheel? Waar je met mensen komt te werken die betrokken zijn en een gemeenschappelijk gevoel van verantwoordelijkheid hebben? En waar je werkt aan schaalbaarheidsuitdagingen zodat jouw software grote hoeveelheden data kan verwerken? Nieuwsgierig? Lees dan verder! Voor een Rotterdams bedrijf zijn we op zoek naar een enthousiaste, en met name leergierige, full stack developer of een web developer die graag full stack wil worden. Het bedrijf biedt geavanceerde technische oplossingen die

Bekijk vacature »

Software Developer / full-stack

Bedrijfsomschrijving Voor een organisatie binnen de zakelijke dienstverlening zijn wij op zoek naar een Software Developer met goede kennis van zowel Java als front-end technieken als Angular. Het betreft een organisatie bestaande uit ongeveer 100 mensen die klaar staan voor ruim twee duizend klanten. De organisatie staat bekend om het feit dat zij met hun kwalitatief goede dienst een van de snelste zijn. Dit valt op in de markt en dit bewerkstelligen zij door alles zoveel mogelijk te automatiseren. IT, en software development in het bijzonder, wordt als erg belangrijk gezien. Het complexe applicatie landschap is geheel maatwerk en geschreven

Bekijk vacature »

Java-developer

Functie­omschrijving De aanvraag van een paspoort. Of de afdracht van belasting. Zomaar wat voorbeelden waarvoor de Rijksoverheid persoonlijke gegevens van burgers gebruikt. Als Java-developer bij de Dienst ICT Uitvoering in Den Haag zorg je mede voor het beheer en onderhoud van de hoogbeveiligde applicaties waarin die informatie wordt verwerkt. Een maatschappelijk verantwoorde functie? Reken maar! In een van de vier scrum-teams van het team Applicatiebeheer en Ontwikkeling werk jij aan een of meerdere applicaties voor de Rijksdienst voor Identiteitsgegevens. Deze applicaties zijn onderverdeeld in de domeinen ID-gegevens en Reisdocumenten. Jij zorgt niet alleen voor kleinschalig primair onderhoud, bijvoorbeeld als er

Bekijk vacature »

DWH / ETL developer

DWH / ETL developer will work closely with the Solution/ Data Architect to design, build interfaces and integrate data from a variety from internal and external data sources into the Enterprise Data Warehouse environment with the use of MS SQL SSIS. Client Details MUFG Bank Europe N.V. (MBE) is a fully-owned subsidiary of Mitsubishi UFJ Financial Group (MUFG), one of the largest ranked Financial Groups in the world in terms of assets. A world-class set of businesses and more than 180,000 employees in 50 markets. MUFG offers stability in an ever-changing market, providing services to high-profile clients worldwide. For more

Bekijk vacature »

.NET Developer / Angular / React

Bedrijfsomschrijving Als onderdeel van een grote IT-dienstverlener is deze organisatie nu gegroeid tot een organisatie van bijna 30 man groot. Iedereen binnen deze organisatie houdt zich bezig met het ontwikkelen, beheren, onderhouden van bedrijfskritische applicaties. De organisatie ontwikkelt applicaties voor o.a. diverse grote zorgverzekeraars, maar ook de wat kleinere lokale bedrijven worden door deze organisatie ondersteund. In tegenstelling tot de moederorganisatie, werken de medewerkers bij deze organisatie gemiddeld drie tot vier dagen in de week gewoon op het eigen kantoor in Utrecht. Samen met een vast team ben je dus verantwoordelijk voor verschillende projecten die je veelal op één en

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

24/10/2020 02:55:00
 
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.