goede dag .
ik heb een vraag ik wil weten of het mogelijk is om in een e-mail form door middel van een drop donw box te kiesen naar wie de e-mail gaat . afdeling

ik heb nog niks geprobeerd. om dat ik niet weet hoe ik dat moet doen.

ik denk dat ik iets moet doen met een controle teken
op de ze manier

if $mail_ontv

en dan $mail_ontv ook bij die drop down balk dan leest hij dat e-mail adres wat er gekozen is of is dat te makelijk van mij gedacht.
om het jullie wat makkelijker te maaken hier ook het php script

<?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 = 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 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, onderwerp of bericht 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="last">achternaam:</label><br />
<input type="text" id="last" name="last" value="' . (isset($_POST['last']) ? htmlspecialchars($_POST['last']) : '') . '" /><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="onderwerp">Onderwerp:</label><br />
<input type="text" id="onderwerp" name="onderwerp" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br />

<label for="bericht">Bericht:</label><br />
<textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><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 .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Achternaam: " . htmlspecialchars($_POST['last']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
$inhoud_mail .= "onderwerp: " . htmlspecialchars($_POST['onderwerp']) . "\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']). htmlspecialchars($_POST['last']). ' <' . $_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
// altanatief ( mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))

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

header ("refresh:7; url=contact.php");
echo '<h1>Het contactformulier is verzonden</h1>

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

<p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
}
}
?>

op dit moment zo als jullie kunnen zien word het naar het e-mail adres van mijn keuzen. door middel van die $_mail <-koppeling

al vast bedankt . ps ik heb er zelf niks over kunne vinden op google

al vast bedank. en als dit topic al een keer behandeld is graag daar een verwijzing naar. :)

mvg Roy
Dat kan wel, en vrij makkelijk ook. Voeg dit toe aan je formulier.

Verander natuurlijk de emails en namen naar wat van toepassing is, en vul zoveel opties toe als je nodig hebt (binnen de <select></select>)

<select name="ontvanger">
<option selected value="[email protected]">Algemeen</option>
<option value="[email protected]">Verkoop</option>
</select>


Let wel op dat je een van de opties als selected zet. Zodat als mensen het vergeten te keizen, het toch verzonden kan worden.

En vervang regel 17 door dit.

<?php
$mail_ontv = $_POST['ontvanger'];
?>
Ik vind dit geen goede oplossing wat Chris aandraagt. Iemand hoeft met Firebug of weet ik veel, dan de HTML-source aan te passen, een ander mailadres in te vullen en je hebt een prima spam-machine gecreeerd, profit.

De beste manier is om de mailadres hard-coded in je script vast te leggen, bijv. een switch, waarin je de mailadressen een nummer geeft.
@Aar: Ik had daar niet direct aan gedacht. Maar je volkomen gelijk.
@aar
dus het kan wel maar het is niet verstandig ??
en hoe doe ik dat dan "hard code "

<select name="ontvanger">
   <option selected value="algemeen">Algemeen</option>
   <option value="verkoop">Verkoop</option>
</select>

<?php
$emailadressen = array('algemeen' => '[email protected]',
'verkoop' => '[email protected]');
$mail_ontv = $emailadressen[$_POST['ontvanger']];
?>
@Aar,

Same as SanThe, niet direct aan gedacht. Dan is het idd slimmer om met nummerieken en een switch te werken.


[size=xsmall]Toevoeging op 29/05/2012 10:37:12:[/size]

De optie van SanThe is ook een mooie
ja ziet er mooi ik neem aan dat ik dat in de html form moet verwerken
ik ga het nu ook meten proberen


[size=xsmall]Toevoeging op 29/05/2012 11:16:11:[/size]

exact wat ik bedoel . i bless you all

ik krijg in xamp allen een raaren melding

betekend dat nog iets

beteken dat nog wat dan

Notice: Undefined index: ontvanger in C:\xampp\htdocs\smzvl\contact.php on line 102

Notice: Undefined index: in C:\xampp\htdocs\smzvl\contact.php on line 102

als ik m upload naar de webserver geen meldingen



[size=xsmall]Toevoeging op 29/05/2012 11:18:37:[/size]

betekend dat nog iets of licht dat aan xamp
Eigenlijk moet je regel 17 op regel 79 zetten.
:) ja nu is hij weg
dan heb ik nog een vraag
het gaat over het ontrolen van de dropdown box
het word http://www.phphulp.nl/php/forum/topic/spry-controle-op-select-drop-down-box-probleem-/74299/hier a behandeld
maar ik kom er niet uit

wat ik denk dat ik moet doen is

dit
<?php
$emailadressen = array('Ontwikkeling' => '[email protected]',
'Belegging' => '[email protected]',
'Exploitatie' => '[email protected]',
'Algemeen' => '[email protected]');
$mail_ontv = $emailadressen[$_POST['ontvanger']];

?>
[/code]

gebruiken
en dan een regel moet maken zo als dezen.

melding wil ik ook

<?php
if (!empty($_emptyselectemail))
            echo '<p>geen afdeling gekozen.</p>';
?>


moet ik in regel 38
ook een $_emptyselectemail regel maak doet hij het dan
en het drop down zo doe


<?php
<select name="ontvanger">
	  <option value"//hier dan ook een $_emptyselectemail link of zo ">kies een persoon</option>
   <option selected value="Ontwikkeling">De heer C. Mooij:Ontwikkeling Zorg Vastgoed</option>
      <option value="Belegging">De heer J.B. Been: Belegging Zorg Vastgoed</option>
   <option value="Exploitatie">De heer E. Mulder: Exploitatie en beheer Zorg Vastgoed</option>
   <option value="Algemeen"> Algemeen</option>
</select>
?>


laat maar weten of ik in de buurt zit

ik begin php een beetje door te krijgen
Dat kun je doen met een if statement. Maar zoals je het nu doet is er dus altijd al iets geselecteerd (ontwikkeling in dit geval). Wel slim om daat misschien Algemeen van te maken, om te voorkomen dat meneer Mooij gespamt wordt met mail die niet voor hem is bedoeld ;)

Tevens hoeft je regel hieronder niet
<option value"//hier dan ook een $_emptyselectemail link of zo ">kies een persoon</option>

Als het goed is is nu standaard C. Mooij geselecteerd.

Reageren