Beste,

Ik probeer even mijn vraag weer terug te halen aangezien ik de verkeerde code heb gebruike n mijn vraag verwijderd heb.

Onderstaand formulier is voor het bestellen van hoodies of voor stickers.
Alleen, ik zou graag willen dat er een bevestiging wordt verstuurd naar de besteller.

Hoe moet ik dat doen?

<style type="text/css">
.letop {
	color: #F00;
}
</style>
  <h3>M.M.B. Hoodie/ Vest</h3> 
  
  Beschikbaar in de maten:      S  M  L  XL  XXL of XXXL</br>
  Prijs:                                          € 39,95. </br>
  Af te halen in Almere of;</br>
  Verzonden voor:                      € 6,95 extra (PostNL)</br>
  
  <strong class="letop">Let op!</strong> Vesten worden met enige regelmaat in 1 partij besteld en opgehaald. </br>
  
  Hierna kunnen ze worden afgehaald in Almere of worden verstuurd met PostNL</br>
  
  Volgende Zending is Besteld! </br></br>
  
  <img src="http://meetmybike.nl/wp-content/uploads/2015/06/Website-Hoodie-Foto.png" width="1024" height="726"/></br></br>
<?php
//session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
 
/*******************************
*        CONTACT FORMULIER                     *
*        contactformulier.php             *
*                                                             *
*        Author: Miranda Verburg         *
*        Datum: 10 september 2010     *
*                                                             *
*        Pas het e-mail adres aan     *
*        bij $mail_ontv en upload   *
*        het naar je webserver..         *
********************************/

// E-mailadres van de ontvanger
$mail_ontv = '[email protected]'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // naam controle
    if (empty($_POST['naam']))
        $naam_fout = 1;
    // e-mail controle
    if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
            $email_fout = 1;
    // antiflood controle
    if (!empty($_SESSION['antiflood']))
    {
        $seconde = 50; // 50 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
        $tijd = time() - $_SESSION['antiflood'];
        if($tijd < $seconde)
            $antiflood = 1;
    }
}

// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || empty($_POST['naam_hoodie']) || empty($_POST['maat']) || !empty($email_fout) || empty($_POST['telefoonnummer']) || empty($_POST['adres']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if (!empty($naam_fout))
            echo '<p>Uw naam is niet ingevuld.</p>';
        elseif (!empty($email_fout))
            echo '<p>Uw e-mailadres is niet juist.</p>';
        elseif (!empty($antiflood))
            echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
        else
            echo '<p>U bent uw naam, e-mailadres, telefoonnummer, adres, maat of naam voor de hoodie vergeten in te vullen.</p>';
    }
        
  // HTML e-mail formlier
  


  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
  <p>
  
      <label for="naam">Naam:</label><br />
      <input type="text" id="naam" name="naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br />
      
      <label for="mail">E-mailadres:</label><br />
      <input type="text" id="mail" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br />
      
      <label for="telefoonnummer">Telefoonnummer:</label><br />
      <input type="text" id="telefoonnummer" name="telefoonnummer" value="' . (isset($_POST['telefoonnummer']) ? htmlspecialchars($_POST['telefoonnummer']) : '') . '" /><br />
      
      <label for="adres">Adres:</label><br />
      <input type="text" id="adres" name="adres" value="' . (isset($_POST['adres']) ? htmlspecialchars($_POST['adres']) : '') . '"/><br />
      
      <label for="maat">Maat: (XXL XL L M S) </label><br />
      <input type="text" id="maat" name="maat" value="' . (isset($_POST['maat']) ? htmlspecialchars($_POST['maat']) : '') . '"/><br />
	  
	  <label for="naam_hoodie">Naam voor op de Hoodie. (voorletter(s) en volledige achternaam)</label><br />
	  <input type="text" id="naam_hoodie" name="naam_hoodie" value="' . (isset($_POST['naam_hoodie']) ? htmlspecialchars($_POST['naam_hoodie']) : '') . '"/><br /></br>
      
      <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 .= "BAM!!! " . htmlspecialchars($_POST['naam']) ." wilt een Hoodie bestellen! \n" /*. $_SERVER['HTTP_HOST'] . ""*/;
  $inhoud_mail .= "===================================================\n\n";
  
  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
  $inhoud_mail .= "Telefoonnummer: " . htmlspecialchars($_POST['telefoonnummer']) . "\n";
  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
  $inhoud_mail .= "Maat: " . htmlspecialchars($_POST['maat']) . "\n";
  $inhoud_mail .= "Naam voor de hoodie: " . htmlspecialchars($_POST['naam_hoodie']) . "\n\n";
    
  $inhoud_mail .= "Verstuurd op " . $datum . " \n\n";
    
  $inhoud_mail .= "===================================================\n\n";
  
  // -------------------- via het IP adres " . $_SERVER['REMOTE_ADDR'] . "
  // 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 = 'Bcc: ' . 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
  
  if (mail($mail_ontv, 'Bestelling Hoodie', $inhoud_mail, $headers))
{
      // zorg ervoor dat dezelfde persoon niet kan spammen
      $_SESSION['antiflood'] = time();
      
      echo '<h1>Je bestelling is verzonden</h1>
      
      <p>Bedankt voor het bestellen van je Hoodie!! We zullen zo spoedig mogelijk contact met je opnemen.</p>';
  }
  else
  {
      echo '<h1>Helaas, je bestelling is niet verzonden</h1>
      
      <p><b>Onze excuses.</b> Je bestelling kon om technische redenen niet verzonden worden.</p>';
  }
}
?>

Ik heb je code tussen code-tags gezet. Verder weet ik niet of je echt HTML voor je session_start(); hebt staan, want dat mag namelijk niet in PHP.

Verder heb je in $_POST['adres'], $_POST['maat'] en $_POST['naam_hoodie'] de waardes zitten die ingevuld zijn m.b.t. de bestelling. Deze kan je nogmaals tonen op het moment zodra de bestelling gelukt is, en de mail verstuurd is.

Je code beter structureren is hier de juiste weg. Zoals aar al enigszins aangeeft begin je met HTML spugen terwijl je dat als laatste zou moeten doen. Het genereren van een HTML-email is weer een heel andere taak dan het genereren, valideren en verwerken van een contract formulier. Dat zou dus in een aparte functie en in een apart bestand gezet kunnen worden.
Beste Aar,

Dank je wel voor het aanpassen. Ik kon de code tag niet vinden als knopje.
Is een en ander gewijzigd sinds mn laatste bezoek haha.

Dit is was ik nu binnen krijg als iemand wat besteld:

===================================================
BAM!!! captain wilt een Hoodie bestellen!
===================================================

Naam: captain
E-mail adres: [email protected]
Telefoonnummer: 0612345678
Adres: blalaan 69
Maat: s
Naam voor de hoodie: Boef!

Verstuurd op 26/05/2015 15:10:17

===================================================

Maar hoe krijg ik daar naar de klant toe iets als:

Beste, NAAM

Dank je wel voor je bestelling, controleer onderstaande gegevens:

Naam: captain
E-mail adres: [email protected]
Telefoonnummer: 0612345678
Adres: blalaan 69
Maat: s
Naam voor de hoodie: Boef!

Kloppen deze niet neem dan contact op met: [email protected]

Zodra de bestelling geplaatst wordt krijg je een bericht met de betalingen.

Met vriendelijke groet,
BEHEERDERSNAAM

Dus eigenlijk moet er NOG een email verstuurd worden....
En ik ben bang dat ik daar net te weinig ervaring voor heb.

Groetjes,
Steven

[size=xsmall]Toevoeging op 15/06/2015 17:53:21:[/size]

Frank Nietbelangrijk op 15/06/2015 17:47:54

Je code beter structureren is hier de juiste weg. Zoals aar al enigszins aangeeft begin je met HTML spugen terwijl je dat als laatste zou moeten doen. Het genereren van een HTML-email is weer een heel andere taak dan het genereren, valideren en verwerken van een contract formulier. Dat zou dus in een aparte functie en in een apart bestand gezet kunnen worden.


Hallo Frank,

Hoe ik de code beter kan structureren zou ik niet weten, vondt deze op internet en vondt hem overzichtelijk.
Met betrekking tot dat HTML. Het hoeft geen HTML mail te worden.
En de PHP code moet dus BOVEN de verdere opbouw komen van de pagina?
Want de tekst die je bovenaan ziet staan, die kreeg ik niet verwerkt in de code.
Misschien ook absoluut niet de bedoeling, maar ben er een lange tijd uit geweest.

Mocht het helpen, en het mag Hier staat de site
je wilt die bevestiging dus mailen?
Dan kan je de mail-procedure twee keer na elkaar uitvoeren, of nog simpeler, de mail als CC versturen.
Eigenlijk wel, alleen dan aangepast (als dat kan).
Dus CC is niet echt netjes als je in je mailbox als klant krijgt: BAM!! Naam wilt een hoodie bestellen.

Maar ik ga het er denk ik niet uithalen hoe ik de mail procedure nog een keer kan uitvoeren... Met aangepast tekst.
Steven T op 15/06/2015 18:29:16

Dus CC is niet echt netjes als je in je mailbox als klant krijgt: BAM!! Naam wilt een hoodie bestellen.

Omdraaien? Stuur een nette bevestiging naar de klant, stuur als BCC (nog beter zelfs) de bevestiging naar jouw toe.
Pfoe, de lettertjes gaan al draaien hahaha.
Ik ga wel even kijken hoe ik:

1 Een nette bevestiging naar de klant krijg
2 Een grappige bevestiging naar mijzelf krijg
3 Hoe een BCC werkt.

Ik ga wel even vogelen..... #ohdear....

Groet,
Steven
Een nette bevestiging is een kwestie van de tekst aanpassen ;-)
Als je iets CC/BCC stuurt kan deze tekst nooit afwijkend zijn, of je moet twee mailprocedures achterelkaar uitvoeren.

Op deze pagina, http://php.net/manual/en/function.mail.php kan je in Example #4 zien hoe je BCC en CC's kan mailen.
Ja dat klopt haha.
Maar heb je ook een voorbeeld waar de mailprocedure 2x wordt uitgevoerd?
Ik heb nu de BCC erin gezet bij mij. Maar dan mailt hij niet het opgegeven mailadress maar met een hele andere.

Dit is nu mijn code:

<style type="text/css">
.letop {
	color: #F00;
}
</style>
  <h3>M.M.B. Hoodie/ Vest</h3> 
  
  Beschikbaar in de maten:      S  M  L  XL  XXL of XXXL</br>
  Prijs:                                          € 39,95. </br>
  Af te halen in Almere of;</br>
  Verzonden voor:                      € 6,95 extra (PostNL)</br>
  
  <strong class="letop">Let op!</strong> Vesten worden met enige regelmaat in 1 partij besteld en opgehaald. </br>
  
  Hierna kunnen ze worden afgehaald in Almere of worden verstuurd met PostNL</br>
  
  Volgende Zending is Besteld! </br></br>
  
  <img src="http://meetmybike.nl/wp-content/uploads/2015/06/Website-Hoodie-Foto.png" width="1024" height="726"/></br></br>
<?php
//session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
 
/*******************************
*        CONTACT FORMULIER                     *
*        contactformulier.php             *
*                                                             *
*        Author: Miranda Verburg         *
*        Datum: 10 september 2010     *
*                                                             *
*        Pas het e-mail adres aan     *
*        bij $mail_ontv en upload   *
*        het naar je webserver..         *
********************************/

// E-mailadres van de ontvanger
$mail_ontv = '[email protected], [email protected]'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // naam controle
    if (empty($_POST['naam']))
        $naam_fout = 1;
    // e-mail controle
    if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
            $email_fout = 1;
    // antiflood controle
    if (!empty($_SESSION['antiflood']))
    {
        $seconde = 50; // 50 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
        $tijd = time() - $_SESSION['antiflood'];
        if($tijd < $seconde)
            $antiflood = 1;
    }
}

// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || empty($_POST['naam_hoodie']) || empty($_POST['maat']) || !empty($email_fout) || empty($_POST['telefoonnummer']) || empty($_POST['adres']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if (!empty($naam_fout))
            echo '<p>Uw naam is niet ingevuld.</p>';
        elseif (!empty($email_fout))
            echo '<p>Uw e-mailadres is niet juist.</p>';
        elseif (!empty($antiflood))
            echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
        else
            echo '<p>U bent uw naam, e-mailadres, telefoonnummer, adres, maat of naam voor de hoodie vergeten in te vullen.</p>';
    }
        
  // HTML e-mail formlier
  


  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
  <p>
  
      <label for="naam">Naam:</label><br />
      <input type="text" id="naam" name="naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br />
      
      <label for="mail">E-mailadres:</label><br />
      <input type="text" id="mail" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br />
      
      <label for="telefoonnummer">Telefoonnummer:</label><br />
      <input type="text" id="telefoonnummer" name="telefoonnummer" value="' . (isset($_POST['telefoonnummer']) ? htmlspecialchars($_POST['telefoonnummer']) : '') . '" /><br />
      
      <label for="adres">Adres:</label><br />
      <input type="text" id="adres" name="adres" value="' . (isset($_POST['adres']) ? htmlspecialchars($_POST['adres']) : '') . '"/><br />
      
      <label for="maat">Maat: (XXL XL L M S) </label><br />
      <input type="text" id="maat" name="maat" value="' . (isset($_POST['maat']) ? htmlspecialchars($_POST['maat']) : '') . '"/><br />
	  
	  <label for="naam_hoodie">Naam voor op de Hoodie. (voorletter(s) en volledige achternaam)</label><br />
	  <input type="text" id="naam_hoodie" name="naam_hoodie" value="' . (isset($_POST['naam_hoodie']) ? htmlspecialchars($_POST['naam_hoodie']) : '') . '"/><br /></br>
      
      <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 .= "BAM!!! " . htmlspecialchars($_POST['naam']) ." wilt een Hoodie bestellen! \n" /*. $_SERVER['HTTP_HOST'] . ""*/;
  $inhoud_mail .= "===================================================\n\n";
  
  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
  $inhoud_mail .= "Telefoonnummer: " . htmlspecialchars($_POST['telefoonnummer']) . "\n";
  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
  $inhoud_mail .= "Maat: " . htmlspecialchars($_POST['maat']) . "\n";
  $inhoud_mail .= "Naam voor de hoodie: " . htmlspecialchars($_POST['naam_hoodie']) . "\n\n";
    
  $inhoud_mail .= "Verstuurd op " . $datum . " \n\n";
    
  $inhoud_mail .= "===================================================\n\n";
  
  // -------------------- via het IP adres " . $_SERVER['REMOTE_ADDR'] . "
  // 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 = 'Bcc: ' . 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
  
  if (mail($mail_ontv, 'Bestelling Hoodie', $inhoud_mail, $headers))
{
      // zorg ervoor dat dezelfde persoon niet kan spammen
      $_SESSION['antiflood'] = time();
      
      echo '<h1>Je bestelling is verzonden</h1>
      
      <p>Bedankt voor het bestellen van je Hoodie!! We zullen zo spoedig mogelijk contact met je opnemen.</p>';
  }
  else
  {
      echo '<h1>Helaas, je bestelling is niet verzonden</h1>
      
      <p><b>Onze excuses.</b> Je bestelling kon om technische redenen niet verzonden worden.</p>';
  }
}
?>



En is het ook mogelijk om een hele nieuwe pagina te openen nadat je op verzenden hebt gedrukt?
Regel 140 t/m 154 stuurt de mail weg. Let ook op de headers die ervoor staan....

Ver kan je met deze code een redirect uitvoeren.

<?php
header('location:bevestiging.php');
?>

Reageren