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

E-Mail-Adresse verbergen

Avatar user-290
29.04.2007 23:09

Ich weiß, es ist simpel. Aber 1. hatten wir gerad darüber eine Diskussion im wChat, was mich motiviert hat, ein simples Script zu schreiben. 2. Denke ich, dass es evtl.zukünftig noch einige interessieren könnte.
Vielleicht habt ihr ja noch mehr, andere oder bessere Lösungen.

Hier also ein (echt simples) Script um seine E-Mail-Adresse vor Crawlern zu verbergen und die ungewollten Kaufanreize über mögliche Penisverlängerungen (als ob ich das nötig hätte) oder Rolex-Uhren zu minimieren.

head:

<script type="text/javascript">
function mail_to_me() {
maildata = new Array(
"name", "meine_seite", "com" // aus dem Schema: name@meine_seite.com
);

mailaddress = maildata[0]+"@"+maildata[1]+"."+maildata[2];
location.href="mailto:"+mailaddress;
}
</script>


body:

<a href="javascript:mail_to_me();">Schreiben Sie mir eine E-Mail, aber bitte kein Spam</a>


Wie gesagt, es ist simpel. Mir gehts auch eher darum andere Möglichkeiten kennenzulernen (es muss nicht unbedingt JS sein). Vielleicht kriegen wir ja was für die zukünftige Scriptsammlung hin.

Gruß,
René

Avatar user-253
30.04.2007 09:20

Ein interessantes Thema. Mich würden Ideen interessieren, auch beliebige E-Mail Adressen so zu verbergen.
Vermutlich hat es weder Sinn alle Teile der E-Mail Adresse an eine JS Funktion zu übergeben noch das @-Zeichen durch Konstrukte wie [at] zu ersetzen.

Avatar user-118
30.04.2007 10:27

Wie viel Sinn macht es , die eMail in ASCII Zeichen im Code zu hinterlegen?

Ich habe gelesen, dass man einige Bots damit austricksen kann:

Meine Funktion dazu sieht so aus: (Bitte steiningt mich nicht, die ist mit Sicherheit total hässlich und unprofessionel aber sie funktioniert)

function email_to_ascii($email) {
$upper_letter = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'zwinkern;
$upper_letter_ansi = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'I', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'zwinkern;
$lower_letter = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'zwinkern;
$lower_letter_ansi = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' );
$numbers = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'zwinkern;
$numbers_ansi = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'zwinkern;
$other_chars = array('-', '.', '@', '_'zwinkern;
$other_chars_ansi = array('-', '.', '@', '_'zwinkern;
$email = str_replace($numbers, $numbers_ansi, $email);
$email = str_replace($upper_letter, $upper_letter_ansi, $email);
$email = str_replace($lower_letter, $lower_letter_ansi, $email);
$email = str_replace($other_chars, $other_chars_ansi, $email);
return $email;
}


// Die Funktionen funzt nicht, er wandelt die Ascii-Zeichen sofort um.

hier das Ganze online...

die Möglichkeit mit JS finde ich nicht gut, denn sie schließt gleich wieder einige User aus...

Ich brauche keine Signatur
user-137
30.04.2007 10:35

Ich dachte daran einfach die E-Mail als Text in eine Flash Datei zu packen den man markieren kann. Den ich denke das die Spam Bots kein Flash unterstützen und für den user-129utzer gibt es ja keine Änderung den es ist alles gleich.
Nachteil: Die die kein Flash installiert haben sehen's nicht.

Avatar user-282
30.04.2007 10:46

Aber ist es nicht zuviel Arbeit einfach ein Flashfeld zu nehmen? user-158n bin ich ja schon mehr für ein simples Kontaktformular mit Capchacode drin. Und wenn man z.B. ein Foren-Script schreibt wo viele E-Mail Adressen gibt sollte man dann schon eher eine angebrachte JS oder alternative finden.

Gruß, user-282 lächeln

zwinkern Don't Panic! - Die Antwort lautet: 42
Avatar user-180
30.04.2007 10:47

Original von user-118
Wie viel Sinn macht es , die eMail in ASCII Zeichen im Code zu hinterlegen?

Ich habe gelesen, dass man einige Bots damit austricksen kann:

Meine Funktion dazu sieht so aus: (Bitte steiningt mich nicht, die ist mit Sicherheit total hässlich und unprofessionel aber sie funktioniert)

//--//

// Die Funktionen funzt nicht, er wandelt die Ascii-Zeichen sofort um.

hier das Ganze online...

die Möglichkeit mit JS finde ich nicht gut, denn sie schließt gleich wieder einige User aus...

nur kurz dazu:
function no_spam($mail)
{
$str = "";
$a = unpack("C*", $mail[1]);
foreach ($a as $b)
$str .= sprintf("%%%X", $b);
$mail[1] = str_replace(".", " dot ", $mail[1]);
$link = str_replace("@", " bei ", $mail[1]);

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

--


gibts ne möglichkeit die emailadresse mit php irgentwie zu verschlüsseln und mit js wieder zu entschlüsseln?

also zb einfach alle buchstaben durch einen anderen ersetzen und mit js das dann wieder "rückzuübersetzen"?

may the force be with you. but mostly with me.
Avatar user-271
30.04.2007 11:18

nur mal so? warum schreibt ihr die addy mit einem php script auf ein bild? dynamisch generiert? sollte ja nicht der grosse aufwand sein...und ocr ist noch lange nicht soweit....man kann es dann captcha mässig sogar noch gestalten, wenn man ganz fanatisch ist Fettes Grinsen

edit: achso ihr wollte einen direkten link haben
na dann...eine extra datei...irgendwas: getMail.php
der dann die mail anhand von der id, bzw dem Namen rausgibt beim klick müsste doch irgendwie gehen

edit: zu dem verschlüseln ja gibt es....das geht mit base64 können beide sprachen...naja Js brauch ne funktion, aber die findet man im netz...zur not...rot13? cäsar Chiffre...einfach aber hilft für bots zwinkern

#!/bin/bash
traurig){ neutral:& };:
Avatar user-253
30.04.2007 12:10

Ich finde user-290s Ansatz immer noch am besten.
Gegen Flash und unleserliche Captchas habe ich einfach persönliche Abneigungen. traurig

Avatar user-290
30.04.2007 12:15

fish hat ja noch eine interessante Möglichkeit lächeln
http://www.fish.bierquartier.de/uebersicht-1-11.htm (guckst du in Quelltext).

die Möglichkeit mit JS finde ich nicht gut, denn sie schließt gleich wieder einige User aus...

schon wieder diese Leier. Wer mit deaktiviertem JS durchs Internet surft, läuft doch wie'n Verkrüppelter durchs Web.

Avatar user-253
30.04.2007 12:30

Original von user-290
fish hat ja noch eine interessante Möglichkeit lächeln
http://www.fish.bierquartier.de/uebersicht-1-11.htm (guckst du in Quelltext).

die Möglichkeit mit JS finde ich nicht gut, denn sie schließt gleich wieder einige User aus...

schon wieder diese Leier. Wer mit deaktiviertem JS durchs Internet surft, läuft doch wie'n Verkrüppelter durchs Web.


Sehe ich auch so. Die Seite muss noch irgendwie benutzbar sein (also keine permanent zugeklappten Menus oder so ähnlich). Auf vollständige Nutzbarkeit haben solche user-129utzer aber schlicht kein Anrecht zwinkern

user-203
30.04.2007 13:14

Was der Fish da verwendet, ist zwar an und für sich ein guter Ansatz. Bringt aber nichts mehr. Habe das schon mal getestet.

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
Avatar user-259
30.04.2007 13:26

ich finde die idee, das mit JS zu machen, am besten!

[font=courier]H[/font]amburger [font=courier]J[/font]ung
Avatar user-182
30.04.2007 23:54

Ich hatte da mal früher etwas auf meiner Seite: http://web.archive.org/web/20060227035920/frankyonline.de/E-Mail-Adresse-verschluesseln-schnipsel5.html

<?
// (c) 2005 by user-182
// http://FrankyOnline.de/
// Dieser Vermerk darf nicht entfernt werden

function cryptmail($email, $str='', $js=false){
if(empty($str)) $str = $email;
$link = '<a href="mailto:%s">%s</a>';

// Get JS-Info from browscap.ini
$browserinfo = (array)get_browser();
if($browserinfo['javascript'] == 1 && $js == true){
// JavaScript
$string = 'document.write("'.addslashes(sprintf($link, $email, $str)).'"zwinkern;';
for($i=0,$encode='';$i<strlen($string);$i++) $encode .= '%'.bin2hex($string[$i]);
$return = '<script type="text/javascript">eval(unescape(\''.$encode.'\'zwinkern)</script>';
}else{
// No-JavaScript
for($i=0,$nojsmail='';$i<strlen($email);$i++) $nojsmail .= '&#x'.bin2hex($email[$i]).';';
$return = sprintf($link, $nojsmail, $str);
}

return $return;
}
?>


beispiel

<?
// Standard verschl&#65533;sseln
echo cryptmail('fr@nky.ath.cx'zwinkern;
echo '<br />';

// Oder mit Name
echo cryptmail('fr@nky.ath.cx', 'Schick mir \'ne Mail!'zwinkern;
echo '<br />';

// Wenn der Browser des Users JavaScript unterst&#65533;tzt, kannst du
// auch einen JS-Code senden:
echo cryptmail('fr@nky.ath.cx', 'Schick mir \'ne Mail mit js frech', true);
echo '<br />';

// Oder mit JS und ohne Text:
echo cryptmail('fr@nky.ath.cx', '', true);
echo '<br />';
?>

Seid ihr auch schon wix'r? xD
Avatar user-322
08.06.2007 09:10

Original von user-290
fish hat ja noch eine interessante Möglichkeit lächeln
http://www.fish.bierquartier.de/uebersicht-1-11.htm (guckst du in Quelltext).

die Möglichkeit mit JS finde ich nicht gut, denn sie schließt gleich wieder einige User aus...

schon wieder diese Leier. Wer mit deaktiviertem JS durchs Internet surft, läuft doch wie'n Verkrüppelter durchs Web.


$x= preg_replace('/&#([0-9]{1,3});/sie', 'chr(\\1)', $x);
^^

//edit:
huch seh grad, dass das ganz was anderes is ^^ ok in dem Fall: urldecode()