Door
Rob Peres
op 13-02-2012 15:39
gewijzigd op 13-02-2012 16:40
5.308 views
Ik heb een formulier op de site. Na invulling worden de gegevens in een database gelade. Tot zover werkt het. Nu wil ik graag dat deze gegevens (dus eigenlijk het formulier) niet alleen in de DB wordt geladen, maar dat de gegevens ook per email woprden verzonden naar één of meerdere adressen.
*ik heb dit niet zelf gemaakt en dit gaat dus ver boven mijn pet.
Als iemand mij op weg kan helpen, graag!
Weet iemand misschien waar en hoe ik in dit voorbeeld een header voor bcc geadresseerden kan toevoegen?
Heb vele voorbeelden en tutorials bekeken maar zien er allemaal anders uit.
Ik wil graag meerdere email adressen gaan toevoegen maar wil niet dat zij van elkaar de adressen kunnen zien.
Kijk eens naar phpmailer/swiftmailer.
Kom je er niet uit: geef dan aan waar je vast loopt.
Ik wil eigenlijk proberen datgene wat Dem heeft aangeleverd verder uit te breiden.
Ik kijk nu naar "de juiste mailheaders". Had daar al naar gezocht.
Tot nu toe:
1
Dem heeft mailfunctie in php toegevoegd maar ik wilde graag dat het hele formulier naar de leden zou worden gemaild en niet alleen een berichtje met een melding.
2
Dus heb ik verwerken.php verwerkt in de pagina zodat nu het hele formulier naar mij wordt verzonden (en uiteraard in de database wordt geladen)
Dit gebeurt in dit stukje (volgens mij)
[code]Bjzonderheden: ".$_POST['Bijzonderheden']."
\n";
$bericht .= "Reageer NU op www.SchipholPool.nl";
mail ("[email protected]", "NIEUWE AANVRAAG SCHIPHOLPOOL.NL !!!", $bericht, "FROM: NoReply");
} else {[\code]
3.
Ik wil hier nu ergens meerdere adressen toevoegen (veel) met een bcc functie zodat ieder lid het formulier krijgt zonder te zien wie de andere leden zijn en dus zonder alle emailadressen op straat te gooien.
De headers die Dem heeft toegevoegd zijn volgens mij nu onnodig omdat de actie komt uit het stukje van verwerken.php.
Waar moet ik nu de headers toevoegen?
Of kan ik beter het bericht naar 1 adres laten versturen en vandaar uit forwarden naar een groep?
3.
Ik wil hier nu ergens meerdere adressen toevoegen (veel) met een bcc functie zodat ieder lid het formulier krijgt zonder te zien wie de andere leden zijn en dus zonder alle emailadressen op straat te gooien.
De headers die Dem heeft toegevoegd zijn volgens mij nu onnodig omdat de actie komt uit het stukje van verwerken.php.
Waar moet ik nu de headers toevoegen?
Of kan ik beter het bericht naar 1 adres laten versturen en vandaar uit forwarden naar een groep?
Obelix en Idefix op 18/03/2012 10:24:04
Kijk eens naar phpmailer/swiftmailer.
Kom je er niet uit: geef dan aan waar je vast loopt.
Ga het wiel nu niet opnieuw proberen uit te vinden. Kost je (blijkt) heel veel tijd.
Alleen controleren met isset() op het bestaan van een waarde in een veld is niet voldoende! Een isset controleert alleen op het bestaan van de variabele (in een array bijvoorbeeld). Wanneer je formulier wordt verzonden bestaan dus alle veldnamen in je $_POST array en is je isset() voorwaarde altijd true.
Om te controleren of iets is ingevuld in het veld gebruik je:
Door middel van de functie 'trim()' worden alle spaties en enters aan het begin en eind van een string verwijderd. Zodoende zal alleen een spatie ook een foutmelding opleveren (= hetgeen wat je wilt neem ik aan).
Pffff, dit gaat me dus allemaal ver boven mijn pet.
Door al het "gesleutel" heb ik nu een pagina die wel werkt maar niet zoals het moet.
Bovendien heb ik nu volgens mij 2 elkaar overlappende php codes op 1 pagina?
Wat werkt?
Wanneer het formulier is ingevuld en men klikt op "verzenden" worden de gegevens in de database geladen en krijgen alle leden keurig een email van alle ingevulde gegevens echter .....
Wanneer er een veld LEEG wordt gelaten, krijgt iedereen toch een email maar worden de gegevens NIET in de database geladen. (dit is ook goed want er mist een veld maar er moet dus ook geen email worden verstuurd!
******************************************************************************
//DIT DOET VOLGENS MIJ NIETS EN IS OVERBODIG?
<?php
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
define('DEBUG_MODE',false); // true == aan, false == uit
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
$sitenaam = "SchipholPool.nl"; // Aanpassen
$onderwerp = "Nieuwe aanvraag!";
********************************************************************************
if(mysql_connect('localhost','***********','*************'))
{
mysql_select_db('**********_klanten') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if(empty($_POST['Naam']) )
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if(empty($_POST['Telefoon']) )
{
$aFouten[] = 'Je hebt geen telefoonnummer ingevuld';
}
if(empty($_POST['Adres_vertrek']) )
{
$aFouten[] = 'Je hebt een ongeldig vertrek adres ingevuld';
}
if(empty($_POST['Vertrekdatum']) )
{
$aFouten[] = 'Je hebt geen correcte datum van vertrek ingevuld';
}
if(empty($_POST['Tijd']) )
{
$aFouten[] = 'Je hebt geen geldige tijd ingevuld';
}
if(empty($_POST['Bestemming']) )
{
$aFouten[] = 'Je hebt geen geldige bestemming ingevuld';
}
if(empty($_POST['Aantal_personen']) )
{
$aFouten[] = 'Je hebt geen aantal passagiers ingevuld';
}
if(empty($_POST['Aantal_koffers']) )
{
$aFouten[] = 'Je hebt geen aantal koffers ingevuld';
}
if(empty($_POST['Huisdier']) )
{
$aFouten[] = 'Je hebt geen huisdier ingevuld';
}
if(empty($_POST['Voorkeur_voertuig']) )
{
$aFouten[] = 'Je hebt geen voertuig ingevuld. Geen voorkeur mag ook';
}
if(empty($_POST['Bijzonderheden']) )
{
$aFouten[] = 'CASH / CREDITCARD / PIN ?';
}
if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br /><br />';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo $aFouten[$Fi].'<br />';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
$sql = "INSERT INTO zoeken (Naam,Telefoon,Adres_vertrek,Vertrekdatum,Tijd,Bestemming,Aantal_personen,Aantal_koffers,Huisdier,Voorkeur_voertuig,Bijzonderheden)
VALUES
(
'".mysql_real_escape_string($_POST['Naam'])."',
'".mysql_real_escape_string($_POST['Telefoon'])."',
'".mysql_real_escape_string($_POST['Adres_vertrek'])."',
'".mysql_real_escape_string($_POST['Vertrekdatum'])."',
'".mysql_real_escape_string($_POST['Tijd'])."',
'".mysql_real_escape_string($_POST['Bestemming'])."',
'".mysql_real_escape_string($_POST['Aantal_personen'])."',
'".mysql_real_escape_string($_POST['Aantal_koffers'])."',
'".mysql_real_escape_string($_POST['Huisdier'])."',
'".mysql_real_escape_string($_POST['Voorkeur_voertuig'])."',
'".mysql_real_escape_string($_POST['Bijzonderheden'])."'
)
";
if (($result = mysql_query($sql)) === false)
{
echo showSQLError($sql,mysql_error(),'Fout bij het invoegen.');
}
***************************************************************************
else
{
$bericht = "Nieuwe aanvraag SchipholPool.nl! ";
$bericht .= " Rob";
^^^DIT BOVENSTAANDE DOET OOK NIETS?^^
*******************************************************************************
if(mail == TRUE)
{
echo 'De gegevens zijn succesvol opgeslagen in de SCHIPHOLPOOL database
<p STYLE="text-align: right;"><span STYLE="color: #5c83c1;"><span STYLE="font-size: large;"><a href="zoeken.php"><span STYLE="color: red;">Nog een VERZOEK opgeven?</span></span><br><strong><br></strong></a> </p>';
}
else
{
echo 'Fout opgetreden tijdens het verzenden.';
echo '<br><input type="button" value="Ga terug" onClick="window.history.back()">';
}
}
}
}
else
{
?>
<form action="" method="POST">
<br><br><br>
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="Naam">NAAM/NAME *</label>
</td>
<td valign="top">
<input type="text" name="Naam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Telefoon">TEL./SMS/Email*</label>
</td>
<td valign="top">
<input type="text" name="Telefoon" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Adres_vertrek">ADDRESS PICK-UP *</label>
</td>
<td valign="top">
<input type="text" name="Adres_vertrek" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Vertrekdatum">DATE/DATUM(JJJ-MM-DD) 2011-08-25 *</label>
</td>
<td valign="top">
<input type="text" name="Vertrekdatum" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Tijd">TIME/TIJD(HH:MM) 12:10 *</label>
</td>
<td valign="top">
<input type="text" name="Tijd" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Bestemming">DROP-OFF/BESTEMMING *</label>
</td>
<td valign="top">
<input type="text" name="Bestemming" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Aantal_personen">PAX/PASSAGIERS(1-8) *</label>
</td>
<td valign="top">
<input type="text" name="Aantal_personen" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Aantal_koffers">LUGGAGE/BAGAGE(1-9 of GEEN/NONE) *</label>
</td>
<td valign="top">
<input type="text" name="Aantal_koffers" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Huisdier">HUISDIER/PET (YES/NO) *</label>
</td>
<td valign="top">
<input type="text" name="Huisdier" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Voorkeur_voertuig">MINI-VAN/STATION/SEDAN *</label>
</td>
<td valign="top">
<input type="text" name="Voorkeur_voertuig" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Bijzonderheden">CASH / CREDITCARD / PIN</label>
</td>
<td valign="top">
<input type="text" name="Bijzonderheden" maxlength="50" size="30">
</td>
</tr>
</tr>
</table>
<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>
<?php
//Als men op de Submit knop heeft gedrukt van het formulier...
if (isset($_POST['verzenden'])) {
if (!isset($_POST['Naam'])) {
$error = "Naam is niet ingevuld<BR />";
} if (!isset($_POST['Adres_vertrek'])) {
$error .= "Vertrekadres is niet ingevuld";
} if (!isset($_POST['Vertrekdatum'])) {
$error .= "Datum is niet ingevuld";
} if (!isset($_POST['Bestemming'])) {
$error .= "Bestemming is niet ingevuld";
} if (!isset($_POST['Aantal_personen'])) {
$error .= "Aantal personen is niet ingevuld";
} if (!isset($_POST['Aantal_koffers'])) {
$error .= "Aantal koffers is niet ingevuld";
} if (!isset($_POST['Huisdier'])) {
$error .= "Huisdier is niet ingevuld";
} if (!isset($_POST['Tijd'])) {
$error .= "Voorkeur_voertuig is niet ingevuld";
} if (!isset($_POST['Tijd'])) {
$error .= "Voorkeur voertuig is niet ingevuld";
}
if (!isset($error)) {
$bericht = "*U kunt niet antwoorden op dit AUTO-bericht*
Naam: ".$_POST['Naam']."
Tel./Email:
Eerst inloggen op www.SchipholPool.nl
Pick-up adres: ".$_POST['Adres_vertrek']."
Datum: ".$_POST['Vertrekdatum']."
Tijd: ".$_POST['Tijd']."
Bestemming: ".$_POST['Bestemming']."
Aantal passagiers: ".$_POST['Aantal_personen']."
Aantal koffers: ".$_POST['Aantal_koffers']."
Huisdier ja/nee: ".$_POST['Huisdier']."
Voorkeur voertuig: ".$_POST['Voorkeur_voertuig']."
Bijzonderheden: ".$_POST['Bijzonderheden']."
\n";
$bericht .= "Geen ritten meer ontvangen?
U KUNT NIET ANTWOORDEN OP DIT AUTO-BERICHT.
Stuur een email met de tekst AFMELDEN naar [email protected].
Uw email adres wordt dan zo spoedig mogelijk verwijderd.";
mail ("*************************.nl",
"NIEUWE RIT! ", $bericht, "FROM: NoReply");
} else {
echo "Gelieve alle formuliervelden netjes in te vullen !<BR /><BR />";
echo "<FONT COLOR=\"#FF0000\">".$error."</FONT>";
}
} else {
echo "U DIENT ALLE VELDEN IN TE VULLEN OM UW AANVRAAG ZICHTBAAR TE MAKEN !";
}
?>