www.webdeveloper.com
Results 1 to 6 of 6

Thread: [RESOLVED] Outputting JavaScript with PHP

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

    resolved [RESOLVED] Outputting JavaScript with PHP

    Having a small problem with quotes and single quotes - I think. I am using PHP to generate a JavaScript email hider and it's ALMOST working... half the URL is being output and it appears to hang on a quote or single quote...

    This generator will enable users to scramble their email addresses (to hide it from SpamBots) using PHP.

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

    Here is the code:

    PHP 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
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,330
    This...
    PHP Code:
    echo "'&quot;>Contact Us</a>')\n"
    ...should be...
    PHP Code:
    echo "'\">Contact Us</a>')\n"
    PS: You could probably save yourself some grief by making use of the PHP HEREDOC syntax, instead of all those separate echo statements, plus then you don't have to do quite so much escaping of quotes.
    PHP Code:
    <?php
    echo <<<EOD
    <script type='text/javascript'>
    alert("You can use double quotes and 'single quotes' and interpolate 
    $variables.")
    </script>
    EOD;
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  3. #3
    Join Date
    Jun 2008
    Location
    Europe
    Posts
    1,097
    Thanks for that!

    BTW - I resolved this just before loggin in...
    Thanks for the help!

  4. #4
    Join Date
    Jun 2008
    Location
    Europe
    Posts
    1,097

    Cool Thanks nog dog!!!!

    Wow!

    Thanks for that EOD tip... that is fantastic and has saved me a TON of time and headaches...

    One question:

    What is the difference between using

    <<<EOD

    and

    <<<EOT

    ??????????????????
    Last edited by donatello; 07-06-2011 at 02:07 AM. Reason: syntax

  5. #5
    Join Date
    Oct 2008
    Location
    U.S.
    Posts
    726
    What is the difference between using

    <<<EOD

    and

    <<<EOT

    ??????????????????
    None really, could be:
    Code:
     
    $someString = <<<Supercalifragilisticexpialidocious
    As long as the <b>ending</b>
    is the same as the <b>beginning</b> tag name you chose,
    as a tag name is essentially what you are supplying to the
    opening and closing delimiters of the heredoc.
    Supercalifragilisticexpialidocious;
    echo $someString;

  6. #6
    Join Date
    Aug 2010
    Location
    Ohio
    Posts
    136
    the text on the line following the three less than symbols (<<<) becomes the terminating delimiter for that string block. It must be the first thing on the line in order to terminate the string, that text can be whatever you want it to be and shown in astupidname's post. This is called heredoc style syntax. Read more on it here -> http://www.php.net/manual/en/languag...syntax.heredoc

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