Door
Rob Peres
op 13-02-2012 15:39
gewijzigd op 13-02-2012 16:40
5.310 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!
Gelukkig heb je alleen de relevante code geplaatst ; -)
Beveiliging:
Begin eens met, zoals aangegeven, in je query addslashes te vervangen door mysql_real_escape_string
Controle: if($_POST['Naam'] == '') zou bv kunnen worden
if(!isset($_POST['Naam']) || $_POST['Naam'] == '')
|| = OR
Na de melding dat de gegevens zijn toegevoegd (dit controleer je overigens nergens (or die is geen foutafhandeling)), bouw je phpmailer (/swiftmailer) in.
Op de site van phpmailer staan duidelijke/eenvoudige voorbeelden.
Download wel de benodigde bestanden en plaats ze op de juiste plek!
Moet je nog helemaal op het einde, als je query gelukt is een mail laten versturen met de gegevens erin.
Als je er nog geen kennis van hebt, kan je kijken bij contactformulieren en daar wat aanpassen.
Als je dus daarnaartoe kijkt, laat je het formulier weg, vervang je je POST variablen in de gene wat jij wilt dat naar jouw toegestuurd wordt.
Probeer dit eens, lukt het niet? Vraag dan waar het niet werkt.
Ik heb ook een contactformulier op deze website welke netjes naar mij wordt gemaild, maar hier is geen koppeling naar een database of zo dus ziet er heel anders uit.
Ik weet gewoon niet waar ik moet beginnen en met Swiftmailer kwam ik al helemaal niet verder. Gaat mij gewoon boven mijn pet. Daarom zoek ik iemand die voor mij de aanpassingen kan doen. Hoeft niet voor niets trouwens.
Ik ben even aan het sleutelen geweest en heb eindelijk (door jouw advies) iets werkend gekregen.
Ik heb een form.htm en een formverwerken.php gemaakt maar nu worden de gegevens weer niet in de database geladen!? pffffff
Op jouw vraag:
De mail moet worden verzonden naar [email protected] maar uiteindelijk ook naar alle leden. Dus wil ook graag andere (email)geadresseerden kunnen toevoegen.
Vervang dit ook even in je query:
'".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'])."',
Dit is veiliger! (Zie ook anders: Sql Injection)
[size=xsmall]Toevoeging op 17/03/2012 16:46:11:[/size]
Vervang dit ook nog:
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_ersonen']) )
{
$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[] = 'Je hebt geen bijzonderheden ingevuld';
}
CREATE TABLE IF NOT EXISTS `zoeken` (
`ID` int(5) NOT NULL AUTO_INCREMENT,
`Naam` text NOT NULL,
`Telefoon` text NOT NULL,
`Adres_vertrek` text NOT NULL,
`Vertrekdatum` date NOT NULL,
`Tijd` text NOT NULL,
`Bestemming` text NOT NULL,
`Aantal_personen` text NOT NULL,
`Aantal_koffers` text NOT NULL,
`Huisdier` text,
`Voorkeur_voertuig` text NOT NULL,
`Bijzonderheden` text,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;
@ Rob, ik heb je script verbeterd, meer veilig gemaakt en gemaakt dat er een email wordt verzonden.
Het enigste wat jij moet doen is de e-mailadressen waar het naartoe moet gestuurd worden invullen. Ik heb gemaakt dat er 3 e-mailadressen zijn. Hopelijk is dat genoeg?