14. maj 2006 - 19:54
Der er
65 kommentarer
Skjul emailadresse
Med fare for at det er forkert kategori !!!! Hvordan skjuler man bedst emailadresser på hjemmesider. Forstået på den måde at det stadigvæk skal kunne lade sig gøre at klikke på et maillink men at diverse "høstere" ikke opdager det ?
Annonceindlæg fra Cognizant
apo > Den sad jeg lige og ledte efter til ham ^^
<script type="text/JavaScript"> function ges2342qa1(dfgdhwq,j345fg,hjfdssd) { window.location.href=j345fg + "@" + hjfdssd + "." + dfgdhwq; } </script> <a href="#" onclick="ges2342qa1('landekode','brugernavn','domænenavn');return false;">fubar!</a> Eksempel: ges2342qa1('dk','hanshansen','yahoo') :-)
Takker ... Smid svar begge 2 :o)
thesurfer > Hvis der nu er 5-10 adresser på samme side, skal dit script så bare gentages ?
html.dk påstår at "den paranoide løsning" er: <a href="mailto:%6A%6F%61%63%68%69%6D%40%68%74%6D%6C%2E%64%6B"> Send mig en e-mail </a> Hmm.. prøv lige dette i jeres adresse linie: java script:alert(unescape("%6A%6F%61%63%68%69%6D%40%68%74%6D%6C%2E%64%6B"));void(0)
Det er kun onclick="ges2342qa1('dk','hanshansen','yahoo')" der skal gentages, med forskellige værdier..
Ingen points til mig, tak.
Jeg har valgt nogle meget intetsigende navne til funktionen og variablerne.. Normalt ville man give dem navne, der beskriver deres funktion. Men det er ikke særligt smart med: function fix_email(username, domain, countrycode) da bot'erne muligivs kan opfange disse ord.. Hmm.. det hedder garanteret noget andet end "countrycode".. :-)
Ahh, ja.. det er fordi der mangler "mailto:" foran.. Jeg retter lige scriptet..
Sådan: <script type="text/JavaScript"> function ges2342qa1(dfgdhwq,j345fg,hjfdssd) { hjfd = "l"; sdfsdgfbg = "o"; hjklk = "m"; bngfrr = "a"; vccbcv = ":"; cvb = "i"; vcbsdfdsf = "t"; trewsdty67 = hjklk + bngfrr + cvb + hjfd + vcbsdfdsf + sdfsdgfbg + vccbcv; window.location.href= trewsdty67 + j345fg + "@" + hjfdssd + "." + dfgdhwq; } </script> <a href="#" onclick="ges2342qa1('landekode','brugernavn','domænenavn');return false;">fubar!</a> Igen med samme kald: ges2342qa1('landekode','brugernavn','domænenavn')
Jeg vil mene, at 14/05-2006 20:26:10 er lidt mere paranoid end "den paranoide løsning" på
http://www.html.dk/artikler/00041/ .. :-)
Man kunne også lave en kombination, hvis man ikke var langt ude nok... :-)
Man kunne jo også kryptere parameterene.. :-) Mange (de fleste) kender nok "yahoo", og kan muligvis regne ud, at det har noget med en email at gøre.. Så kan man f.eks. krypterede "yahoo" så det blev til f.eks. "kigle", og sende de afsted ved onclick.. En funktion ville så dekryptere "kigle" til "yahoo". Men som sagt, den bedste og sikreste løsning, er: lad vær med at skrive email adressen :-)
Ja, det virker :o) Hvis jeg skriver selve mailadressen der hvor du har skrevet fubar, så er jeg vel lige vidt ikke ? Det jeg tænker på er at jeg godt vil kune vise adressen på siden men at den stadigvæk er "væk"...
Så skal du nok bruge et billede. Jeg går ud fra, at bots kan fange siden data efter load..
Ja, det tænkte jeg nok. Kan det så lade sig gøre "runtime" så jeg ikke skal lave billederne selv. Lidt i stil med den måde det fungerer på
www.fotokritik.dk ?
Jeg prøver lige at lave et eksempel..
<html> <head> <title>noget her</title> <head> <script type="text/JavaScript" language="JavaScript"> function ges2342qa1(dfgdhwq,j345fg,hjfdssd) { hjfd = "l"; sdfsdgfbg = "o"; hjklk = "m"; bngfrr = "a"; vccbcv = ":"; cvb = "i"; vcbsdfdsf = "t"; trewsdty67 = hjklk + bngfrr + cvb + hjfd + vcbsdfdsf + sdfsdgfbg + vccbcv; window.location.href= trewsdty67 + j345fg + "@" + hjfdssd + "." + dfgdhwq; } function ruehdkfjlieohkjlgb(dfgdhwq,j345fg,hjfdssd) { rgtfedwwregtfdew345 = j345fg + "@" + hjfdssd + "." + dfgdhwq; document.getElementById("vghyjghgbfvdefrgthn").innerHTML = rgtfedwwregtfdew345; } </script> </head> <body onload="ruehdkfjlieohkjlgb('landekode','brugernavn','domænenavn')"> <a href="#" onclick="ges2342qa1('landekode','brugernavn','domænenavn');return false;"><div id="vghyjghgbfvdefrgthn"> </div></a> </body> </html>
Jeg skulle nok have brugt nogle nye variabelnavn til parameterne, i den nye funktion.. Sådan: <html> <head> <title>noget her</title> <head> <script type="text/JavaScript" language="JavaScript"> function ges2342qa1(dfgdhwq,j345fg,hjfdssd) { hjfd = "l"; sdfsdgfbg = "o"; hjklk = "m"; bngfrr = "a"; vccbcv = ":"; cvb = "i"; vcbsdfdsf = "t"; trewsdty67 = hjklk + bngfrr + cvb + hjfd + vcbsdfdsf + sdfsdgfbg + vccbcv; window.location.href= trewsdty67 + j345fg + "@" + hjfdssd + "." + dfgdhwq; } function ruehdkfjlieohkjlgb(hngfrtyujhgb,sdfesfrgdt,hjmk,jhgtrewrt7) { rgtfedwwregtfdew345 = sdfesfrgdt + "@" + jhgtrewrt7 + "." + hngfrtyujhgb; document.getElementById("vghyjghgbfvdefrgthn").innerHTML = rgtfedwwregtfdew345; } </script> </head> <body onload="ruehdkfjlieohkjlgb('landekode','brugernavn','domænenavn')"> <a href="#" onclick="ges2342qa1('landekode','brugernavn','domænenavn');return false;"><div id="vghyjghgbfvdefrgthn"> </div></a> </body> </html>
Her sættes brugernavn etc. ved Body onload. Hvad så hvis jeg har flere forskellige adresser. Så nytter det ikke at jeg bare genbruger <a href="#" onclick="ges2342qa1('landekode','brugernavn','domænenavn');return false;"><div id="vghyjghgbfvdefrgthn"> </div></a>
Lidt O/T: @ 14/05-2006 20:17:23 'Hmm.. det hedder garanteret noget andet end "countrycode".. :-)' Ja, det hedder et Top-Level Domain, hvis det skulle have interesse :P Morsomme løsninger, forresten.
Sådan: <html> <head> <title>noget her</title> <head> <script type="text/JavaScript" language="JavaScript"> function ges2342qa1(dfgdhwq,j345fg,hjfdssd, ohijfkensdgb) { hjfd = "l"; sdfsdgfbg = "o"; hjklk = "m"; bngfrr = "a"; vccbcv = ":"; cvb = "i"; vcbsdfdsf = "t"; trewsdty67 = hjklk + bngfrr + cvb + hjfd + vcbsdfdsf + sdfsdgfbg + vccbcv; window.location.href= trewsdty67 + j345fg + "@" + hjfdssd + "." + dfgdhwq; } function ruehdkfjlieohkjlgb(sdfesfrgdt,hjmk,jhgtrewrt7,hngfrtyujhgb) { rgtfedwwregtfdew345 = hjmk + "@" + jhgtrewrt7 + "." + sdfesfrgdt; document.getElementById(hngfrtyujhgb).innerHTML = rgtfedwwregtfdew345; } </script> </head> <body onload="ruehdkfjlieohkjlgb('com', 'hanshansen', 'yahoo', 'vghyjghgbfvdefrgthn');ruehdkfjlieohkjlgb('dk', 'jensjens', 'jubii', 'dfvghngfsert5ygf')"> <a href="#" onclick="ges2342qa1('landekode','brugernavn','yahoo');return false;"><div id="vghyjghgbfvdefrgthn"> </div></a> <a href="#" onclick="ges2342qa1('dk','jensjensen','jubii');return false;"><div id="dfvghngfsert5ygf"> </div></a> </body> </html> Jeg smutter lige 20-30 minutter..
jensgram> Ahhh.. ja.. "Top-Level Domain".. :-)
Jeg går ud fra at sidste eksempel skjuler adressen selvom den er der eller ?
Yep.. Den fixer email adressen ved runtime, inden den smider det ud som link-tekst, og den fixer email adressen, når man klikker på linket..
Jamen så kan jeg vel ikke forlange det bedre ... TAK :o)
Man kunne også lege lidt med Split.. så kunne man f.eks. gøre sådan her: sdfsdf('dk jensjensen jubii') ..og det samme med onload Men der skal noget andet koden til..
Det var så lidt.. :-) Nu skal vi bare have de andre til at smide et svar hver.. :-)
Der er dog 1 dårlig til ved denne metode (og alle dem på html.dk pånær det med billedet og MÅSKE det med "nospam"): Hvis brugeren har JavaScript slået fra, er der intet der virker. Der kan du bruge: <noscript> Du skal slå JavaScript til, for at kunne kontakte mig (eller noget i den stil) </noscript> Teksten vises, hvis brugeren har JavaScript slået fra.
Rettelse: "..1 dårlig ting ved.."
Hmm... jeg kan altså kun se kontakt-link over i menuen, i venstre frame.. Der står det som tekst: © 2001-2006 FotoKritik.dk Hvor er det du ser det billede henne?
Det er et link til en debattråd. Prøv at se 4. debatindlæg hvor en bruger skriver sin mailadresse. Adressen er lavet om til en lille png fil
Jeg tror at PHP læser a og b, og redirecter (sender videre) til a@b ..
aheem... spørgsmålet er jo også oprettet i php ;o))
Hahahah! Det har jeg først lagt mærke til nu! :-) Jeg ser lige om jeg kan finde noget til dig.. :-)
Jeg fandt lige det her eksempel. Det er da en start :o)
Så mangler jeg vel "bare" at få tilknyttet linket...
Hvilket eksempel? Det på
http://dk.php.net/gd? <?php
header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
Nej, det var et fra en bog jeg har "Avanceret PHP"
Men det er selvfølgelig ikke 100% brugbart. Bredden af billedet skal jo være noget i retning af tekstbredden af mailadessen
Jeg kan se, at der sker en udregning her: $px = (imagesx($im) - 7.5 * strlen($string)) / 2; 7.5 gange (antal_tegn_i_strengen / 2)
Jeg er lige ved at ha´ den nu. Jeg linker tl en side hvor mailen startes op fra men der skal returneres fra den temporære side igen. Nedenstående virker ikke helt: echo "<head><META HTTP-EQUIV='Refresh' CONTENT='0; Url=mailto:".$a."@".$b."'>"; echo "<head><META HTTP-EQUIV='Refresh' CONTENT='0; Url=test.htm'>"; // eller // echo "<head><META HTTP-EQUIV='Refresh' CONTENT='0; Url=java script:history.back(-1)'>"; Outlook startes men der returneres ikke. Jeg har forsøgt både med et hop tilbage og direkte link til test. Men det er vel fordi jeg ikke kan have de to sætninger efter hinanden ?
Scriptet der laver grafikken ser sådan her ud nu: <?php // Set the content-type header("Content-type: image/gif"); $fontsize = 8; if(@$_GET['fontsize']) { $fontsize = $_GET['fontsize']; } $font = 'verdana.ttf'; //$text = @$_GET['text']; $text = $a.'@'.$b; // Create the image $size = imagettfbbox($fontsize, 0, $font, $text); $width = $size[2] + $size[0] + 8; $height = abs($size[1]) + abs($size[7]); $im = imagecreate($width, $height); $colourBlack = imagecolorallocate($im, 255, 255, 255); imagecolortransparent($im, $colourBlack); // Create some colors $white = imagecolorallocate($im, 255, 255, 255); $black = imagecolorallocate($im, 0, 0, 0); // Add the text imagefttext($im, $fontsize, 0, 0, abs($size[5]), $black, $font, $text); // Using imagepng() results in clearer text compared with imagegif($im); imagedestroy($im); ?>
Du skal redirecte med PHPs "header".. ikke HTML
header:
http://dk.php.net/header Eksempel:
<?php
header("Location: mailto:a@b.dk"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
header("Location: mailto:$a@$b"); Ovenstående gør for så vidt det den skal. Starter Outlook med adressen sat korrekt ind. Men selve siden bliver nu ændret til en b mailto:anders@and.com
hov... Fik tastet send for tidligt... fortsætter lige....
... til en blank side hvor der i adresselinien står mailto:anders@and.com
mside.php skal gøre følgende:
start Outlook med $a og $b som mailadressen
returnere til den oprindelige side (den hvor maillinket vises)
Linket på den oprindelige side ser sådan her d:
<p><a target="_top" href="mside.php?a=anders&b=and.com">
<img src="
http://www.mig.com/test/mail_billede/2.php?a=anders&b=and.com" border="0"></a>
... returnere til den oprindelige.... Den skal ganske enkelt hoppe et skridt tilbage så den passer til alle sider med maillink...
Siden skal jo ikke skifte.. Når browseren loader "php?a=anders&b=and.com", åbener den Outlook med det samme, og stopper.. Der er nemlig ikke en side den kan loade.. Lige som på fotokritik.dk.. du kan evt prøve at kontakte dem, og høre hvordan de har gjort det.. Det kan være at de bruger noget include eller noget..
De vil ikke rigtig ud med løsningen... Jeg forstår ikke helt det du skriver med at siden ikke skal skifte. I linket må jeg jo henvise til den side der skal starte Outlook (mside.php). Når jeg linker til den med variablerne er det nemt nok at få den til at starte Outlook. Men jeg vil lukke den igen automatisk og det er dér det kniber. Jeg vrøvler nok lidt men jeg er også ret fovirret :o))
Når man klikker på et link, sender browseren en forespørgsel, for at se om siden eksisterer. Når den ser at det der returneres er et mail-request, skulle den gerne stoppe, idet en mailadresse ikke kan loades i browseren. Det kan være, at jeg kan få fat på en PHP server, senere i dag.. så kan jeg teste det..
ok... det lyder sørme fornemt... :o)
Jeg prøver lige at samle op så langt jeg selv er med.
I min udgangsside (test.htm) har jeg et fungerende link. Grafikken dannes via 2.php og mail variablerne sendes til mside.php for at blive omdannet til en "mailto".
Jeg har forsøgt at lave en header i mside.php som starter Outlook. Det virker også. men selve mside.php bliver ved med at blive vist. Ideen er at mside.php skal gøre følgende:
1. aktiver en mailto hvor mailadressen er delt op i 2 eller flere bidder. F.eks. header("Location: mailto:$a@$b");
2. Lukke sig selv igen således at den oprindelige side (test.htm) bliver vist.
Linket i test.htm ser sådan her ud:
<p><a target="_blank" href="mside.php?a=anders&b=and.com"><img src="
http://www.example.com/test/mail_billede/2.php?a=anders&b=and.com" border="0"></a>
Har du husket "exit"?: header("Location: mailto:$a@$b"); /* Redirect browser */ /* Make sure that code below does not get executed when we redirect. */ exit; ?>
Jep <?php header("Location: mailto:$a@$b"); /* Redirect browser */ exit; ?> Der bliver stadigvæk en blank side hængende med et outlook ikon i adresselinien samt : mailto:anders@and.com
Jeg ser om jeg kan få fat på en PHP server.. enten i nat eller i morgen.. Jeg kan dog ikke love noget, da jeg har ting kørende på sidelinien.. :-)
OK.. så gik der 5 dage.. jeg har endnu ikke fået kigget på det.. Jeg ser lige om jeg kan få fat på en PHP server..
Vi tilbyder markedets bedste kurser inden for webudvikling