Hallo iedereen,
ik heb op het internet een eenvoudig scriptje gevonden om in te tekenen op nieuwsbrieven, uit te schrijven en te versturen. Bij dat laatste krijg ik als admin de melding dat de nieuwsbrief verstuurd werd, maar niemand ontvangt iets. Iemand een idee wat ik over het hoofd zie? Alvast bedankt!
<?php
$file = "nieuws.log"; //de naam van het bestand waar de e-mailadressen inkomen
if(isset($_GET['aanmelden'])){
if(!isset($_POST['submit'])){
?>
<form action="" method="post">
Voer uw e-mailadres in waarop u de nieuwsbrief wilt ontvangen:<br>
<input type="text" name="mailadres"><br><br>
<input type="submit" name="submit" value="Aanmelden">
</form>
<?php
}else{
//eerst even controleren of alles correct ingevult is
if(empty($_POST['mailadres']) OR !strpos($_POST['mailadres'], "@") OR !strpos($_POST['mailadres'], ".")){
exit("U hebt een ongeldig e-mailadres opgegeven!");
}else{
//als er niks mis mee is in een flatfile plaatsen
$fp = fopen($file, 'a');
fwrite($fp, $_POST['mailadres']."; "); //we zetten naast het mailadres een ; als scheidingsteken
fclose($fp);
echo "U bent met succes aangemeld!";
}
}
}
elseif(isset($_GET['afmelden'])){
if(!isset($_POST['mailadres'])){
?>
<form action="" method="post">
Voer uw e-mailadres in waarop u zich wilt afmelden:<br>
<input type="text" name="mailadres"><br><br>
<input type="submit" name="submit" value="Aanmelden">
</form>
<?php
}else{
// weer controleren
if(empty($_POST['mailadres']) OR !strpos($_POST['mailadres'], "@") OR !strpos($_POST['mailadres'], ".")){
exit("U hebt een ongeldig e-mailadres opgegeven!");
}else{
$inhoud = file_get_contents($file); // opvragen van de emailadressen
if(strpos($inhoud, $_POST['mailadres'])){
$inhoud = str_replace($_POST['mailadres'].";", "", $inhoud); //adres met ; verwijderen
$fp = fopen($file, 'w'); // $file leeg openen voor schrijven
fwrite($fp, $inhoud); //andere adressen terug plaatsen
fclose($fp);
echo "U bent afgemeld!";
}else{
exit("Het opgegeven e-mailadres is niet aangemeld in ons systeem.");
}
}
}
}
elseif(isset($_GET['admin'])){
$w8w = "qwerty"; //het wachtwoord om in te loggen
//ter beveiliging een loginformpje
if(!isset($_POST['submit']) OR (isset($_POST['wachtw']) && $w8w != $_POST['wachtw'])){
?>
<form action="" method='post'>
Voer het wachtwoord in:<br>
<input type='text' name='wachtw'><br><br>
<input type='submit' value='Log In' name='submit'>
</form>
<?php
}elseif(isset($_POST['submit']) && isset($_POST['wachtw']) && $w8w == $_POST['wachtw']){
?>
Welkom admin.<br>
Hieronder kunt u een nieuwe nieuwsbrief verzenden.<br>
Deze maakt u in HTML, maar u hoeft geen <br> te gebruiken: dit wordt automatisch gedaan.<br><br>
<form action="" method='post'>
Onderwerp: <input type='text' name='onderwerp'><br><br>
Bericht:<br>
<textarea cols='50' rows='10' name='mail'></textarea><br><br>
<input type='submit' name='submit' value='Verzend'>
</form>
<?php
// het verzenden
}elseif(isset($_POST['onderwerp'])){
/* we hebben een bestand volgepropt met emailadressen
deze emailadressen moeten dus van elkaar gescheiden worden
en elk moet dezelfde mail ontvangen
dit gaan we doen met explode() en een for-loop
ook gaan we headers gebruiken, deze zie je hieronder
*/
// HTML gebruiken
$headers = "MIME-Version: 1.0 ";
$headers .= "Content-type: text/html; charset=iso-8859-1 ";
// hieronder het adres waar het vandaan lijkt te komen
$headers .= "From: Team XXXXXX <info@mijn gewijzigd emailadres.be> ";
$adressen = file_get_contents($file);
$adressen = explode(";", $adressen);
for($i=0;isset($adressen[$i]);$i++){
mail($adressen[$i], stripslashes($_POST['onderwerp']), nl2br($_POST['mail']), $headers); //het mailen
}
echo "De nieuwsbrief is verstuurd!";
}
}
?>
2.042 views