Ga naar inhoud


Inschrijven voor nieuwsbrief op je site.


Satfreaked

Aanbevolen berichten


Via een formulier ism met een database

 

Ik heb vlug wat in elkaar geschoten met simpele controles, een beetje opmaak maar niet geheel volgens de html regels, maar goed het werkt

 

Maak in de database een tabel 'newsletter' aan

 

Code:
 CREATE TABLE `newsletter` (  `id` int(10) unsigned NOT NULL auto_increment,  `naam` varchar(200) NOT NULL default '',  PRIMARY KEY  (`id`)) ENGINE=MyISAM ; 

 

Er zijn volgende controles op het emailadres

-invullen

-er moet uiteraard een @ instaan

-minimum 2 tekens voor de @

-domein moet bestaan

-Als het emailadres reeds ingeschreven is wordt het niet in de database gezet.

 

 

 

Plak onderstaaande code in een kladblok en sla op als newsletter.php

 

Vul in de function verbinden de database gegevens in vb bij $gebruiker = "gebruikersnaam";

 

Succes

 

Code:
 <?phpsession_start();function verbinden(){$host = "localhost";$gebruiker = ""; // vul tussen de quotes database gebruikersnaam in$ww_db = ""; // vul tussen de quotes database wachtwoord in$database = ""; // vul tussen de quotes database naam in$link = mysql_connect("$host", "$gebruiker", "$ww_db");mysql_select_db ("$database");}if (isset ($_POST['Submit'])){	unset ($fout);	extract ($_POST);	verbinden();	$_SESSION['nieuwsbrief_naam'] = $naam;	$_SESSION['nieuwsbrief_email'] = $email;	$zoeken = strpos ($email, "@");	$pos_at = strrchr($email, "@");	$vind_domein = substr($pos_at, 1);	$domein = "www." . $vind_domein;	$controle = gethostbyname($domein);$query = "SELECT email FROM newsletter";$sql = mysql_query ($query) or die (mysql_error());while ($gegevens = mysql_fetch_array ($sql)){    $controle_email[] = $gegevens['email'];  }$patroon = "^([a-zA-Z0-9][a-zA-Z0-9\\._-]{0,254}[a-zA-Z0-9])@([a-zA-Z0-9][a-zA-Z0-9\\._-]{0,253}[a-zA-Z0-9])\\.([A-Za-z]{2,10})$";if (!ereg($patroon, $email)){	$fout .= "<font color=red><strong>* Het emailformaat is niet correct.</strong></font>";}elseif ($controle == $domein){  $fout .= "<font color=red><strong>* Het domein bestaat niet.</strong></font>";    }elseif (($keuze == "UIT geschreven") && (!in_array($email, $controle_email))){  $fout .= "<font color=red><strong>* Het opgegeven email adres is niet ingeschreven op onze nieuwsbrief.</strong></font>";      }elseif (($keuze == "IN geschreven") && (in_array($email, $controle_email))){unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']);$fout .= "<font color=red><strong>* Het emailadres is reeds ingeschreven.</strong></font>";  }else{  if (($keuze == "UIT geschreven") && (in_array($email, $controle_email))){      $query= "DELETE FROM newsletter WHERE email= '$email' ";      $results = mysql_query($query) or die (mysql_error());      $fout .= "<font color=red><strong>* Het emailadres werd verwijderd uit onze database.</strong></font>";      unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']);    }   else{$query= ("INSERT INTO `newsletter`            (`email`)             VALUES             ('$email')");             $results = mysql_query($query) or die (mysql_error());	     unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']);	     $fout .= "<font color=red><strong>* Het emailadres werd geregistreerd.</strong></font>";          }    }}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head><body><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">  <tr>    <td>    <h3>Nieuwsbrief</h3>  <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" name="Nieuwsbrief" id="Nieuwsbrief">            <table width="609" border="0" cellspacing="5">              <tr>                <td colspan="3"><?php if (isset ($fout)){ print $fout; }?></td>              </tr>              <tr>                <td width="148"><div align="right">* Email address </div></td>      <td colspan="2"><label>                  <input name="email" type="text" id="email" size="30"          value="<?php	               if (isset($_SESSION['nieuwsbrief_email'])){	               print $_SESSION['nieuwsbrief_email'];	               } ?>" />                </label></td>              </tr>              <tr>                <td><div align="right">* Ik wil</div></td>                <td colspan="2">                  <select name="keuze" id="keuze">                    <option value="IN geschreven">inschrijven</option>                    <option value="UIT geschreven">uitschrijven</option>                </select>                op de nieuwsbrief</td>              </tr>              <tr>                <td>&nbsp;</td>                <td colspan="2">&nbsp;</td>              </tr>              <tr>                <td height="37">&nbsp;</td>                <td width="116"><input name="Submit" type="Submit" value="Send" /></td>                <td width="319"><input name="reset" type="reset" value="Reset" id="reset" /></td>              </tr>            </table>      </form>        </td>  </tr></table></body></html> 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Nou Puch, echt tof man.

Ik ga het vanavond proberen.

 

Nu weet ik niet of ik dit goed doe, maar stel gelijk me volgende vraag hier maar.

 

Bij Google zie ik als ik Fenbo intik de site komen maar staat als Kopje { start } en dat was eerst { Home } maar wil graag { Fenbo Eco Cleaning products } er hebben staan.

Hoe doe ik dat.

Satfreaked.

Link naar reactie
Delen op andere sites

Je moet de titel van je pagina wijzigen.

 

Op de index pagina staat in het head gedeelte van je html code de <title></title> tag

Nu zal daar "start" tussen staan

 

Verander die "start" in bijvoorbeeld "Fenbo - Eco Cleaning products"

Dit doe doe je met al je pagina's maar dan telkens met een andere titel

 

Fenbo - Horeca reinigers

Fenbo - Etol vaatwasserproducten

Fenbo - ABC systeem

enz..

 

Even geduld tot de google bot nog eens langs je site komt en dan zal het aangepast zijn.

 

 

btw

 

Ik heb het nog een extra pagina aangemaakt voor het uitlezen van de ingeschreven email adressen.

Zo kan je zien welke adressen er ingeschreven zijn.

 

Ook een config file aangemaakt.

Vul dus de database gegevens in op de config.php pagina.

 

Alles zit in de bijlage van deze post

mocht je nog vragen hebben pm me maar.

 

Succes

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Citaat:
Via een formulier ism met een database
Code:
  $vind_domein = substr($pos_at, 1);	$domein = "www." . $vind_domein;	$controle = gethostbyname($domein);

Wat een akelige controle <img src="/forums/images/graemlins/smile.gif" alt="" /> Het is handiger om te controleren of het domein MX-records heeft. Die zijn namelijk wel 'verplicht'. Ik heb bijvoorbeeld een paar e-mail-only (sub)domeinen zonder A-records, maar wel met MX-records uiteraard.

Maargoed zorg ook nog VOORDAT je mensen activeert als actief nieuwsbrieflezer ze eerst nog een email krijgen met een link ofzo om hun emailadres te bevestigen. Zo voorkom je lolbroeken die anderen lidmaken e.d. en/of typo's voorkomen zodat je met een vervuilde database zit van niet-bestaande adressen.
Link naar reactie
Delen op andere sites

Citaat:
Maargoed zorg ook nog VOORDAT je mensen activeert als actief nieuwsbrieflezer ze eerst nog een email krijgen met een link ofzo om hun emailadres te bevestigen. Zo voorkom je lolbroeken die anderen lidmaken e.d. en/of typo's voorkomen zodat je met een vervuilde database zit van niet-bestaande adressen.


Dat zit in mijn websites ingebouwd, maar ik denk dat satfreaked zo al een hele boterham te verwerken heeft. <img src="/forums/images/graemlins/grin.gif" alt="" />


Citaat:

Wat een akelige controle Het is handiger om te controleren of het domein MX-records heeft. Die zijn namelijk wel 'verplicht'. Ik heb bijvoorbeeld een paar e-mail-only (sub)domeinen zonder A-records, maar wel met MX-records uiteraard.


hmm, leg even kort uit hoe je die controle doet?
Heb er nl nog niet van gehoord.

Thx

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Citaat:
hmm, leg even kort uit hoe je die controle doet?
Heb er nl nog niet van gehoord.

Thx


http://nl3.php.net/manual/en/function.getmxrr.php

En dan hoef je het array nog niet eens te verwerken. Gewoon afgaan op de returnwaarde van die functie.

Edit: dus in het geval van pietje@mijnemaildomein.topdomein.invalid alles na de @ checken.

In mijn geval:

Code:
host -t a spamreports.tweak-it.netspamreports.tweak-it.net has no A recordhost -t mx spamreports.tweak-it.net                        spamreports.tweak-it.net mail is handled by 10 graver.xs4all.nl.


In jouw check zou je dus www.spamreports.tweak-it.net checken, en dat gaat niet altijd werken (in dit geval wel, aangezien mijn Registrar het schijnbaar leuk vindt om alle niet bestaande A-records naar zichtzelf te verwijzen :S)
Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...