login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meer dan 1 postedvalue

Offline Appie_Dijk - 26/09/2006 11:09
Avatar van Appie_DijkLid hallo iedereen,

Ik gebruik het CMS-script van tiny_mce.
(werkt perfect overigens!)

Dit werkt perfect:

  1. <form method="post" action="verwerk.php">
  2. <textarea id="tekst" name="tekst" rows="22" cols="80" style="width: 620px"></textarea>
  3. </form>


en dan in verwerk.php:

  1. <?php
  2.  
  3. if ( version_compare( phpversion(), '4.1.0' ) == -1 )
  4. // prior to 4.1.0, use HTTP_POST_VARS
  5. $postArray = &$HTTP_POST_VARS ;
  6. else
  7. // 4.1.0 or later, use $_POST
  8. $postArray = &$_POST ;
  9.  
  10. foreach ( $postArray as $sForm => $value )
  11. {
  12. $postedValue = htmlspecialchars( stripslashes( $value ) ) ;
  13.  
  14. ?>
  15.  
  16. <textarea rows="22" name="tekst" cols="71" style="border:1px padding-left:4px; padding-right:4px; padding-top:1px; padding-bottom:1px"><?=$postedValue?></textarea><p>
  17.  
  18. <?php
  19. }
  20. ?>
  21. <input type="submit" value="Ja, gegevens vewerken" name="submit"><p>
  22.  
  23. <?php
  24. }
  25. ?>



voor zover werkt het perfect!

maar nu wil ik een extra veld hebben met bijv. naam, voorbeeld:

  1. <form method="post" action="verwerk.php">
  2. <textarea id="tekst" name="tekst" rows="22" cols="80" style="width: 620px"></textarea><p>
  3. Naam: <input name="naam" type="text" value="" maxlength="250" size="50">
  4. </form>


hoe moet ik dit in verwerk.php zetten? want daar gaat het bij mij fout.

4 antwoorden

Gesponsorde links
Offline Thomas - 26/09/2006 11:29
Avatar van Thomas Moderator Wat gaat er mis? Alle POST-waarden worden op één hoop gegooid in verwerk.php. Gebruik dus geen foreach, maar lees specifieke $_POST-waarden uit ($_POST['tekst'] en $_POST['naam']).
Offline Appie_Dijk - 26/09/2006 11:34 (laatste wijziging 26/09/2006 11:34)
Avatar van Appie_Dijk Lid ja ik begrijp wat je bedoelt maar ik weet niet hoe ik dit zou moeten verwerken.

ik neem aan dat je bedoelt dat ik iets moet veranderen aan:
  1. <?php
  2. if ( version_compare( phpversion(), '4.1.0' ) == -1 )
  3. // prior to 4.1.0, use HTTP_POST_VARS
  4. $postArray = &$HTTP_POST_VARS ;
  5. else
  6. // 4.1.0 or later, use $_POST
  7. $postArray = &$_POST ;
  8.  
  9. foreach ( $postArray as $sForm => $value )
  10. {
  11. $postedValue = htmlspecialchars( stripslashes( $value ) ) ;
  12.  
  13. ?>


maar hoe en wat precies weet ik dus niet... zou je me opweg kunnen helpen?
Offline Thomas - 26/09/2006 11:59
Avatar van Thomas Moderator Die code is in principe overbodig, aangenomen dat je geen PHP-versie ouder dan 4.1.0 gebruikt.
Regel 2 t/m 7 kijkt waar POST-gegevens vandaan gehaald moeten worden. Als je een beetje een nieuwe PHP-versie hebt (>= 4.1.0 blijkbaar) dan is dit altijd $_POST.

$postArray is een kopie van $_POST (of $HTTP_POST_VARS). Vervolgens plak je alle $_POST-waarden in een textarea met de naam "tekst". Dit bedoelde ik met "op een hoop gooien". Het onderscheid tussen de verschillende $_POST-waarden is nu weg. Dit moet je dus niet doen.

(Het fragment van) verwerk.php kan vervangen worden door:
  1. <textarea rows="22" name="tekst" cols="71" style="border:1px padding-left:4px; padding-right:4px; padding-top:1px; padding-bottom:1px"><?= htmlspecialchars(stripslashes($_POST['tekst'])) ?></textarea><p>
  2. Naam: <input name="naam" type="text" value="<?= htmlspecialchars(stripslashes($_POST['naam'])) ?>" maxlength="250" size="50"><p>
  3. <input type="submit" value="Ja, gegevens vewerken" name="submit"><p>


Wat dienen die <p>'s trouwens te doen? En voor htmlspecialchars(stripslashes()) zijn wel elegantere oplossingen.
Offline Appie_Dijk - 26/09/2006 12:14
Avatar van Appie_Dijk Lid thnx het lukt ;) !!!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s