2016-09-10 3 views
1

J'ai utilisé la fonction safe_mailto() dans CodeIgniter 3.1.0 mais il semble que cela ne fonctionne pas comme cela est décrit dans les documents. Ceci est mon code:La fonction safe_mailto CodeIgniter n'obscurcit pas l'adresse e-mail

<?php 
$this->load->helper('url'); 
echo safe_mailto('[email protected]'); 
?> 

Comme document indique, cette fonction la version obscurcie de la balise mailto utilisant des nombres ordinaux écrits avec JavaScript pour aider à prévenir l'adresse e-mail d'être récoltés par les robots collecteurs de mails. Mais ce que je reçois comme résultat (en copiant la destination de lien) est juste la forme simple d'adresse email écrite.
Y a-t-il quelque chose qui manque ici?

Répondre

1

Oui, cela fonctionne. Vérifiez la source HTML de votre page.

Chargez votre page avec le mailto de sécurité, puis regardez la source de la page, trouvez le lien, il n'est pas là. Javascript le décode pour l'écran, mais un grattoir d'URL ne le verra pas, comme dans la source, il est tout javascript.

Lien codé:

<?php echo safe_mailto('[email protected]', 'Click Here to Contact Me'); ?> 

Lien apparaît comme:

Click Here to Contact Me 

Inspecter l'élément apparaît comme:

<a href="mailto:[email protected]">Click Here to Contact Me</a> 

code source est en fait:

<script type="text/javascript"> 
//<![CDATA[ 
var l=new Array(); 
l[0] = '>'; 
l[1] = 'a'; 
l[2] = '/'; 
l[3] = '<'; 
l[4] = '|101'; 
l[5] = '|77'; 
l[6] = '|32'; 
l[7] = '|116'; 
l[8] = '|99'; 
l[9] = '|97'; 
l[10] = '|116'; 
l[11] = '|110'; 
l[12] = '|111'; 
l[13] = '|67'; 
l[14] = '|32'; 
l[15] = '|111'; 
l[16] = '|116'; 
l[17] = '|32'; 
l[18] = '|101'; 
l[19] = '|114'; 
l[20] = '|101'; 
l[21] = '|72'; 
l[22] = '|32'; 
l[23] = '|107'; 
l[24] = '|99'; 
l[25] = '|105'; 
l[26] = '|108'; 
l[27] = '|67'; 
l[28] = '>'; 
l[29] = '"'; 
l[30] = '|109'; 
l[31] = '|111'; 
l[32] = '|99'; 
l[33] = '|46'; 
l[34] = '|101'; 
l[35] = '|116'; 
l[36] = '|105'; 
l[37] = '|115'; 
l[38] = '|45'; 
l[39] = '|121'; 
l[40] = '|109'; 
l[41] = '|64'; 
l[42] = '|101'; 
l[43] = '|109'; 
l[44] = ':'; 
l[45] = 'o'; 
l[46] = 't'; 
l[47] = 'l'; 
l[48] = 'i'; 
l[49] = 'a'; 
l[50] = 'm'; 
l[51] = '"'; 
l[52] = '='; 
l[53] = 'f'; 
l[54] = 'e'; 
l[55] = 'r'; 
l[56] = 'h'; 
l[57] = ' '; 
l[58] = 'a'; 
l[59] = '<'; 

for (var i = l.length-1; i >= 0; i=i-1) { 
    if (l[i].substring(0, 1) === '|') document.write("&#"+unescape(l[i].substring(1))+";"); 
     else document.write(unescape(l[i])); 
    } 
    //]]> 
</script> 

D'où il est obfusqué.

Espérons que cela aide.

Paul.

+0

Merci PaulD. C'est vrai. Je l'avais vérifié avec l'élément d'inspection et l'adresse électronique était visible. Mais dans la source il n'y a pas d'email ... –