Fout in groter dan script!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark van den Brink

Mark van den Brink

13/03/2013 21:37:17
Quote Anchor link
Goeie avond webmasters,

ik had een rookie vraag waar ik echt niet uit kom! vandaar in beginnen met php forum!

Mijn script:
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
if($padi > 6){
                 
        
         $form->setError(padi, "* Uw padinummer is te lang");
      } else {
          $padi = stripslashes($padi);
      }
        
      if(ctype_digit($padi)) {
        $padi = stripslashes($padi);
    } else {
        
         $form->setError(padi, "* Uw padinummer bevat niet alleen getallen");
    }


Werkt niet naar behoren.

Het padinummer mag maximaal 6 cijfers bevatten wat ik dus met et eerste gedeelte controleer en met het 2e gedeelte controleer ik of het wel cijfers zijn!

Het controleren van cijfers werkt prima geen probleem geeft ook duidelijk de foutmelding wanneer iemand tekens gebruikt maar nu mijn groter dan gedeelte.

Het maakt niet uit hoeveel cijfers iemand invult maar het resultaat blijft uw padinummer is te lang! Zowel bij 3 cijfers als bij 20 blijft hij dat geven!


Wanneer ik dat gedeelte volledig verwijder controleerd hij prima op tekens en upload hem ook perfect naar mij DB Alleen het groter dan gedeelte gooit roet in het eten...


Oftewel nu snap ik er echt niks van...

Kunnen jullie mij helpen??

met vriendelijke groet,

Mark
Gewijzigd op 13/03/2013 21:47:01 door Mark van den Brink
 
PHP hulp

PHP hulp

27/04/2024 16:51:06
 
Wouter J

Wouter J

13/03/2013 21:49:35
Quote Anchor link
> 6 kijkt gewoon of dat getal groter is dan 6, je bent denk ik opzoek naar strlen (string lengte)
 
Daniel Vos

Daniel Vos

13/03/2013 22:12:28
Quote Anchor link
Met if($padi > 6) wordt er inderdaad alleen naar gekeken of de waarde van $padi groter is dan 6.

Met dit hieronder wordt er gekeken of $padi 1 tot en met 6 tekens bevat en die of die tekens alleen bestaan uit 0, 1, 2, 3, 4, 5, 6, 7, 8 en 9.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(preg_match("/^([0-9]{1,6})$/",$padi))
    {

    echo 'goed';
    }

else
    {
    echo 'fout';
    }

?>
 
Wouter J

Wouter J

13/03/2013 22:23:13
Quote Anchor link
en dat is 10x zo langzaam als het gebruik van strlen en ctype_digit. Vermeid het gebruik van de pReg zo veel mogelijk (en gebruiken vooral geen captured groups als dat niet nodig is)
 
Mark van den Brink

Mark van den Brink

13/03/2013 22:57:34
Quote Anchor link
Jemig wat stom inderdaad strlen zocht ik.
Bedankt wouter!

Na een tijdje niet meer dat soort dingen gescript te hebben ga je van dit soort foutjes maken!

Super bedankt!
 



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.