Input type="radio" meesturen in mail via Post

Status
Niet open voor verdere reacties.

BoukeWeening

Gebruiker
Lid geworden
3 apr 2007
Berichten
232
Wie kan mij helpen? Hoe krijg ik de uitkomst van de Radio button ook in de mail verwerkt?

PHP:
// HTML e-mail formlier
      echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
      <p>
      
      
          <label for="naam">Naam:</label>
          <input type="text" class="input" id="naam" name="naam" value="' .htmlspecialchars($naam). '" /><br />
          
          <label for="adres">Adres:</label>
          <input type="text" class="input" id="adres" name="adres" value="' .htmlspecialchars($adres). '" /><br />
          
          <label for="postcode">Postcode:</label>
          <input type="text" class="input" id="postcode" name="postcode" value="' .htmlspecialchars($postcode). '" /><br />
          
          <label for="Woonplaats">Woonplaats:</label>
          <input type="text" class="input" id="woonplaats" name="woonplaats" value="' .htmlspecialchars($woonplaats). '" /><br />
                                          
          <label for="mail">E-mailadres:</label>
          <input type="text" class="input" id="mail" name="mail" value="' .htmlspecialchars($mail). '" /><br />
          
          <label class="margin" for"bedrag">Bedrag:</label>
          <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" class="bedrag" "id="bedrag" name="bedrag" value="' .htmlspecialchars($bedrag). '" /> euro p/m<br /><br />
          
          <label for="rekeningnummer">Rekeningnummer:</label>
          <input type="text" class="input" id="rekeningnummer" name="rekeningnummer" value="' .htmlspecialchars($rekeningnummer). '" /><br />
          
		  <label for="bericht">Bericht:</label><br />
          <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">Typ hier eventueel uw bericht... ' .htmlspecialchars($bericht). '</textarea><br />

          <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 
 
          
          <input type="submit" name="submit" value=" Versturen " />
      </p>
      </form>';
    }
    // versturen naar
    else
    {      
      // set datum
      $datum = date('d/m/Y H:i:s');
        
      $inhoud_mail = "===================================================\n";
      $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
      $inhoud_mail .= "===================================================\n\n";
      
      $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
      $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
      $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
      $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
      $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bericht:\n";
      $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
        
      $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
        
      $inhoud_mail .= "===================================================\n\n";
      
      // --------------------
      // spambot protectie
      // ------
      // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
      // ------
      
      $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
      
      $headers = stripslashes($headers);
      $headers = str_replace('\n', '', $headers); // Verwijder \n
      $headers = str_replace('\r', '', $headers); // Verwijder \r
      $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
      
      $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
      $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
      $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes

Wie kan mij helpen? Hoe krijg ik de uitkomst van de Radio button ook in de mail verwerkt?
 
waarom zou je de moeite nemen om radiobuttons in je mail te verwerken. Ik neem aan dat de mail bedoeld is als een bevestiging moet dienen.
Dan is het toch meer dan afdoende dat je in de mail weergeeft welke keuze er is gemaakt en verzonden!
 
Klopt, dat wil ik ook graag! Dat hij in de mail weergeeft welke keuze is gemaakt! Dus of 3,16 of 6,32 of vrije keus namelijk:

Hoe krijg ik dat erin?
 
zet boven aan je script(binnen je php-tag) eens
echo '<pre>';
print_r($_POST);
echo '</pre>';

Dit laat je zien wat er in de $_POST array verzonden/ontvangen is.

wacht, het moet na de else komen daar waar je de mail aanmaakt!
 
Laatst bewerkt:
Dit is de uitkomst:

Array
(
[naam] => bouke
[adres] => Adres
[postcode] => 9999AA
[woonplaats] => Amsterdam
[mail] => mail@mail.com
[bedrag] =>
[rekeningnummer] => 333333333
[bericht] => Typ hier eventueel uw bericht...
[machtiging] => Machtiging
[submit] => Versturen
)
 
aan deze array te zien heb je geen keuze ingegeven bij de radiobuttons
aangezien de [bedrag] leeg is. anders zou er 3,16 of 6,32 of vrij als waarde zijn in gegeven.
 
oke, maar hoe krijg ik deze keuze dan wel mee? Ik heb wel een van de radiobuttons geactiveerd... Waar gaat het fout?
 
maak van je name bij de radiobutons eens een array
name="bedrag[]"
ik gok dat de browser voor elke radiobutton de waarde overschrijft.
Zou je kunnen testen door ff de laatste radiobutton te kiezen!
 
Fout. Dat doe je bij een checkbox.

HTML:
<input type="radio" name="bedrag" value="3.16" /> 3,16
<input type="radio" name="bedrag" value="6.32" /> 6,32
<input type="radio" name="bedrag" value="vrij" /> anders
 
Ok, maar volgens mij heb ik dat ook?

Ik heb dus dit:

PHP:
<label class="margin" for"bedrag">Bedrag:</label>
          <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" class="bedrag" "id="bedrag" name="bedrag" value="' .htmlspecialchars($bedrag). '" /> euro p/m<br /><br />

Alleen neemt hij alleen maar wat over als je het vrije tekstveld invult. als je dus 3,16 aanvinkt dan neemt hij niks mee in de mail.

de mail wordt zo opgebouwd:
PHP:
      $datum = date('d/m/Y H:i:s');
        
      $inhoud_mail = "===================================================\n";
      $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
      $inhoud_mail .= "===================================================\n\n";
      
      $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
      $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
      $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
      $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
      $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bericht:\n";
      $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
        
      $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
        
      $inhoud_mail .= "===================================================\n\n";
 
Je hebt twee velden met als "name"-attribuut "bedrag". De radiobuttons en het vrije tekstveld. In dit geval zorgt dit ervoor dat $_POST['bedrag'] de waarde van het vrije tekstveld bevat en niet van de radiobuttons.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan