Webstatt.org - Community seit 2006 - 2012 (2024?)

antispam

Avatar user-180
02.09.2006 12:49

guten taag.

also ich habe hier eine eigentlich simple antispamfunktion. weil ich die aber zum großteil kopiert habe (php4u) kenne ich mich eben nicht so genau damit aus.

ich möchte dass die funktion ausgibt : web [ät] statt [punkt] org

ausgegeben wird aber web@statt [punkt] org.

wie mache ich es richtig?


function no_spam($mail)
{
$str = "";
$a = unpack("C*", $mail[1]);
foreach ($a as $b)
$str .= sprintf("%%%X", $b);
$link = str_replace("@", " [ät] ", $mail[1]);
$link = str_replace(".", " [punkt] ", $mail[1]);
return "<a href=\"mailto:".$str."\">".$link."</a>";
}

may the force be with you. but mostly with me.
user-157
02.09.2006 12:54

ich würde das ganze direkt mit regexen machen

asdf!
Avatar user-271
02.09.2006 13:01

schwachsinn ;D das muss du nichts mit regexen machen...ist nur langsamer bei regexen

so sollte es gehn ;D
<?php
function no_spam($mail) {
$str = "";
$a = unpack("C*", $mail);
foreach ($a as $b) {
$str .= sprintf("%%%X", $b);
}

$link = str_replace(array("@","."zwinkern,array( " [&auml;t] "," [punkt] "zwinkern, $mail);

return "<a href=\"mailto:".$str."\">".$link."</a>";
}

print no_spam('web@statt.org'zwinkern;
?>

#!/bin/bash
traurig){ neutral:& };:
Avatar user-255
02.09.2006 13:02

Anscheinend geht das "@" in deinem Zeichensatz unter.. :-\

Probier's mal mit chr(64), wobei 64 die dezimale Darstellung vom @ ist.

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-271
02.09.2006 13:03

nein es war was genaz was anderes...er überschreibt $link nochmal zwinkern

 $link = str_replace("@", " [ät] ", $mail[1]);
$link = str_replace(".", " [punkt] ", $mail[1]);


naja....du hast estmal kein array zwinkern und du überschreibst $link beim zweitenmal Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
Avatar user-180
02.09.2006 13:35

& wie mach ich es jetzt richtig?

//edit ich habe es dann doch alleine hinbekommen..

function no_spam($mail)
{
$str = "";
$a = unpack("C*", $mail[1]);
foreach ($a as $b)
$str .= sprintf("%%%X", $b);
$mail[1] = str_replace(".", " [punkt] ", $mail[1]);
$link = str_replace("@", " [ät] ", $mail[1]);

return "<a href=\"mailto:".$str."\">".$link."</a>";
}

may the force be with you. but mostly with me.
Avatar user-255
02.09.2006 13:52

#
$link = str_replace("@", " [ät] ", $mail[1]);
#$link = str_replace(".", " [punkt] ", $mail[1]);
$link = str_replace(".", " [punkt] ", $link);


..und ich hab mich darauf verlassen, dasses ein funktionierendes PHP4U Schnipsel is *brr* frech

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-271
02.09.2006 13:59

häh ich hab doch oben eine funktionierende version gepostet zwinkern

schwachsinn ;D das muss du nichts mit regexen machen...ist nur langsamer bei regexen

so sollte es gehn ;D
<?php
function no_spam($mail) {
$str = "";
$a = unpack("C*", $mail);
foreach ($a as $b) {
$str .= sprintf("%%%X", $b);
}

$link = str_replace(array("@","."zwinkern,array( " [&auml;t] "," [punkt] "zwinkern, $mail);

return "<a href=\"mailto:".$str."\">".$link."</a>";
}

print no_spam('web@statt.org'zwinkern;
?>


und user-255...das ist nicht aus php4u...zumindest nicht das ersetzen zwinkern der anfang schon und der funzt ja auch

#!/bin/bash
traurig){ neutral:& };:
user-150
02.09.2006 14:28

darf ich es wagen eine grundsatz diskussion anzufagen ob es nicht besser wäre die mailaddy in ascii zeichen zu schreiben statt mit diesem [ät] und [dot] und so?

Mehr schlaue Sprüche gibt es auf: anotherstyle.de Psicologia
Avatar user-271
02.09.2006 14:36

man muss die aber auch noch lesen können zwinkern

und sie wird ja ins hex format codiert *Fg*

#!/bin/bash
traurig){ neutral:& };:
user-203
02.09.2006 14:53

Abgesehen davon sind diese ganzen versteckspielchen mit den Spambots sowieso sinnlos. Glaubt ihr wirklich, dass so ein Programm ein [ät] nicht als @ erkennt?

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
Avatar user-180
02.09.2006 15:10

hm hast recht. wie kann ich das ergebnis als bild darstellen? also ein bild auf den dann steht user-180nation[ät]depp[ponkt]de?

may the force be with you. but mostly with me.
user-137
03.09.2006 08:38

hm, versuch ma so:


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

$link = str_replace(array("@","."zwinkern,array( " [&auml;t] "," [punkt] "zwinkern, $mail);

return "$link";
}

#################################################

header("Content-type: image/png"zwinkern;
$text = no_spam(''GET_['mail']''zwinkern;
$im = imagecreatetruecolor(70,30);
$bg_color = ImageColorAllocate($im, 0, 0, 0);
$font_color = ImageColorAllocate($im, 255, 255, 255);
imagestring ($im, 5, 5, 7, $text, $font_color);
imagepng($im);
?>


dateiname.php?mail=web@statt.de

Avatar user-255
03.09.2006 09:40

> dateiname.php?mail=web@statt.de

Damit wird die Adresse doch genauso im Klartext ausgegeben.. :tired:

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
03.09.2006 09:41

Er wollte es im Bild dargestellt haben, das es so auch dargestellt wird ist mir schon bewust aber da kann man sich ja noch was einfallen lassen!

Avatar user-253
03.09.2006 10:19

Ich halte die ganze Codierung auch für absolut unsinnig bis nervig. Auf eine Darstellung als Bild kann man auch getrost verzichten (außer an Stellen, die eine Email Adresse benötigen wie das Impressum), da man es ja auch irgendwie verlinken müsste - man kann doch nicht verlangen, dass der User die Adresse abtippt...

Ich würde die Emailadresse in der Datenbank speichern und nur auf ein Kontaktformular verlinken.
Wenn man hier einen Schutz integriert und dem Absender auch eine Kopie schickt, hat er die Adresse ja auch und alle sind glücklich.

Alternativ eine AJAX Lösung. Die Adressen werden ebenfalls in der Datenbank gespeichert und bei einem Click lädt das JS die Adresse aus der Datenbank und gibt sie mit aus. Ein Click mehr als nötig aber besser als [ät]

Avatar user-180
03.09.2006 12:53

ich möchte doch einfach nur eine emailadresse angeben können ohne das ein spambot sie frisst. wie ist michr egal... traurig

may the force be with you. but mostly with me.
Avatar user-255
03.09.2006 18:29

"fish bei der domain webstatt unter der top-level-domain org" frech

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm