FAQSuchenBenutzergruppenProfilRegistrierenPrivate MessagesPHPKid-Forum von Joh.-Chr. Hanke: Foren-ÜbersichtLogin
PHPKid-Forum von Joh.-Chr. Hanke: Foren-Übersicht » Entwicklung
Spamschutz für Emailadresse
Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen
Maffy


Beiträge: 138
Anmeldungsdatum: 15.02.2006
Wohnort: Bad Bocklet
Beitrag Verfasst am: 26.09.2006, 16:42     Titel: Spamschutz für Emailadresse
  Antworten mit Zitat      
Ich möchte gerne email adressen die im Content stehen per Spamschutz schützen.

Code:

// Funktion gegen Spams
function no_spam($mail) {
    $str = "";
    $a = unpack("C*", $mail);
    foreach ($a as $b)
      $str .= sprintf("%%%X", $b);
    return $str;
}



Code:

    // Email senden
   $mail = no_spam("meine@email.de");
   $link  = "<a href=\"mailto:".$mail."\"> Daten melden! </a>";



Wie durchsuche ich den Content nach Emailadressen und wie kann ich die Adressen mit obiger Funktion schützen?

Mfg Maffy
_________________
leben und leben lassen
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen

Faba


Beiträge: 401
Anmeldungsdatum: 12.08.2006
Beitrag Verfasst am: 16.11.2006, 15:34     Titel:
  Antworten mit Zitat      
Benutze mal die Funktion preg_replace().
Die Syntax sieht so aus:
mixed preg_replace ( mixed Suchmuster, mixed Ersatz, mixed Zeichenkette [, int Limit [, int &Anzahl]] )
Damit kannst du ganze Zeichenketten durchsuchen. Als Suchmuster kann auch ein regulärer Ausdruck dienen.
_________________
Was ist der Unterschied zwischen einem Physiker und einem Programmierer?

Der Physiker glaubt, 1KByte wären 1000 Bytes.

Ein Programmierer glaubt, 1km wären 1024m...
Private Nachricht senden Benutzer-Profile anzeigen Website dieses Benutzers besuchen

Maffy


Beiträge: 138
Anmeldungsdatum: 15.02.2006
Wohnort: Bad Bocklet
Beitrag Verfasst am: 26.11.2006, 18:38     Titel:
  Antworten mit Zitat      
Habe das jetzt so gelöst:


Dort wo der Link im Content erscheinen soll
Code:
[adminmail]

eingeben.

Im contentmaker.php einfügen:
Code:


// Email senden
$mail = no_spam("deine@email.de");

// Adminemail
   $adminmail = "<a href="mailto:" title="E-Mail senden\">E-Mail senden</a>";
   $content .= eregi_replace("\[adminmail\]", $adminmail, $acticon);
   return $content;



Diese Funktion einbinden.
Code:

// Funktion gegen Spams
function no_spam($mail) {
    $str = "";
    $a = unpack("C*", $mail);
    foreach ($a as $b)
      $str .= sprintf("%%%X", $b);
    return $str;
}



Test

Mfg Maffy
_________________
leben und leben lassen
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen

pascal


Beiträge: 15
Anmeldungsdatum: 14.03.2008
Beitrag Verfasst am: 09.04.2008, 13:46     Titel:
  Antworten mit Zitat      
Hallo Maffy

Ist es eigentlich auch möglich, mit dem Anti-Spam Script mehrere verschiedene Adressen zu verschleiern? Denn der automatische E-Mail-Verschleierer vom CMB 1.5 ist nicht wirklich brauchbar. Denn wenn ich einen mailto-Link setze, kann man den Link zwar anklicken, aber nicht mit einem Mail-Client versenden.

Vielen Dank im Voraus für deine Antwort.

Beste Grüsse aus der Schweiz
Pascal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

Maffy


Beiträge: 138
Anmeldungsdatum: 15.02.2006
Wohnort: Bad Bocklet
Beitrag Verfasst am: 28.07.2008, 07:23     Titel:
  Antworten mit Zitat      
Evtl. könnte mann für die mails ein array erstellen das dann entsprechend durchsucht wird.

MFG Maffy
_________________
leben und leben lassen
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen

Faba


Beiträge: 401
Anmeldungsdatum: 12.08.2006
Beitrag Verfasst am: 29.07.2008, 19:30     Titel:
  Antworten mit Zitat      
man könnte das auch in etwa so machen, wie beim Link-Tag des Mini-Forum von JCH.

Die Syntax wäre dann: [mailto=mail@example.com]

In der contentshow.inc.php anstatt
Code:
$acticon = preg_replace('|\@|', "<script language='JavaScript' type='text/javascript'>document.write('@')</script><noscript>(at-Zeichen)</noscript>", $acticon);

folgendes eintragen:
Code:

function no_spam($mail) {
    $str = "";
    $a = unpack("C*", $mail);
    foreach ($a as $b)
      $str .= sprintf("%%%X", $b);
    return $str;
}

preg_match_all("|\[mailto=([-_./a-zA-Z0-9!&%#?,'=:~]+)\]|", $acticon, $treffer);
foreach($treffer[1] as $treff)
{
   $mail = "<a href='mailto:" . no_spam($treff) . "'>E-Mail senden</a>";
   $muster = "|\[mailto=$treff\]|";
   $acticon = @preg_replace($muster, $mail, $acticon);
}

So. ich hoffe das funktioniert. ist nämlich so gut wie ungetestet. habe das alles aus Code-Schnipseln zusammengeschustert Very Happy
Ich hoffe es hilft Wink

// edit: nochwas. es wird dringend empfohlen die ereg-Funktionen nicht mehr zu benutzen. sie sind nicht so leistungsstark wie die preg-Funktionen und leider auch sehr anfällig auf Angriffe etc.
_________________
Was ist der Unterschied zwischen einem Physiker und einem Programmierer?

Der Physiker glaubt, 1KByte wären 1000 Bytes.

Ein Programmierer glaubt, 1km wären 1024m...
Private Nachricht senden Benutzer-Profile anzeigen Website dieses Benutzers besuchen

Options and Permissions


Beiträge der letzten Zeit anzeigen:

Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
.
Seite 1 von 1 .:. Neues Thema eröffnen Neue Antwort erstellen

Website Templates
LayoutBank Webpage Templates © - Forumsbetreiber und Impressumslink: siehe www.phpkid.de