login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
svm
Moeilijkheidsgraad:
Gemakkelijk
Hits:
11947
Punten:
Aantal punten:
 (4.4)
Aantal stemmen:
10
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (17)
 

Tutorial:

Nieuwsbriefsysteem

1. Wat is en waarom een nieuwsbriefsysteem?
2. Aanmeldingsscript
3. Afmeldingsscript
4. Admin/CP
5. Slot


1. Wat is en waarom een nieuwsbriefsysteem?

Een nieuwsbriefsysteem is een systeem om nieuwsbrieven mee te versturen naar mensen die zich daarvoor aangemeld hebben.
Deze gaan we maken met HTML en PHP in één bestand.
Hij zal gaan bestaan uit:

  • Aanmelden voor nieuwsbrieven
  • Afmelden voor nieuwsbrieven
  • Verzenden van nieuwsbrieven (admin/cp)

Deze tutorial heb ik geschreven na aanleiding van dit topic.
Het is dan ook altijd handig om er iets over te weten, zeker voor de beginners (waar deze tutorial met name voor is).

Ook wordt hierin de functie fopen() gebruikt voor het opslaan van de e-mailadressen.
Als je nog niet met bestandssysteem overweg kunt raad ik je eerst aan deze tutorial eventjes door te lezen.
Alle benodigde uitleg staat in de code zelf.

Noot:
Er kwamen diverse reacties dat bij het uitvoeren van het script een lege pagina geretourneerd wordt: dat klopt, want je dient in de URL de actie mee te geven.
Dit houdt in dat je achter de URL ?admin of ?aanmelden of ?afmelden moet zetten.

 top

 


2. Aanmeldingsscript

Maak een nieuw PHP-bestand aan, waarin we het systeem gaan schrijven (ik noem hem in deze tutorial even nieuws.php).
We gaan, zoals ik al zei, alles in één bestand verwerken.
We beginnen even met het aanmelden:

<?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!";
  }
 }
}
?>
   

Houd er rekening mee dat je de juiste schrijfrechten hebt meegegeven aan de map, zodat het log-bestand voor de e-mailadressen aan kan worden gemaakt.

 top

 


3. Afmeldingsscript

Als je geen nieuwsberichten meer wilt, dan wil je je natuurlijk afmelden.
Dat gaan we met hetvolgende script doen.
Zet dit script na de laatste } van het aanmeldingsscript!:

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.");
   }
  }
 }
}


 top

 


4. Admin/CP

Dan nu hetgene waar wij allen op gewacht hebben.....: het maken van de nieuwsbrief!
Dit doen we in een admin pagina, die uiteraard beveiligd moet zijn.
Deze beveiliging houden we zeer simpel, maar effectief.
Je typt de nieuwsbrief trouwens als HTML.
Als je hem in een WYSIWYG-editor zoals in Outlook (Express) wilt maken, maak dan gebruik van deze tutorial.
Maar hier het admin script, dat je weer na de }van het vorige script moet plaasten:

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: Jouw Naam <jij@domein.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!";
 }
}

 top

 


5. Slot

Ja, ik weet het.
Het was geen echte tutorial, maar eerder een script met wat uitleg.
Maar aangezien het leerzaam is bereken ik het toch maar tot een tutorial.
Je weet nu in elk geval hoe je een nieuwsbriefsysteem kunt maken.
Je kunt hem ook altijd uitbreiden door databases of naam-notatie.

Hier kun je de code nog eens compleet downloaden/vinden: http://plaatscode.be/139873/.

 top

 

Persoonlijk Moch er iets niet duidelijk zijn, dan kun je een nota posten.
Beslis je om laag te stemmen, geef dan a.u.b. ook aan waarom je laag stemt.





« Vorige tutorial : Streaming in PHP Volgende tutorial : Meerdere Talen Systeem »

© 2002-2020 Sitemasters.be - Regels - Laadtijd: 0.019s