[php] form gegevens niet in variabelen

Pagina: 1
Acties:

  • Heras
  • Registratie: December 2001
  • Laatst online: 20-04 13:23
Ik ben gisteren voor het eerst aan de slag gegaan met PHP.
Apache, mysql en php 4.2.3 draaien en lijken goed te werken.

Al bij het derde php-voorbeeldje uit mijn boek gaat er echter iets fout.
De gegevens in een zeer simple formuliertje worden op één of andere manier niet doorgegeven aan de variabelen...

het stukje code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<form name="formulier1" action="formulier1.php" method="get">
Voer alstublieft uw voornaam in: <input type=text name=voornaam><br><br>
Voer alstublieft uw achternaam in: <input type=text name=achternaam><br><br>
<input type=submit name=verzenden>
</form>

<?php
if($verzenden){
  echo "<b>Hartelijk welkom, $voornaam $achternaam.</b>";
}
?>


Een zeer simpel stukje code dus. Het resultaat is echter slechts een leeg formulier, zonder de hartelijk welkom regel... De url van de pagina veranderd overigens netjes in;

http://localhost/voorbeelden/formulier1.php?voornaam=Willem&achternaam=Wever&verzenden=Query+verzenden

Dus dat gaat goed.

Mis ik soms een instelling in een ini file? Of maak ik ergens een gigantische beginnersfout?

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 15:10

Kees

Serveradmin / BOFH / DoC
bug --> pw

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier


Verwijderd

$_POST['variable'] naam moet werken :)

  • Heras
  • Registratie: December 2001
  • Laatst online: 20-04 13:23
Thanx! Ik had dit inderdaad totaal over het hoofd gezien... stond nog niks over in mijn boek...

$_GET['voornaam'] werkt wel

alleen niet meer op de manier zoals boven in mijn code. Ik heb dit stukje;

PHP:
1
echo "<b>Hartelijk welkom, $voornaam $achternaam.</b>";


moeten vervangen met;

PHP:
1
2
3
4
5
<?php
if($_GET['verzenden']){
    echo "Hartelijk welkom " .$_GET['voornaam']." ".$_GET['achternaam']; 
}
?>


Heb ik het zo een beetje begrepen?

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 31-08 21:22

HenkS

Da_king alias HenkS

Heras schreef op 02 oktober 2002 @ 08:07:
Thanx! Ik had dit inderdaad totaal over het hoofd gezien... stond nog niks over in mijn boek...

$_GET['voornaam'] werkt wel

alleen niet meer op de manier zoals boven in mijn code. Ik heb dit stukje;

PHP:
1
echo "<b>Hartelijk welkom, $voornaam $achternaam.</b>";


moeten vervangen met;

PHP:
1
2
3
4
5
<?php
if($_GET['verzenden']){
    echo "Hartelijk welkom " .$_GET['voornaam']." ".$_GET['achternaam']; 
}
?>


Heb ik het zo een beetje begrepen?
als variabelen leeg zijn is het ten eerste altijd handig om phpinfo te doen.. dan zie je of ze echt bestaan of niet

ten 2e:

ipv al je getyp hierboven kun je ook doen:

PHP:
1
2
3
4
5
6
7
8
9
extract($_GET);

of 

extract($_POST); 

of

extract($_SERVER);


en dan kun je je form vars of wat voor vars net zoals vanouds aanspreken!!! dus hoef je niet helemaal _GET['voornaam'] te typen, maar weer gewoon $voornaam

suc6

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

HenkS schreef op 02 oktober 2002 @ 09:16:
ten 2e:

ipv al je getyp hierboven kun je ook doen:

PHP:
1
2
3
4
5
6
7
8
9
extract($_GET);

of 

extract($_POST); 

of

extract($_SERVER);


en dan kun je je form vars of wat voor vars net zoals vanouds aanspreken!!! dus hoef je niet helemaal _GET['voornaam'] te typen, maar weer gewoon $voornaam

suc6

Dat is dus de vieze oplossing...
Er is een _reden_ dat die $_GET etc gebruikt wordt en dat is voornamelijk de veiligheid en duidelijkheid, dan moet je natuurlijk niet die extra's te niet doen door het weer op de oude manier te laten werken en dus alle potentiele bugs daarmee weer te introduceren.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

Ik heb eigenlijk nooit echt begrepen waarom je het niet via $_GET[] zou willen doen. Misschien heeft het te maken met mierenneuken :P maar in m'n script vind ik het erg belangrijk om te weten wat welke var is en waar die vandaan komt. (en veiligheid is idd een andere reden). En dan kun je ook meteen netjes eerst controleren of alle get/post vars die je verwacht, er ook idd keurig zijn, en je gooit ook geen get of post vars door elkaar (wat de duidelijkheid ook weer ten goede komt imho).
Ben ik dan gewoon overijverig dat ik $GET[] overal omheen type? Of...

Exact expert nodig?

Pagina: 1