Goedenavond allemaal,

Ik ben sinds kort me meer aan het verdiepen in PHP. Ik weet dat ik nooit een programmeerkoning zal worden, maar ik vind het wel interessant en als designer kom ik er regelmatig mee in aanraking. Voor een vriendin ben ik bezig om een eenvoudige pagina te maken met daarop een "houd me op de hoogte" veld.

Dit formulier met dus maar 1 inputveld moet 2 dingen doen:

1. een mailtje versturen naar de persoon die zich inschrijft (dit heb ik werkend!)
2. een mailtje sturen naar de admin zodat die weet wie zich heeft ingeschreven. Dit laatste krijg ik niet aan de praat.

Hierbij het script:

<?PHP

$email = $_POST["email"];
$to = "[email protected]";
$subject = "Nieuwe registratie voor de nieuwsbrief";
$headers = "From: $email\n";
$message = "De volgende persoon heeft zich ingeschreven voor de nieuwsbrief:\n

E-mail Adres: $email";
$user = "$email";
$usersubject = "inschrijving nieuwsbrief";
$userheaders = "From: [email protected]\n";
$usermessage = "Dank voor je inschrijving op de nieuwsbrief. We houden je op de hoogte.";
mail($to,$subject,$message,$headers);
mail($user,$usersubject,$usermessage,$userheaders);
?>

Kan iemand mij vertellen wat ik verkeerd doe? MIjn dank is groot!
Ja, helemaal netjes dit! Top man. Nogmaals bedankt.
@Frank:

Waar zit nou het wezenlijke verschil met de 1e versie (afgezien dat die wat onduidelijk in elkaar zit)? TS gaf aan dat de ene mail wel aankomt en de andere niet, terwijl ze code-technisch (zo op het 1e gezicht) precies hetzelfde in elkaar zitten.
Letter R en de punt voor = staan erbij.
" = ' geworden.
Je zou ook nog dit kunnen doen:

<?php
$website_from = '[email protected]';
$website_naam = 'mijnwebsite';
$admin = '[email protected]';
$email = $_POST['email'];

$subject = "inschrijving nieuwsbrief";
$message = "Dank voor je inschrijving op de nieuwsbrief. We houden je op de hoogte.";
$headers = 'From: ' . $website_naam . ' <' . $website_from . '>' . "\r\n";
$headers .= 'Reply-To: administrator <' . $admin . '>' . "\r\n";
if(@mail($email,$subject,$message,$headers))
{
$subject = "Nieuwe registratie voor de nieuwsbrief";
$message = "De volgende persoon heeft zich ingeschreven voor de nieuwsbrief:\n\nE-mail Adres: $email";
$headers = 'From: ' . $website_naam . ' <' . $website_from . '>' . "\r\n";
mail($admin, $subject, $message, $headers);
echo 'Bedankt voor je bericht';
}
else
{
echo 'E-mail verzenden is niet gelukt.';
}
?>

Wordt de notificatie e-mail naar de admin alleen verzonden als de inschrijving gelukt is.
@ Ozzie:
Na een nachtje slapen en twee bakkies koffie denk ik dat voornamelijk de mailheaders niet juist waren? Maar zoals je zelf al schreef was de code niet logisch opgebouwd. En dat laatste geeft natuurlijk een prachtige kweekvijver voor raadselachtige fouten. En zoals al bleek is het herstructureren van de code dan tevens de oplossing ongeacht de achterliggende oorzaak.

Toevoeging op 09/10/2015 09:13:56:

@Joni: Waarom die @ voor de mail functie? Ik krijg echt vlekken in mijn nek als ik dat zie :/

Wil je niet weten WAT er fout gaat als er iets fout gaat?
@Frank

Je hebt gelijk :) Ik heb dat nog geautomatiseerd in mijn systeem staan van vroeger haha :P
@wiitigoo, gebruik voro het gemak PHPmailer.
Hiermee kan je gemakkelijk berichten versturen zonder over de headers e.d na te denken.
Ook is het zeer gemakkelijk om meerdere berichten te versturen e.d

Reageren