...

View Full Version : Using javascript in a php document



Retired Bill
11-16-2006, 03:53 PM
I have exhausted my library of PHP and JAVASCRIPT books and can still not get my code to do what I need it to do. I am trying to hide an email link from spiders so that I will not be as vulnerable to spammers. The link is in a menu which is in table form. Can someone spot where I've gone wrong? This is the function I defined. It is in a document named mail.js:

function HideEmail()
{
var string1 = "foo";
var string2 = "@";
var string3 = "bar.biz";
var string4 = "Contact Us";
document.write("<a href=" + "mail" + "to:" + string1 +
string2 + string3 + ">" + string4 + "</a>");
}


I placed this command in the heading of the page. This one of two external js files used on my page:

<script src="mail.js" language="JavaScript" type="text/javascript"></script>

This is where I call the function in the document:

<php? print "<td width=\"20%\"><div align=\"center\" class=\"style1\"><script language=\"javascript\" type= \"text/javascript\">HideEmail();</script>"; ?>


This is what I see when I view the page in the browser:

"; ?>

devinemke
11-16-2006, 05:06 PM
look very closely at your opening PHP tag

UberDragon
11-16-2006, 05:22 PM
I developed a PHP function to do this already:

Function:

function SecureEmail($email,$subject=''){

$myRand = rand(0000,9999);


for ($count=0;$count<strlen($email);$count++) { // convert email to ascii values
$ascEmail .= ord(substr($email,$count,1));
if ($count < strlen($email)-1) { $ascEmail .= ','; }
}


// We start building the Secure Link in Javascript
$link = '<script type="text/javascript">';
$link.= chr(10)."/********************************************************************".chr(10)."* SecureEmail.php - Protect mailto links from harvester bots".chr(10)."* Developed by Shane Kretzmann at www.WalkerSystemsSupport.com".chr(10)."* *******************************************************************/".chr(10);
$link.= chr(10).chr(9).'var emailarray'.$myRand.'= new Array(';
$link.= $ascEmail.')'.chr(10).chr(9);
$link.= "var postemail$myRand=''".chr(10).chr(9);
$link.= 'for (i=0;i<emailarray'.$myRand.'.length;i++)'.chr(10).chr(9).chr(9);
$link.= 'postemail'.$myRand.'+=String.fromCharCode(emailarray'.$myRand.'[i])'.chr(10).chr(9);
$link.= 'document.write(\'<a href="mailto:\'+postemail'.$myRand.'+\'?subject='.$subject.'">\'+postemail'.$myRand.'+\'</a>\')'.chr(10);
$link.= '</script>';

return $link; // Echo the code that will produce the secure email link in Javascript Code

}

Usage:

echo SecureEmail('Me@MyDomain.com');
echo SecureEmail('Me@MyDomain.com','Optional Email Subject Here');

Output:

<script type="text/javascript">
/********************************************************************
* SecureEmail.php - Protect mailto links from harvester bots
* Developed by Shane Kretzmann at www.WalkerSystemsSupport.com
* *******************************************************************/

var emailarray5280= new Array(77,101,64,77,121,68,111,109,97,105,110,46,99,111,109)
var postemail5280=''
for (i=0;i<emailarray5280.length;i++)
postemail5280+=String.fromCharCode(emailarray5280[i])
document.write('<a href="mailto:'+postemail5280+'?subject=">'+postemail5280+'</a>')
</script>

Enjoy!

~UberDragon

Retired Bill
11-16-2006, 05:47 PM
Thanks for the second pair of eyes. Mine don't seem to be working very well. Maybe it's my new glasses.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum