Registreren

    Informatie

    Het is heel gemakkelijk om lid te worden. Door je gegevens op te geven op de registratie pagina ontvang je automatisch een email met je inlog gegevens.

  • Registreer je hier

Aanmelden

    Informatie

    Omdat je niet aangemeld bent is het gebruikerspaneel niet beschikbaar. Vul hiernaast je gegevens in om gebruik te maken van het gebruikerspaneel.

Aanmeldformulier


Spamvrij emailadres

PHP is een scripttaal, die bedoeld is om op webservers dynamische webpagina's te creëren. PHP is in 1994 ontworpen door Rasmus Lerdorf, een senior software engineer bij IBM. Destijds was de taal duidelijk geïnspireerd door Perl.

Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam was Personal Home Page/Forms Interpreter, PHP/FI). Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: PHP: Hypertext Preprocessor.

Spamvrij emailadres

Berichtdoor Theo » 03 Sep 2008 20:34

Inleiding
SPAM is iets waar iedereen zich aan irriteert. Maar hoe krijg je nu last van SPAM? Bijvoorbeeld doordat je emailadres op een website staat. Er bestaan zogeheten spambots. Deze surfen sites af en zoeken naar emailadressen. In dit artikel leg ik uit hoe je emailadressen spamvrij op je website kunt zetten.


Benodigdheden

  • PHP 4.3.2 of hoger
  • GD-library

De code
Hieronder staat de code die we gebruiken. In de commentaren staat uitgelegd wat de verschillende functies doen.

PHP
Code: Alles selecteren
<?php
// De || en :: vervangen voor @ en .
$email = str_replace("||","@",$_GET['e']);
$email = str_replace("::",".",$email);
 
// Kijken of er wel een emailadres is opgegeven
if(empty($email))
   $email = "leeg@mastercode.nl";
// Controleren of het emailadres wel geldig is.
elseif(!preg_match('/^[A-Za-z0-9._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $email))
   $email = "error@mastercode.nl";
 
// Lettergrootte ophalen. Indien leeg, grootte 2 gebruiken.
$grootte = empty($_GET['g']) ? 2 : $_GET['g'];
 
// Breedte en hoogte bepalen
$breedte = imagefontwidth($grootte) * strlen($email) + 4;
$hoogte = imagefontheight($grootte);
 
// Afbeelding maken
$afb=imagecreate($breedte, $hoogte);
 
// Achtergrondkleur bepalen in RGB waarden. De laatste parameter is voor transparantie. 0 = zichtbaar; 127 = geheel transparant
$achtergrond = imagecolorallocatealpha($afb, 255, 255, 255, 127);
// Kleur van de letters in RGB waarden. De laatste parameter is voor transparantie. 0 = zichtbaar; 127 = geheel transparant
$kleur = imagecolorallocatealpha($afb, 0, 0, 0, 0);
 
 
// Tekst toevoegen aan de afbeelding
imagestring($afb, $grootte, 2, 0, $email, $kleur);
 
// Afbeelding intialiseren
header("Content-type: image/png");
// Afbeelding uitpoepe
imagepng($afb);
// Rotzooi opruimen
imagedestroy($afb);
?>

We slaan deze code op als antispam.php.


Gebruik
Als je code bekijkt zie je een aantal opties die je aan kunt passen. Zo kun je de kleur (en transparatie) van de achtergrond en letters aanpassen.

Wanneer je deze code wil gebruiken dien je de code te hebben opgeslagen (bijvoorbeeld als antispam.php) en geupload te hebben naar je server.

Vervolgens wil je de code gaan gebruiken op je site. Dit doen met behulp van de <img>-tag. We linken daarmee naar antispam.php. Hierbij dienen we twee parameters op te geven. Namelijk:

  • e: het emailadres waarbij we || gebruiken in plaats van @ en :: in plaats van een punt. Dit om te voorkomen dat spambots het emailadres uit de src van de img haalt.
  • g: de grootte van het lettertype. Een geheel getal van 1 tot en met 5. Standaard staat hij op 2.

Bijvoorbeeld:

HTML
Code: Alles selecteren
<img src="antispam.php?e=testadres||mastercode::nl&g=4" alt="" />

We krijgen vervolgens die resultaat:

    Afbeelding
Je kan ook een heel klein lettertype nemen:

    Afbeelding

Errors
In de code zit een check ingebouwd. Je kan twee foutmeldingen krijgen namelijk:

    Afbeelding
Dit betekent dat er achter .php de ?e= niet is ingevuld. Oplossing: vul een emailadres in.

    Afbeelding
Er is geen geldig emailadres ingevuld. Oplossing: vul een geldig emailadres in (iets||iets::iets).
Theo
Oprichter
 
Berichten: 1795
Geregistreerd: 11 Jun 2005 17:43
Woonplaats: in_array()

Terug naar PHP



Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast


cron