Eigen errors Zend Captcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Integratie Specialist

Ben jij net afgestudeerd en op zoek naar een startersfunctie? Heb je affiniteit met zorg en ICT en ben je analytisch sterk? Dan zijn wij voor onze vestiging in Amsterdam op zoek naar jou! Als Junior Integratie Specialist zorg jij dat de systemen en apparatuur van externe leveranciers en instanties naadloos communiceren met ons ZIS/EPD (zorginformatiesysteem/elektronisch patiëntendossier). Jij helpt ChipSoft met het bouwen aan duurzame informatie-uitwisseling in de zorg. Jouw baan Informatie-uitwisseling in de zorg is essentieel om de patiëntzorg te verbeteren. Als Junior Integratie Specialist ondersteun en adviseer jij de klant (veelal ziekenhuizen) om een perfecte communicatie tussen de

Bekijk vacature »

.NET Developer C# Web-development

Bedrijfsomschrijving Onze klant levert kwaliteitsdienst binnen zijn sector, het niveau van de Nederlandse sector is internationaal bekend! De organisatie richt zich op het waarborgen van deze kwaliteit en voorziet een groot aantal klanten in het MKB van jaarlijkse keuringen. Je komt te werken binnen een team van ongeveer 10 medewerkers waarbij de focus ligt op de doorontwikkeling en het implementeren van oplossingen in het applicatielandschap. Binnen deze organisatie werken ze met diverse Scrum/Agile teams, het is dan ook belangrijk dat je ervaring hebt met deze werkwijze en het leuk vindt om op deze manier te werk te gaan. Het betreft

Bekijk vacature »

High Tech Software Developer (C#.NET)

(Senior) High Tech Software Developer (C#.NET) (C#/ .NET. / WPF/Prism. Winform/CAB, WCF) Intro Are you a Software Professional and do you have experience in developing software in an object-oriented way using C#/ .NET? And do you have profound knowledge of full system software development from the embedded platform up-to the operator facing applications. Then I have the perfect position for you! For our client, a fast-dynamic technical company, we are looking for several Senior Software Developers (C#.NET). You will be part of the Software team, You will be end-to-end responsible for realization of software in C# in the software department,

Bekijk vacature »

(Junior) Informatie Consultant

Functiebeschrijving NORISK IT Groep is een innovatieve en tevens groeiende IT-dienstverlener in Noord Nederland. De onderneming biedt specialistische kennis en ervaring voor het ontwerp, de levering en installatie, alsmede voor het onderhoud en beheer op systemen en infrastructuren, voor grote en middelgrote organisaties. Betrokkenheid, eigenaarschap en slagvaardig handelen hebben geleid tot langdurige klantrelaties en een prominente positie op de Noordelijke IT-markt. De NORISK IT Groep maakt sinds maart 2018 onderdeel uit van de Vincere Groep, een landelijke speler van zeven bedrijven op het gebied van IT, Communicatie en Security. NORISK Visionair, een dochteronderneming van de NORISK IT Groep, voert met

Bekijk vacature »

.NET Developer Datawarehouse

.NET Developer Datawarehouse Werk jij als software developer het liefst met uitdagende systemen? Wil jij je steentje bijdragen aan een betere en efficiëntere zorg? Dan kun jij je bij onze vestiging in Amsterdam volledig uitleven als .NET Developer Datawarehouse. Jouw baan Je ontwerpt, ontwikkelt, ondersteunt en onderhoudt je eigen Datawarehouse module binnen HiX, onze ICT-totaaloplossing voor de zorg. Je schrijft objectgeoriënteerde code (we werken met Microsoft technologie, wat betekent dat je veel met C# gaat werken), speurt naar verbeteringen, werkt aan vernieuwende projecten, doet code reviews en voert testen uit. Een uiterst verantwoordelijke job, want dankzij jouw software kunnen zorginstellingen

Bekijk vacature »

Java Developer / Overheid / Complexiteit

Bedrijfsomschrijving Binnen de organisatie zijn meer dan 10.000 medewerkers dagelijks werkzaam op meer dan 30 verschillende locaties. In deze dynamische omgeving is geen dag hetzelfde. Dit komt door de snelheid waarmee veranderingen plaatsvinden. Dagelijks hebben jouw werkzaamheden direct invloed op het transport van mensen, goederen en personeel. Als Java Developer kom je terecht in een hecht team van op de locatie in Assen. Hier zal jij verantwoordelijk worden voor alles wat met Java en de daarbij behorende bedrijfskritische applicaties te maken heeft. De applicatie regelt en registreert alle dagelijkse bezigheden van deze organisatie. Op locatie heb jij dus direct inzicht

Bekijk vacature »

Java Developer

Bedrijfsomschrijving You will work at a large and progressive financial organization with offices in the Netherlands and abroad. You work within the domain that is responsible for delivering several daily banking processes used by all our customers. The processes are fixed around life cycle management for the current accounts and packages, such as opening and closing an account. Your colleagues are all driven Engineers, who like to stay up-to-date with the latest technologies. You are going to work in a team that believes in the DevOps way of working. As Developer you are responsible for the technical structure of several

Bekijk vacature »

Software developer

Bedrijfsomschrijving De organisatie is een grote, mondiale speler binnen de agrarische sector. Deze organisatie loopt voorop op het gebied van duurzaamheid. Je neemt deel aan Scrum meetings en bent bezig met het opleveren van nieuwe functionaliteiten en processen voor de verschillende afdelingen. Een voorbeeld is dat we vanuit onze agrarische dienst, telers voorzien van een persoonlijk teeltadvies gebaseerd op real-time metingen in het veld gecombineerd met machine learning algoritmes en big-data. En met onze low-code tools en Cloud services bouwen we applicaties voor onze interne klanten en de meer dan 8000 telers. Om ook in de komende 100 jaar succesvol

Bekijk vacature »

.NET developer

Ben je niet onbekend met .NET frameworks en full-stack development? En ben je op zoek naar een uitdagende functie bij een groeiend bedrijf? Dan heb je wellicht interesse in de positie van: .NET developer voor ons kantoor in Helmond Over de positie: Je hebt een duidelijke rol binnen het team, waarbij je verantwoordelijk voor het ontwerpen en beheren van de plug ins voor de verschillende webshopomgevingen en/of de webportal bent. Je geeft advies aan resellers ontwikkelaars en begeleidt ze op technisch gebied aangaande de implementatie van nieuwe betaalmethoden en levert 3de lijns technical support. Over jou: Wij zijn op zoek

Bekijk vacature »

TVD Developer

Data Management Developer For one of our clients we are looking for a highly-motivated application specialist with proven relevant knowledge of and experience within the area of Data Management Development. This is going to be your job Are you a highly-motivated application specialist with proven knowledge of and experience with applying to the Tibco Data Virtualization domain in the area of Data Management Development? Do you have generic knowledge of and experience with data management capabilities? You are an enthusiastic T-shaped team player that will manage the environment and where you take ownership for the continuity of our solutions and

Bekijk vacature »

Ervaren C#/Azure developer werkt mee aan backend p

Voor een innovatieve bouwonderneming die al meer dan 113 jaar bestaat, zijn wij op zoek naar ervaren .Net/C#/Azure developers. Het bedrijf bouwt een (pre-fab) huizenfabriek die 4000 woningen per jaar kan produceren. Deze woningen worden dan modulair op de bouwplaats in elkaar gezet en worden met duurzame (recyclebare) materialen gemaakt en geplaatst. Dit zonder PFAS en zeer weinig NOX. Als .Net developer maak je deel uit van een multidisciplinair team met andere .net developers, BI consultant, systeem- en applicatiebeheerders. Je gaat meebouwen aan de middleware-laag waar 30+ applicaties (waaronder erp systemen) gekoppeld kunnen worden. Deze integraties komen samen op het

Bekijk vacature »

.NET developer

Ben je niet onbekend met .NET frameworks en full-stack development? En ben je op zoek naar een uitdagende functie bij een groeiend bedrijf? Dan heb je wellicht interesse in de positie van: .NET developer voor ons kantoor in Helmond Over de positie: Je hebt een duidelijke rol binnen het team, waarbij je verantwoordelijk voor het ontwerpen en beheren van de plug ins voor de verschillende webshopomgevingen en/of de webportal bent. Je geeft advies aan resellers ontwikkelaars en begeleidt ze op technisch gebied aangaande de implementatie van nieuwe betaalmethoden en levert 3de lijns technical support. Over jou: Wij zijn op zoek

Bekijk vacature »

Lead Developer

Discipline Information Technology Location Venlo (NL) Hours a week 40 As our Lead Developer You will be responsible to create an architectural blueprint in collaboration with product, owner and development team. You align domain architecture with enterprise architecture and you create, influence and apply domain-specific architecture views & viewpoints. You have overview and you can balance long term and near-term priorities What you will do Design solution architecture to ensure a scalable, performant, highly available secure software product Drive adoption of technology standards within a domain Hands-on development of processes and applications in the ecosystem Guide implementations (data cleanup procedures,

Bekijk vacature »

Senior Developer Adobe Experience Manager

In this role, you have the opportunity to • Work in an experienced Agile team. Developing high standard solutions in a complex and challenging environment. You are responsible for • Developing creative and maintainable solutions within existing Signify Digital Marketing landscape • Extending and Improving experience for the end users of the Signify products website You are a part of • A diverse (Onshore/Offshore) scrum team within the Signify IT Delivery organization. Functie-eisen To succeed in this role, you should have the following skills and experience : Java language Adobe Experience Manager ( AEM ) AEM Dispatcher (Apache Web Server)

Bekijk vacature »

Medior .Net Developer - Logistieke zeevracht secto

Voor een hechte, informele en jonge club gespecialiseerd in Transport Management Systemen voor de vracht en havensector zijn wij op zoek naar een medior (3+ jaar) .Net C# Developer. Een goede, sociale communicator die samenwerking en passie voor het vak key vindt. En die durft te sparren, dromen en pionieren! Deze organisatie van 150 man (waarvan 9 IT-toppers) zorgen er al 30 jaar voor dat internationale transport tot in de details kunnen worden berekend, ingepland en gemanaged, bijvoorbeeld in de Rotterdamse haven. Hierdoor worden kosten, materialen, arbeid, ontwerpen en oplevering perfect en just-in-time op elkaar afgestemd. Ze zijn marktleider én

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

19/01/2021 07:01:23
 
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.