www.webdeveloper.com
Results 1 to 5 of 5

Thread: [RESOLVED] Outputting JavaScript via PHP

  1. #1
    Join Date
    Jun 2008
    Location
    Europe
    Posts
    1,096

    resolved [RESOLVED] Outputting JavaScript via PHP

    I'm building a generator that will enable users to scramble their email addresses (to hide it from SpamBots) using PHP.

    The script will output a simple Javascript.

    The script is hanging on the last few pieces... something with the single quote in the final echo line...

    You can see the test script here:
    http://privacypolicyonline.com/email-hider2.php

    Here is the code:
    PHP Code:
    <html>
    <head>
    <title>Email Hider</title>
    </head>
    <body>
    Enter Your Email Address and click 'create':<br />
    <form action="email-hider2.php" method="post">
    <input type="text" name="email">
    <input type="submit" value="Create!">
    </form>


    <?php 

    $string 
    $_POST['email'];

    $ent = array( 
    'a'=>'97,',
    'b'=>'98,',
    'c'=>'99,',
    'd'=>'100,',
    'e'=>'101,',
    'f'=>'102,',
    'g'=>'103,',
    'h'=>'104,',
    'i'=>'105,',
    'j'=>'106,',
    'k'=>'107,',
    'l'=>'108,',
    'm'=>'109,',
    'n'=>'110,',
    'o'=>'111,',
    'p'=>'112,',
    'q'=>'113,',
    'r'=>'114,',
    's'=>'115,',
    't'=>'116,',
    'u'=>'117,',
    'v'=>'118,',
    'w'=>'119,',
    'x'=>'120,',
    'y'=>'121,',
    'z'=>'122,',
    'A'=>'65,',
    'B'=>'66,',
    'C'=>'67,',
    'D'=>'68,',
    'E'=>'69,',
    'F'=>'70,',
    'G'=>'71,',
    'H'=>'72,',
    'I'=>'73,',
    'J'=>'74,',
    'K'=>'75,',
    'L'=>'76,',
    'M'=>'77,',
    'N'=>'78,',
    'O'=>'79,',
    'P'=>'80,',
    'Q'=>'81,',
    'R'=>'82,',
    'S'=>'83,',
    'T'=>'84,',
    'U'=>'85,',
    'V'=>'86,',
    'W'=>'87,',
    'X'=>'88,',
    'Y'=>'89,',
    'Z'=>'90,',
    '0'=>'48,',
    '1'=>'49,',
    '2'=>'50,',
    '3'=>'51,',
    '4'=>'52,',
    '5'=>'53,',
    '6'=>'54,',
    '7'=>'55,',
    '8'=>'56,',
    '9'=>'57,',
    '@'=>'64,',
    '-'=>'45,',
    '.'=>'46,',
    '_'=>'95,'
    ); 


    $raw strtr("$string"$ent);
    $raw str_replace(',]'']'$raw);


    ////// THIS PART PUTS IT INTO A TEXTBOX FOR COPY PASTE //////
    echo '<textarea rows="17" cols="100">';

    echo 
    '<script type="text/javascript">';
    echo 
    "\n";
    echo 
    '/*<![CDATA[*/';
    echo 
    "\n";
    echo 
    '/***********************************************';
    echo 
    "\n";
    echo 
    '* Tool from Privacy Policy Generator';
    echo 
    "\n";
    echo 
    '* URL: http://www.PrivacyPolicyOnline.com';
    echo 
    "\n";
    echo 
    '* **********************************************/';
    echo 
    "\n";
    echo 
    '<!-- Encrypt your email //-->';
    echo 
    "\n";
    echo 
    "var HiderArray=[$raw]\n";
    echo 
    "var ScrewedEmail='' //variable to contain encrypted email \n";
    echo 
    'for (var i=0; i<HiderArray.length; i++)';
    echo 
    "\n";
    echo 
    ' ScrewedEmail+=String.fromCharCode(HiderArray[i])';
    echo 
    "\n";

    echo 
    "document.write('<a href=\"mailto:'+ScrewedEmail+'\">Contact Us</a>')\n";
    echo 
    "\n";

    echo 
    '/*]]>*/';
    echo 
    "\n";
    echo 
    '</script>';
    echo 
    '</textarea>';
    echo 
    '<br /><hr /><br />';


    // THIS PART SHOULD BE A DEMO WITH A WORKING LINK //
    echo 'What it looks like:<br />';
    echo 
    '<script type="text/javascript">';
    echo 
    '/*<![CDATA[*/';
    echo 
    '/***********************************************';
    echo 
    '* Tool from Privacy Policy Generator';
    echo 
    '* URL:http://wwwPrivacyPolicyOnline.com';
    echo 
    '* **********************************************/';
    echo 
    '<!-- Encrypted version of: your email [at] **********.*** //-->';
    echo 
    "\n";
    echo 
    "var HiderArray=[$raw]\n";
    echo 
    "var ScrewedEmail='' //variable to contain encrypted email \n";
    echo 
    'for (var i=0; i<HiderArray.length; i++)';
    echo 
    "\n";
    echo 
    ' ScrewedEmail+=String.fromCharCode(HiderArray[i])';
    echo 
    "\n";
    echo 
    "document.write('<a href=\"mailto:'";
    echo 
    "+ScrewedEmail+";
    echo 
    "'&quot;>Contact Us</a>')\n";
    echo 
    '/*]]>*/';
    echo 
    "\n";
    echo 
    '</script>';

    ?>

  2. #2
    Join Date
    Jun 2008
    Location
    Europe
    Posts
    1,096
    Hmmm... no takers huh?

    I wasn't sure if I should post this under JavaScript or PHP, thinking about it, this would probably fit better under PHP as PHP is being used to process and output raw JS.

    Hopefully the mods won't mind if I repost this in PHP if there are still no replies...


  3. #3
    Join Date
    Aug 2007
    Posts
    3,767
    Your problem is that the JavaScript array still ends in ,] which is wrong, so
    Code:
    $raw = str_replace(',]', ']', $raw);
    isn't doing it's work correctly, and you're probably better able to say why than I am. Also highly recommend that you end all JavaScript statements in semi-colons.
    Great wit and madness are near allied, and fine a line their bounds divide.

  4. #4
    Join Date
    Dec 2003
    Location
    Bucharest, ROMANIA
    Posts
    15,428
    Quote Originally Posted by Declan1991 View Post
    Your problem is that the JavaScript array still ends in ,] which is wrong
    Which is not exactly wrong. Starting with JavaScript 1.5 (I guess), the arrays and the objects may be ended with ,] or ,} (same as in PHP, for instance). The only browser which has not implemented this feature is IE. Not very sure about IE9.

  5. #5
    Join Date
    Jun 2008
    Location
    Europe
    Posts
    1,096
    Thanks for the help...
    got it to work by breaking it up into little bits.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles