php header: en layout question

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jesse

Jesse

11/05/2006 13:16:00
Quote Anchor link
Hi,
ik probeer als oefening een formulier te maken, waar iemand dus enkele gegevens invult. Nu heb ik dus enkele variabelen:

$_POST['achternaam']
$_POST['voornaam']
$_POST['email']

En nog een aantal.
Nu wilde ik als iemand een veld leeglaat, hem doorsturen naar een pagina die vriendelijk verzoekt om het nogmaals in te vullen.
Dit lukte ook wel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php if ($_POST['voornaam'] == NULL) {
    header('Location: Misguide.xhtml');
    }

    ?>

Het punt is alleen dat als je een grote site krijgt met allerlei variabelen, je dit telkens moet copy pasten voor elk veld.
Is er een manier om de code zo te schrijven dat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php if ($_POST['*elke variabele die gepost word*'] == NULL) {
    header('Location: Misguide.xhtml');
    }

    ?>

Dus dat elke variabele die ontbreekt genoeg is om deze header in gang te krijgen?
 
PHP hulp

PHP hulp

16/11/2024 23:25:42
 
Joshua

Joshua

11/05/2006 13:38:00
Quote Anchor link
Ik weet niet of dat mogenlijk is (misschien dat iemand anders hier meer zekerheid in kan geven), maar ik kan je wel 1 tip geven en dat is ipv dit te gebruiken:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
 if ($_POST['voornaam'] == NULL) {
    header('Location: Misguide.xhtml');
    }

?>


dit te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
 if (isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>


http://de3.php.net/manual/nl/function.isset.php

voor meer info over de functie isset()
Gewijzigd op 01/01/1970 01:00:00 door Joshua
 
Aoi

Aoi

11/05/2006 13:55:00
Quote Anchor link
@Joshua

je bedoelt dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
 if (!isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>
 
Mark D

Mark D

11/05/2006 13:57:00
Quote Anchor link
Joshua:
Ik weet niet of dat mogenlijk is (misschien dat iemand anders hier meer zekerheid in kan geven), maar ik kan je wel 1 tip geven en dat is ipv dit te gebruiken:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
 if ($_POST['voornaam'] == NULL) {
    header('Location: Misguide.xhtml');
    }

?>


dit te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
 if (isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>


http://de3.php.net/manual/nl/function.isset.php

voor meer info over de functie isset()


DE hearder moet gaan werken als de velden leeg zijn, jij activeert de heardera als ze wel bestaan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
 if (isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>


moet worden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
 if (!isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>


dat uitroepteken moet er dus nog bij, dat maakt veel verschil

srry, ik was net iets later...
Gewijzigd op 01/01/1970 01:00:00 door Mark D
 
Joshua

Joshua

11/05/2006 13:59:00
Quote Anchor link
Sorry, was de ! inderdaad vergeten.
 
Jesse

Jesse

11/05/2006 14:06:00
Quote Anchor link
Dankje voor de uitleg, maar je moet dit dus doen voor elk veld van het formulier?
 
Mark D

Mark D

11/05/2006 14:07:00
Quote Anchor link
Ja, voor zover ik weet wel.
 
Bart van der veen

bart van der veen

11/05/2006 14:07: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
<?
 if (
!
isset($_POST['voornaam']) || !isset($_POST['achternaam']) ||
!
isset($_POST['email'])
) {

    header("Location: Misguide.xhtml");
 }


# || is ore als compacte schrijfwijze is een of variant
# hier ging het topic toch over?

?>
 
Jesse

Jesse

11/05/2006 14:13:00
Quote Anchor link
Overigens heb ik !isset geprobeerd maar als ik dan mijn voornaam niet invul negeert hij dat gewoon en doet de header niks.
 
Mark D

Mark D

11/05/2006 14:16:00
Quote Anchor link
Ik heb daar ook wel eens last van gehad, heb je meerdere !isset's in 1 if gestopt, want bij mij werkt het dan niet meer.
 
Jesse

Jesse

11/05/2006 14:20:00
Quote Anchor link
Nee, ik heb een voorbeeld ook nog letterlijk geplakt die hier staat met de uitroepteken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
 if (!isset($_POST['voornaam'])) {
    header("Location: Misguide.xhtml");
 }

?>


Nu geeft het gewoon geen voornaam weer en gaat verder met de achternaam weer te geven. Zou de waarde van een lege tekstfield een byte Null opleveren?
(Ik las er iets over bij de isset functie verklaring, gepost hierboven).
 
Dennis S

Dennis S

11/05/2006 14:21:00
Quote Anchor link
gebruik empty ipv isset

dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (
    empty($_POST['voornaam']) ||
    empty($_POST['achternaam']) ||
    empty($_POST['email'])){
    
        header("Location: Misguide.xhtml");
     }

?>
 
Joshua

Joshua

11/05/2006 14:24:00
Quote Anchor link
probeer dit eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if (empty($_POST['voornaam'])) {
   header("Location: Misguide.xhtml");
}

?>


aangezien ik dit net las:

Just a note on the previous users comments. isset() should only be used for testing if the variable exists and not if the variable containes an empty "" string. empty() is designed for that.

Also, as noted previosuly !empty() is the best method for testing for set non-empty variables.

meer info over empty()
http://de3.php.net/manual/nl/function.empty.php

EDIT: net iets te langzaam :P
Gewijzigd op 01/01/1970 01:00:00 door Joshua
 
Dennis S

Dennis S

11/05/2006 14:26:00
Quote Anchor link
klopt helemaal ^^
 
Jesse

Jesse

11/05/2006 15:04:00
Quote Anchor link
Ah thank you, het werkt helemaal :D

|| kende ik overigens nog niet, die moet ik eens opzoeken. Zo te zien is het een opsomming.
 
- wes  -

- wes -

11/05/2006 15:08:00
Quote Anchor link
&& = AND
|| = OR
 
Bart van der veen

bart van der veen

11/05/2006 15:14:00
 



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.