form check

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

05/11/2005 13:23:00
Quote Anchor link
Ik wil een formulier controleren , en bij fouten de gebruiker naar een nieuwe pagina sturen , maar ik zit met 2 vragen.

1.
if(strlen($name) < 4){ :: hoe controleer ik meerdere velden op deze manier?

2. als ik als actie ::: header("Location: bedankt.php3"); ::: doe dan krijg ik een error dat headers al zijn verstuurd .. hoe los ik dat op?
 
PHP hulp

PHP hulp

16/11/2024 02:20:47
 
Jan Koehoorn

Jan Koehoorn

05/11/2005 14:06:00
Quote Anchor link
Als je formulier als method post heeft en je submit button als name 'go', doe je:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
  if (isset ($_POST['go'])) {
    foreach ($_POST as $key => $value) {
      if (strlen ($value) < 4) {
        // error
      }
    }
  }

?>
 
PHP erik

PHP erik

05/11/2005 14:19:00
Quote Anchor link
Als je niet alle velden wil controleren is dat natuurlijk niet handig. Je kunt bijvoorbeeld een array maken met alle velden die gecontroleerd dienen te worden en bovenstaande techniek van Jan gebruiken. Of je kunt simpelweg (als het om slechts een paar controles gaat) het volgende doen:

if (strlen($iets) < 4 || strlen($ietsanders) < 4)


Verder raad ik je aan dit artikel over headers already sent te lezen: http://www.phpfreakz.nl/artikelen.php?aid=109


En nog een korte, minder belangrijke opmerking: je kunt beter niet
if(isset($_POST['de_submit_button'])) gebruiken, omdat men dan niet op ENTER kan drukken maar per sé moet klikken op de knop. Gebruik dus liever
if ($_SERVER['REQUEST_METHOD'] == "POST")

Succes
 
- SanThe -

- SanThe -

05/11/2005 14:24:00
Quote Anchor link
PHPerik:
En nog een korte, minder belangrijke opmerking: je kunt beter niet
if(isset($_POST['de_submit_button'])) gebruiken, omdat men dan niet op ENTER kan drukken maar per sé moet klikken op de knop. Gebruik dus liever
if ($_SERVER['REQUEST_METHOD'] == "POST")


Maakt dit het niet juist makkelijker voor de spamrobots?
 

05/11/2005 14:26:00
Quote Anchor link
bedankt allebei heb hem nu goed werkende :D
 
PHP erik

PHP erik

05/11/2005 14:29:00
Quote Anchor link
SanThe:
PHPerik:
En nog een korte, minder belangrijke opmerking: je kunt beter niet
if(isset($_POST['de_submit_button'])) gebruiken, omdat men dan niet op ENTER kan drukken maar per sé moet klikken op de knop. Gebruik dus liever
if ($_SERVER['REQUEST_METHOD'] == "POST")


Maakt dit het niet juist makkelijker voor de spamrobots?


Ja, dat wel. Maar dat weegt over het algemeen niet op tegen functionaliteit. En een beetje spambot zal de naam van je submit-input nog gewoon eruit knippen en in een hidden-veld zetten.
 

05/11/2005 17:47:00
Quote Anchor link
Zit toch nog ,met 1 probleem... namelijk de header-sent.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ){
if (strlen($login_name) < 4 || strlen($login_pass) < 4){
echo "fout ingevuld";
?>


Ik wil in plaats van die "echo" dus naar een nieuwe pagina gaan met 'header location' , maar dan krijg ik dus zon error.. ik heb het artikel op phpfreakz al bekeken .. maar zie geen oplossing hiervoor.. en ik wil niet obj flush gebruiken ( das niet zo netjes..)
 
Willem Jan Z

Willem Jan Z

05/11/2005 17:54:00
Quote Anchor link
Wil niet brutaal doen PHPerik, maar bij mij werkt het altijd gewoon hoor :S
En ik gebruik echt nooit (oke, bijna nooit) mijn muis...

Edit:
Header probleem:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo '<meta http-equiv="refresh" content=0;jouwpagina.php">';
?>
Gewijzigd op 05/11/2005 17:57:00 door Willem Jan Z
 

05/11/2005 17:59:00
Quote Anchor link
Ja idd. Het werkt gewoon.
 



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.