Door
Peter Sch
op 10-02-2014 17:41
gewijzigd op 10-02-2014 18:41
2.623 views
Goedemiddag,
Ik heb een script die de gegevens van mijn formulier moet mailen en daarnaast een bevestiging naar de klant moet sturen dat de gegevens ontvangen zijn, ik gebruik hiervoor het volgende script maar krijg het niet werkend. Is er iemand die mij hier mee zou kunnen helpen?
<?php
if (isset($_POST['submit'])){
{
$bericht = '
==========
Soort vervoer '.$_POST['Soort'].'
Naam: '.$_POST['Naam'].'
Adres: '.$_POST['Adres'].'
Postcode: '.$_POST['Postcode'].'
Woonplaats: '.$_POST['Woonplaats'].'
Telefoon: '.$_POST['Telefoon'].'
Email: '.$_POST['Email'].'
Rit naar Schiphol:
Datum vertrek: '.$_POST['Vertrekdatum'].'
Inchecktijd: '.$_POST['inchecktijd'].'
Vertretijd vlucht: '.$_POST['Vertrektijdvlucht'].'
Vluchtnr vertrek: '.$_POST['Vluchtnrvertrek'].'
Bestemming: '.$_POST['Bestemming'].'
Ophaaladres: '.$_POST['ophaalplaats'].','.$_POST['ophaaladres'].'
Rit vanaf Schiphol
Datum: '.$_POST['datumop'].'
Vluchtnummer: '.$_POST['vluchtnummer'].'
Herkomst: '.$_POST['herkomst'].'
Aankomsttijd: '.$_POST['aankomsttijd'].'
GSM: '.$_POST['GSM'].'
Aantal personen '.$_POST['Aantal'].'
Opmerkingen:
'.$_POST['S1'].'
Datum: '.date('d-m-Y / H:i', time()).'
IPAdres: '.$_SERVER['REMOTE_ADDR'].'
==========
'.$_POST['bericht'];
$berichtklant = '
==========
Geachte heer / mevrouw '.$_POST['Naam'].',
Wij hebben uw reservering ontvangen en zullen binnen 2 werkdagen een bevestiging sturen per email.
Met vriendelijke groeten,
Schiphol Taxi Groningen
==========
'.$_POST['berichtklant'];
$headers .= 'From: '.$_POST['Naam'].' <'.$_POST['Email'].'>' . "\r\n";
$headersklant .= 'From: Schiphol Taxi Groningen <[email protected]>' . "\r\n";
@mail('[email protected]', 'Schipholtaxi reservering', $bericht, $headers) or die('Vanwege een fout kan dit bericht niet verstuurd worden.');
@mail('.$_POST['Email'].', 'Reservering ontvangen', $berichtklant, $headerklant) or die ('Vanwege een fout kan dit bericht niet verstuurd worden.');
}
} else {
?>
<?php }
?>
Er gebeurt nu niks, scherm blijft wit en er wordt niks verstuurd. In eerste instantie verstuurde ik alleen de gegevens van het formulier naar een vast mailadres maar ik wil ook een bevestiging naar de klant sturen dat de ontvangst van het formulier bevestigd.
de fout zal onder $berichtklant zitten, daarboven heb ik niets gewijzigd.
Heb je deze twee variabelen wel al ergens gedefinieerd en een waarde gegeven? Anders kan je er natuurlijk niets aan plakken met .=
Verder is 'de fout zal onder $berichtklant zitten, daarboven heb ik niets gewijzigd' een betrekkelijk slecht uitgangspunt voor het debuggen. Zo moeilijk is het niet om te achterhalen waar je script tde mist ingaat door error reporting aan te zetten en, als dat geen foutmeldingen oplevert, gewoon een paar keer een echo te plaatsen. Zie je met een enkele run al waar je script nog wel werkt en waar niet meer. Dit is gewoon de basis van het debuggen die ook elke beginner gewoon moet kunnen bedenken.
Haal op regel 4 de { weg en op regel 66 de } (ctrl+c ctrl+v foutje)
Regel 59 en 60 maak van de .= eens een =
Regel 63 veranderen in @mail($_POST['Email'], 'Reservering ontvangen', $berichtklant, $headerklant) or die ('Vanwege een fout kan dit bericht niet verstuurd worden.');
Tussen regel 69 en 70 zet daar eens tekst bijv. Submit is not set !!, indien deze tekst verschijnt komt de post var submit niet aan bij het php script en dien je je formulier nog even na te kijken.
Ik heb alle raad opgevolgd en het script aangepast.
Helaas volgt er nog altijd een geheel lege pagina na het verzenden van het formulier.
Het script is nu als volgt:
<?php
if (isset($_POST['submit'])){
$bericht = '
==========
Soort vervoer '.$_POST['Soort'].'
@mail('[email protected]', 'Schipholtaxi reservering', $bericht, $headers) or die('Vanwege een fout kan dit bericht niet verstuurd worden.');
@mail('$mailadresklant', 'Reservering ontvangen', $berichtklant, $headerklant) or die ('Vanwege een fout kan dit bericht niet verstuurd worden.');