Toon posts:

[php] self_post formulier werkt niet

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

Verwijderd

Topicstarter
Bij de onderstaande code
--------------------------------
<html><head><title>test1</title></head>
<body>

<?php
if($submit) {
echo "Hartelijk dank voor uw reactie.";
} else {
?>

<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="text" name="email" size=50>
<input type="submit" value="verstuur">
<input type="reset" value="wis">
</form>

<?php
}
?>

</body></html>
-------------------------------------
Zodra er iets ingevuld word en vervolgens op de submit knop geklikt word ververst de pagina, maar word de "Hartelijk dank voor uw reactie." niet getoond.

Weet u misschien wat ik fout doe? Alvast hartelijk bedankt voor uw reactie!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

waar zou $submit dan vandaan moeten komen?

Intentionally left blank


  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Hele enge code!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html><head><title>test1</title></head>
<body>

<?php
if($submit) {
echo "Hartelijk dank voor uw reactie.";
} else {
?>

<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="text" name="email" size=50>
<input type="submit" value="verstuur">
<input type="reset" value="wis">
</form>

<?php
}
?>
</body></html>


Ik zou het willen herschrijven naar nette code. Want je maakt gebruik van features welke je site openzetten voor hackers en andere ongenode gasten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
  echo '<html><head><title>test1</title></head>';
  echo '<body>';

  $sEmail= (isset($_POST['email'])?$_POST['email']:NULL);
 
  if (!is_null($sEmail))
  {
    // doe iets met $sEmail
    echo "Hartelijk dank voor uw reactie.";
  }
  else
  {
    echo '<form action="'.$PHP_SELF.'" method="post">';
    echo '<input type="text" name="email" size=50>';
    echo '<input type="submit" value="verstuur">';
    echo '<input type="reset" value="wis">';
    echo '</form>';
  }

echo '</body></html>';


Deze code is ook niet "je van het", maar is een goede start.

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.


  • orf
  • Registratie: Augustus 2005
  • Nu online

orf

Waarom niet kijken of er iets gepost wordt:

PHP:
1
2
3
4
5
6
7
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
  // er is iets gepost, valideer velden
}

?>


$PHP_SELF bestaat niet als register globals uit staat (default = uit). Je kunt daar dus (veel) beter $_SERVER['PHP_SELF'] van maken.

Verwijderd

Topicstarter
Bedankt crisp en wim-bart! De code die ik eerder gaf komt uit het boek PHP 4 zonder stress.

Volgens mij hadden jullie dat boek beter kunnen schrijven;)

Verwijderd

Topicstarter
Bedankt orf, dat scheelt een variabele.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Kortom, even de FAQ lezen doet wonderen: P&W FAQ - PHP:Mijn POST en GET forms werken niet (meer) ;)

Ik heb trouwens niet zo'n hoge pet op van de "... zonder stress" serie. Ik geloof dat je nu wel ondervonden hebt hoe dat komt. :P register_globals is al een hele tijd standaard uit, volgens mij sinds versie 4.0. Op deze manier iets voordoen in een boek over PHP4 is dus heel erg stom IMO. :X

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.