Hallo allemaal,

Ik heb een prima werkend formulier maar nu wil ik graag dat ik een extra ontvanger kan toevoegen.

Dit heb ik nu:
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]';

Hoe kan ik een tweede en eventueel derde ontvanger toevoegen?

Alvast bedankt,

Sjaan
Is het een (Blind) Carbon Copy (Ook (B)CC genoemd), of elk een persoonlijke mail?
Aangenomen dat je de mail() functie gebruikt voor het versturen van het e-mailbericht, uiteraard.

Wanneer je een library zoals PHPMailer gebruikt voor het versturen van e-mail ziet het toevoegen van meerdere ontvangers er mogelijk anders uit.
Ach jongens ik ben een oude vrouw die het formulier heeft gemaakt voor een stichting. Beperkte ervaring met php. Het formulier dat ik gebruik heb ik op deze site gevonden en was daar erg blij mee. Het werkt ook prima. Het enig wat ik graag wil is dat er meerdere emailontvangers kunnen worden ingevoerd. Dit is de code van het formulier:


<?php
// E-mailadres van de ontvanger
$mail_ontv = '[email protected], [email protected], [email protected]'; 

// 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 = 20; // 20 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($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if (!empty($naam_fout))
            echo '<p>Uw heeft uw naam 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, onderwerp of bericht vergeten in te vullen.</p>';
    }
        
  // HTML e-mail formulier
  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
  <p>
  
<table>
<tr>  <td width="20%">&nbsp </td>
	 <td><label for="naam">Naam:</label></td>
      <td><input type="text" id="naam" name="naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br /></td>
</tr>
<tr>     
	 <td width="20%">&nbsp</td>
     <td> <label for="mail">E-mailadres:</label></td>
     <td><input type="text" id="mail" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br /></td>
</tr>
      <td width="20%">&nbsp</td>
      <td> <label for="onderwerp">Onderwerp:</label></td>
      <td><input type="text" id="onderwerp" name="onderwerp" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br /></td>
 </tr>     

<tr>      
	  <td width="20%">&nbsp</td>
	  <td><label for="bericht">Bericht:</label></td>
      <td><textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br /></td>
</tr>
      
<tr>	  
	  <td width="20%">&nbsp</td>
	  <td>&nbsp</td>
      <td><input type="submit" name="submit" value=" Versturen " /></td>
</tr>	  
</table>

  </p>';
?>

Ik zie geen mailfunctie in dit script. Laat de rest eens zien...
Twee adressen ingevuld bij deze regel :
 $mail_ontv = '[email protected]'; // <<<----- voer jouw e-mailadres hier in!

Bericht komt bij beiden aan.
Ik heb de code gewijzigd in

$mail_ontv = '[email protected]', '[email protected]', '[email protected]';

werkte niet

Toen in:

$mail_ontv = '[email protected]'; '[email protected]'; '[email protected]';

Werkt ook niet alleen de eerste emailontvanger krijgt het bericht. Ik heb echt geen idee wat ik verkeerd doe.....

Sjaan


[size=xsmall]Toevoeging op 15/11/2020 09:05:45:[/size]

Arien:

Dit is de hele code

<?php
session_start();
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Contact</title>
<link href="../css/stijlblad.css" REL="stylesheet" TYPE="text/css">
<link href="../css/tabel.css" REL="stylesheet" TYPE="text/css">
</head>
<body>
<table width="95%" align="center" border="0">
<tr>
<td colspan="2" scope="col"><p>U kunt het onderstaande formulier gebruiken om contact met ons op te nemen.
Ook kan het worden gebruikt als bestelformulier. Gedurende de Corona-crisis kunnen onze boeken alleen op afspraak worden opgehaald. </p>
<p>Wilt u boeken bestellen uit de lijst vul dan in het berichtdeel het nummer(s) van het boek en de titel(s) in.
Bijvoorbeeld: </p>
<p>&nbsp;</p></td>
<td width="36%" rowspan="3" scope="col"><img src="../images/pandor klein.png"></td></tr>
<tr>
<td colspan="2"><div align="left">
<blockquote>
<blockquote>
<strong>2 Rotterdam met een knipoog<br><br>
23 Als de dag van gisteren</strong>
</blockquote>
</blockquote>
</div></td>
</tr>
<tr>
<td width="80%" colspan="2" scope="col"><p></p><p>Na ontvangst van uw bericht nemen wij zo spoedig mogelijk contact met u op. </p>
</td>
</tr>
</table>
<?php>
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]'; '[email protected]'; '[email protected]';

// 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 = 20; // 20 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($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo '<p>Uw heeft uw naam 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, onderwerp of bericht vergeten in te vullen.</p>';
}

// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>

<table>
<tr> <td width="20%">&nbsp </td>
<td><label for="naam">Naam:</label></td>
<td><input type="text" id="naam" name="naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br /></td>
</tr>
<tr>
<td width="20%">&nbsp</td>
<td> <label for="mail">E-mailadres:</label></td>
<td><input type="text" id="mail" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br /></td>
</tr>
<td width="20%">&nbsp</td>
<td> <label for="onderwerp">Onderwerp:</label></td>
<td><input type="text" id="onderwerp" name="onderwerp" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br /></td>
</tr>

<tr>
<td width="20%">&nbsp</td>
<td><label for="bericht">Bericht:</label></td>
<td><textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br /></td>
</tr>

<tr>
<td width="20%">&nbsp</td>
<td>&nbsp</td>
<td><input type="submit" name="submit" value=" Versturen " /></td>
</tr>
</table>

</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i:s');

$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Inhoud: " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\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


$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

if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();

echo '<h3>Het formulier is verzonden</h3>

<p>Bedankt voor het invullen van het formulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
}
else
{
echo '<h3>Het formulier is niet verzonden</h3>

<p><b>Onze excuses.</b> Het formulier kon niet verzonden worden.</p>';
}
}
?>
</body>
</html>
Zet het script even tussen [code] en [/code], zodat het een netjes codeblok wordt.

Verder zet je er een puntkomma tussen in plaats van een komma. Door die puntkomma denkt PHP dat dat het einde van de tekst-string is.
Hier een praktijkvoorbeeld wat er fout gaat: https://3v4l.org/K0r8Q

Dus gebruik komma's tussen je e-mailadressen. Het eerste moet gewoon werken, of de hosting blokkeert dat mogelijk. In dat geval moet je de mailfunctie meerdere keren apart uitvoeren.

Reageren