Mailformulier

Status
Niet open voor verdere reacties.

pieturrr

Gebruiker
Lid geworden
21 dec 2007
Berichten
15
Hoi mensen,

Ik ben echt een absolute noob in PHP, en ik heb de opdracht gekregen een mail formulier te maken. Ik ben echt te trots dat het werkt (het is wel te simpel :shocked:, maar zoals ik al zei ben ik nog een beginner). Dit is het allereerste dat ik heb geproduceert in PHP, de vraag die ik heb staat eronder:
Code:
<?php  
 if(isset($_POST['submit'])) {  
 $to = "pietur@hotmail.com";  
 $subject = "Sport inschrijvingen";  
 $adres_field = $_POST['adres'];  
 $email_field = $_POST['email'];
 $tel_field = $_POST['tel'];    
 $spel1_field = $_POST['spel1'];
 $spel2_field = $_POST['spel2'];
 $spel3_field = $_POST['spel3'];  
 $spel4_field = $_POST['spel4'];  
 $spel5_field = $_POST['spel5'];  
 $spel6_field = $_POST['spel6'];  
 $spel7_field = $_POST['spel7'];  
 $spel8_field = $_POST['spel8'];  
 $spel9_field = $_POST['spel9'];  
 $spel10_field = $_POST['spel10'];  
 $spel11_field = $_POST['spel11'];  
 $geb1_field = $_POST['geb1'];
 $geb2_field = $_POST['geb2'];
 $geb3_field = $_POST['geb3']; 
 $geb4_field = $_POST['geb4'];
 $geb5_field = $_POST['geb5'];
 $geb6_field = $_POST['geb6'];
 $geb7_field = $_POST['geb7'];
 $geb8_field = $_POST['geb8'];
 $geb9_field = $_POST['geb9'];
 $geb10_field = $_POST['geb10'];
 $geb11_field = $_POST['geb11'];

 $body = "
 Hier de bevestiging van je inschrijving:
 Adres:          $adres_field 
 E-mail Adres:   $email_field 
 Telefoonnummer: $tel_field  
 Aanvoerder:     $spel1_field  Geboortedatum $geb1_field
 Speler 2:       $spel2_field  Geboortedatum $geb2_field
 Speler 3:       $spel3_field  Geboortedatum $geb3_field
 Speler 4:       $spel4_field  Geboortedatum $geb4_field
 Speler 5:       $spel5_field  Geboortedatum $geb5_field
 Speler 6:       $spel6_field  Geboortedatum $geb6_field
 Speler 7:       $spel7_field  Geboortedatum $geb7_field
 Speler 8:       $spel8_field  Geboortedatum $geb8_field
 Speler 9:       $spel9_field  Geboortedatum $geb9_field
 Speler 10:      $spel10_field Geboortedatum $geb10_field
 Speler 11:      $spel11_field Geboortedatum $geb11_field";  
   
 echo "De gegevens zijn verstuurd naar de wedstrijdleiding!";  
 mail($to, $subject, $body);  
 } 
 else {  
 echo "Er is iets fout gegaan bij het mailen, probeer het later nog eens!";  
 }  
?>

Dit werkt dus, en is slechts de mailer. Het invoerformulier staat gewoon op een losse html pagina, en wordt gecontroleerd met javascript.

Ik zou graag willen dat de mail ook wordt verzonden naar wat in het html formulier wordt ingevoerd bij email. De naam heeft het veld $email_field in php. Dus naar wat daar ingevoerd is, moet een cctje. Ik heb al een aantal dingen geprobeerd, maar het is me nog niet gelukt. Kan iemand me hiermee helpen?

Alvast bedankt!

Pieter
 
Gewoon nog een keer de mail()-functie gebruiken alleen dan met het adres van degene die het formulier had ingevuld :)
 
Woow, wat een snelle reacties! Bedankt :)

Dus als ik het een beetje begrijp komt dit er dit:
mail($to, $subject, $body);
mail(&email_field, &subject, $body); ?

Alvast bedankt!

Ik heb nog een vraagje (A). Ik heb een radio button:
Code:
<tr>
  <td>
  <INPUT Type=radio NAME="sport" id="voetbal" VALUE="voe"> Voetbal (minimaal&maximaal 11)
  </td>
  </tr>
  <tr>
  <td>
  <INPUT Type=radio NAME="sport" id="honkbal" VALUE="hon"> Honkbal (minimaal&maximaal 9)
  </tr>
  <tr>
  <td>
  <INPUT Type=radio NAME="sport" id="hockey" VALUE="hoc"> Hockey (minimaal&maximaal 11)
  </td> 
  </tr>
  <tr> 
  <td>
  <INPUT Type=radio NAME="sport" id="volleybal" VALUE="vol"> Volleybal (minimaal&maximaal 6)
  </td>
  </tr>

En ik wil graag dat de keuze van deze button ook nog wordt weergegeven in de mail, dat was ik nog vergeten...Kan iemand daarmee helpen? Want dat gaat anders dan een normaal textvak...

Groet Pieter
 
Wanneer jij de value in gewoon nederlands invult krijg je die ook terug in je formulier :)
Dus bijvoorbeeld zo:
HTML:
<input type="radio" name="sport" value="Voetbal" id="voetbal" />
Als die dan wordt geselecteerd is de waarde van $_POST['sport'] Voetbal.

@Donnows: Waarschijnlijk kun je dan beter met headers gaan werken zodat je daarin de extra velden zet.

@beide: Voor meer informatie (en voorbeelden) kun je natuurlijk gewoon de PHP-site er bij pakken :)
 
Bedankt Devil, ik bedoelde wat anders;) Ik heb het al gevonden, het was gewoon $sport_radio invullen, en bij gaf hem weer. Die value's heb ik inderdaad wel veranderd, goede tip..
SORRY, je had gelijk, ik was over je oplossing heengelezen (A) Het is nu in ieder geval oke :)! Thanks


Helaas is mijn email versturen naar de invuller nog geen succes.

mail($to, $subject, $body);
mail(&email_field, &subject, $body); ?

Als ik het zo maak, gaat het dan werken?

Alvast bedankt!

EDIT: Bovenstaande werkt dus niet...

Misschien moet ik het duidelijker formuleren..
De PHP staat hierboven, de HTML is te vinden via www.koopjeleds.nl/joh.html dat werkt nu dus.

Bij het formulier op www.koopjeleds.nl/joh.html staat als tweede invoerveld een vak waar je een mail adres kan invoeren. Het is dus de bedoeling dat ik in de php regel dat DAT email adres (die dus per persoon verschillend is) ook een mailtje krijgt, dezelfde als die pietur@hotmail.com ontvangt..

Ik snap dus nog steeds niet hoe de php moet worden... Graag nogmaals jullie hulp :)

Alvast bedankt voor alle moeite tot nu toe!
 
Laatst bewerkt:
Tha Devil, begrijp mij niet verkeerd, maar ik heb op het moment (behalve dat hij het ook naar een database moet schrijven) een "goed" werkend formulier, ik heb het alleen anders opgelost omdat ik het ook naar een vast adres moest mailen.

verder denk ik dat je de variabele van de verstuurder er bij moet zetten op de volgende manier:

$to = "inschrijven@helpmij.nl, $mailformulier";
 
Laatst bewerkt:
Dus in mijn praktijk voorbeeld wordt dat:

$to = "pietur@hotmail.com, $email_field"; ?
 
euhm ja denk het probeer maar kijken of het lukt

wat ik alleen niet snap, misschien kan Tha Devil daarmee helpen, dat je bij de string if(!mail ($to, $subject, $message

geen variabele kan maken $cc (teminste dat werkte niet bij mij
 
Laatst bewerkt:
Hmm, het formulier werkt nu nog wel, maar wordt niet verzonden naar het ingevulde email adres.

Misschien als ik het doe naar $_POST['email'] ? Of werkt dat sowieso niet?

EDIT: Nee, met die post email doet ie het helemaal niet meer...

Nog iemand met aanpassingen? Bedankt Donnows!
 
Laatst bewerkt:
je kan het ook zo proberen
$to = "pietur@hotmail.com, $_POST['email']"; ?
 
Nope, niet dus... Wel bedankt voor je suggesties!

Moet je niet iets met value doen? Wat het gaat om de ingevulde waare bij email...
 
Geeft niks, ben erg blij met je hulp...

Er zijn vast andere die me kunnen helpen :)
 
Tha Devil, begrijp mij niet verkeerd, maar ik heb op het moment (behalve dat hij het ook naar een database moet schrijven) een "goed" werkend formulier, ik heb het alleen anders opgelost omdat ik het ook naar een vast adres moest mailen.
Het is alleen handig wanneer je hetzelfde bericht naar iemand wilt sturen.

Echter 9 van de 10 keer stuur je een soort van bedankt-mail naar degene die het formulier heeft ingevuld.

wat ik alleen niet snap, misschien kan Tha Devil daarmee helpen, dat je bij de string if(!mail ($to, $subject, $message

geen variabele kan maken $cc (teminste dat werkte niet bij mij
Klopt, er is geen veld voor de CC. Dit soort acties moet je oplossen door middel van headers :)

PHP:
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

@pieturrr: Zou je je huidige code even tussen
PHP:
...
hier willen plaatsen?
 
Tuurlijk :)

PHP:
<?php  
 if(isset($_POST['submit'])) {  
 $to = "pietur@hotmail.com, $email_field"; 
 $subject = "Sport inschrijvingen";  
 $adres_field = $_POST['adres'];  
 $email_field = $_POST['email'];
 $tel_field = $_POST['tel'];    
 $spel1_field = $_POST['spel1'];
 $spel2_field = $_POST['spel2'];
 $spel3_field = $_POST['spel3'];  
 $spel4_field = $_POST['spel4'];  
 $spel5_field = $_POST['spel5'];  
 $spel6_field = $_POST['spel6'];  
 $spel7_field = $_POST['spel7'];  
 $spel8_field = $_POST['spel8'];  
 $spel9_field = $_POST['spel9'];  
 $spel10_field = $_POST['spel10'];  
 $spel11_field = $_POST['spel11'];  
 $geb1_field = $_POST['geb1'];
 $geb2_field = $_POST['geb2'];
 $geb3_field = $_POST['geb3']; 
 $geb4_field = $_POST['geb4'];
 $geb5_field = $_POST['geb5'];
 $geb6_field = $_POST['geb6'];
 $geb7_field = $_POST['geb7'];
 $geb8_field = $_POST['geb8'];
 $geb9_field = $_POST['geb9'];
 $geb10_field = $_POST['geb10'];
 $geb11_field = $_POST['geb11'];
 $sport_radio = $_POST['sport'];

 $body = "
 Hier de bevestiging van je inschrijving:
 Adres:          $adres_field 
 E-mail Adres:   $email_field 
 Telefoonnummer: $tel_field  
 Sport: $sport_radio
 Aanvoerder:     $spel1_field  Geboortedatum $geb1_field
 Speler 2:       $spel2_field  Geboortedatum $geb2_field
 Speler 3:       $spel3_field  Geboortedatum $geb3_field
 Speler 4:       $spel4_field  Geboortedatum $geb4_field
 Speler 5:       $spel5_field  Geboortedatum $geb5_field
 Speler 6:       $spel6_field  Geboortedatum $geb6_field
 Speler 7:       $spel7_field  Geboortedatum $geb7_field
 Speler 8:       $spel8_field  Geboortedatum $geb8_field
 Speler 9:       $spel9_field  Geboortedatum $geb9_field
 Speler 10:      $spel10_field Geboortedatum $geb10_field
 Speler 11:      $spel11_field Geboortedatum $geb11_field";  
   
 echo "De gegevens zijn verstuurd naar de wedstrijdleiding!";  
 mail($to, $subject, $body); 
 
 } 
 else {  
 echo "Er is iets fout gegaan bij het mailen, probeer het later nog eens!";  
 }  
?>

En de html staat dus op www.koopjeleds.nl/joh.html
 
Ja oke dat is waar, ik heb dat anders opgelost bij mij krijg je na het versturen een andere pagina met een bedankje :)


nee ik krijg geen mailtje

trouwens zou ik mogen vragen waar dit formulier voor is? aangezien je maar 11 man voor hockey in mag vullen en je 16 man mee mag nemen naar een wedstrijd (minimaal 8)
 
Laatst bewerkt:
Probeer dit eens:
PHP:
<?php  
if(isset($_POST['submit'])) {
  // Dit gaat niet werken omdat $email_field nog niet bekend is  
  // $to = "pietur@hotmail.com, $email_field";
  // Dit gaat wel werken :)
 $to = "pietur@hotmail.com, $_POST['email']";
 $subject = "Sport inschrijvingen";  
 $adres_field = $_POST['adres'];  
 $email_field = $_POST['email'];
 $tel_field = $_POST['tel'];    
 $spel1_field = $_POST['spel1'];
 $spel2_field = $_POST['spel2'];
 $spel3_field = $_POST['spel3'];  
 $spel4_field = $_POST['spel4'];  
 $spel5_field = $_POST['spel5'];  
 $spel6_field = $_POST['spel6'];  
 $spel7_field = $_POST['spel7'];  
 $spel8_field = $_POST['spel8'];  
 $spel9_field = $_POST['spel9'];  
 $spel10_field = $_POST['spel10'];  
 $spel11_field = $_POST['spel11'];  
 $geb1_field = $_POST['geb1'];
 $geb2_field = $_POST['geb2'];
 $geb3_field = $_POST['geb3']; 
 $geb4_field = $_POST['geb4'];
 $geb5_field = $_POST['geb5'];
 $geb6_field = $_POST['geb6'];
 $geb7_field = $_POST['geb7'];
 $geb8_field = $_POST['geb8'];
 $geb9_field = $_POST['geb9'];
 $geb10_field = $_POST['geb10'];
 $geb11_field = $_POST['geb11'];
 $sport_radio = $_POST['sport'];

 $body = "
 Hier de bevestiging van je inschrijving:
 Adres:          $adres_field 
 E-mail Adres:   $email_field 
 Telefoonnummer: $tel_field  
 Sport: $sport_radio
 Aanvoerder:     $spel1_field  Geboortedatum $geb1_field
 Speler 2:       $spel2_field  Geboortedatum $geb2_field
 Speler 3:       $spel3_field  Geboortedatum $geb3_field
 Speler 4:       $spel4_field  Geboortedatum $geb4_field
 Speler 5:       $spel5_field  Geboortedatum $geb5_field
 Speler 6:       $spel6_field  Geboortedatum $geb6_field
 Speler 7:       $spel7_field  Geboortedatum $geb7_field
 Speler 8:       $spel8_field  Geboortedatum $geb8_field
 Speler 9:       $spel9_field  Geboortedatum $geb9_field
 Speler 10:      $spel10_field Geboortedatum $geb10_field
 Speler 11:      $spel11_field Geboortedatum $geb11_field";  
 // Even een IF-statement die wat uit gaat voeren wanneer de mail verstuurd is :)
 if(mail($to, $subject, $body)) {
    echo "De gegevens zijn verstuurd naar de wedstrijdleiding!";
 } 
} else {  
   echo "Er is iets fout gegaan bij het mailen, probeer het later nog eens!";  
}  
?>
Ik heb wat commentaar toegevoegd, hopelijk begrijp je het :)
 
Bedankt, ik ga het even uploaden :)

Hmm, het werkt niet... Nu krijg ik namelijk niks, niet de blarg, maar ook niet dat hij is verstuurd... Ik heb alleen jou // verwijderd, en de rest exact hetzelfde gelaten..

Doe ik iets verkeerd?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan