Qp3k napisał(a)
Jak dziala ten skrypt? Jak z niego korzystac?
z którego ? tego mojego ? skrypt pisany dawno i nie prawda (jeszcze nawet miałem inny system wcięć i odstępów ;P), bez sensu, ładu i składu, zajmuje 70 x tyle ile powinien, troche przesadza, działa pewno na małej ilości przeglądarek itepe itede ale jak ktoś chce to źródło tej strony wygląda tak:
<?php
include('email.php');
function mail_link($email,$text){
return "<a onmouseover=\"return addHint(this,'".email($email)."')\" href=\"javascript:mlTo(this)\">$text</a>";
}
?>
<?= mail_link('[email protected]','mój mail') ?><br>
<?= mail_link('[email protected]','drugi mail') ?><br>
natomiast plik email.php wygląda tak:
<?php
$decode='abcdefghijklmnopqrstuvwxyz0123456789@._';
$encode='abcdefghijklmnopqrstuvwxyz!@#$%^&*()_-+|.:; []{}';
function tab($s){
for($w=Array(),$i=0;$i<strlen($s);$i++) $w[]=$s[$i];
return $w;
}
function arrayRand($tablica,$ile){
$ran=array_rand($tablica,$ile);
$wynik=Array();
foreach($ran as $klucz) $wynik[]=$tablica[$klucz];
return $wynik;
}
function encode($text,$de,$en){
for($wyn=$text,$i=0;$i<strlen($text);$i++)
if(($h=array_search($text[$i],$de))!==false) $wyn[$i]=$en[$h];
return $wyn;
}
$tdecod=arrayRand($dec=array_unique(tab($decode)),count($dec));
$tencod=arrayRand($enc=array_unique(tab($encode)),count($dec));
$klucz=implode('',$tdecod).implode('',$tencod);
function email($email){
global $tdecod, $tencod;
return encode($email,$tdecod,$tencod);
}
function mail_skrypt(){
global $klucz;
?><script language=JavaScript type="text/javascript"><!--
function decode(email){
for(wyn='',tab='<?= $klucz ?>',i=0;i<email.length;i++)
if((h=(tab.substring(tab.length/2,tab.length)).indexOf(email.charAt(i)))>=0)
wyn+=(tab.substring(0,tab.length/2)).charAt(h); else wyn+=email.charAt(i);
return wyn;
}
estatus='';
istatus=false;
function sstatus(r){
window.status=estatus;
if(istatus){ clearInterval(istatus); istatus=false }
if(!r) istatus=setInterval('sstatus(true)',50);
}
function stat(email){
if(!email){ estatus=''; sstatus(false) } else {
estatus='mailto:'+decode(email);
sstatus(false); return true;
}
}
function addHint(co,email){
if(!co.setup) with(co){
title=decode(email); onmouseout=function(){ stat() }
mail=email; href='mailto:'+decode(email); setup=true;
}
return stat(email)
}
function mlTo(co){ location.href='mailto:'+decode(co.mail) }
//--></script><?php
}
?>
w sumie niektórych fragmentów teraz nie rozumiem i nie wiem czemu tak napisałem :O teoretycznie też szyfr i wygląd maila w kodzie powinien się zmieniać z każdym odświeżeniem strony i tak było, a teraz na farvista na każdym razem otrzymuję to samo ... no cóż ... albo serwer sobie zaczął cacheować wyniki skryptów i nie przetwarza na nowo email.php, albo nagle zaczął wymagać generatora liczb pseudolosowych, albo niewidzialne proxy na wyjściu mi nie ściąga nowej wersji, albo mi cache szwankuje, albo kosmici to przerobili albo nie wiem