Aktuelles von Fabian 'Fabsn' Friedel auf Fabsn.de

Name:
Passwort:

Registrieren
Passwort+vergessen
Fahrkartenladen
SotM Search
Nächstes Zitat

Aktuelles



PHP & JS: E-Mails verschlüsseln.
0 Kommentare - Link news - Related Link: none
in PHP von Fabsn geschrieben am 03.12.2009

Um E-Mails auf Webseiten effektiv vor Spam zu schützen und das automatische Auslesen zu erschweren, greife ich auf folgende Methode zurück:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
function scrambleMailto($adresse$name "") {
    //Link erstellen.
    $adresse_old $adresse;
    if ($name == ""$name $adresse;
    $adresse "<a href=\"mailto:".$adresse."\">".$name."</a>";
    
    
//An jeder 3. Position den String "##" einfügen.
    $temp =  chunk_split($adresse,2,"#|#");
    
    
//String unterteilen
    $temp_array =  explode("#|#",$temp);
    $scrambled "";
    
    
//String zusammensetzen
    foreach($temp_array as $stueckchen) {
        $scrambled.= "+'".$stueckchen."'";
    }
    
    
//Erstes Zeichen abschneiden (+)
    $scrambled substr($scrambled1strlen($scrambled));
    
    
//Verschlüsselte eMail mit Name und Link per JavaScript einfügen
    $result "<script type=\"text/javascript\">\n document.write($scrambled); \n</script>";
    
    
//Ausgabe des JavaScripts
    return $result;
}
?>

Diese Funktion erstellt den passenden HTML-Code für einen E-Mail-Link, teilt den String und setzt ihn anschließend so zusammen, dass er über Javascript per document.write geschrieben werden kann.
Die Übergabe für einen $name-Wert ist optional.

Eine automatische Umwandlung aller gültigen E-Mail-Adressen in einem Text kann über folgende RegEx geschehen:

PHP:
1
2
3
<?php
$text 
preg_replace("#([0-9a-zA-Z]+[-._+&amp;])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}#esi""scrambleMailto(\"$0\")"$text);
?>

Top Top Newsarchiv Fabsn.de based on Faver