How To Protect Special Characters in Query String

Q

How To Protect Special Characters in Query String? - PHP Script Tips - Processing Web Forms

✍: FYIcenter.com

A

If you want to include special characters like spaces in the query string, you need to protect them by applying the urlencode() translation function. The script below shows how to use urlencode():

<?php
  print("<html>");
  print("<p>Please click the links below"
    ." to submit comments about FYICenter.com:</p>");
  $comment = 'I want to say: "It\'s a good site! :->"';
  $comment = urlencode($comment);
  print("<p>"
    ."<a href=\"processing_forms.php?name=Guest&comment=$comment\">"
    ."It's an excellent site!</a></p>");
  $comment = 'This visitor said: "It\'s an average site! :-("';
  $comment = urlencode($comment);
  print("<p>"
    .'<a href="/processing_forms.php?'.$comment.'">'
    ."It's an average site.</a></p>");
  print("</html>");
?>

If you copy this script as submit_comments.php to your Web server, and click the first link, you will get:

  query_string = name=Guest&comment=
    I+want+to+say%3A+%22It%27s+a+good+site%21+%3A-%3E%22
Number of values: 2
  name = Guest
  comment = I want to say: "It's a good site! :->"

If you click the second link, you will get:

  query_string 
    = This+visitor+said%3A+%22It%27s+an+average+site%21+%3A-%28%22
Number of values: 1
  This_visitor_said:_\"It\'s_an_average_site!_:-(\" = 

Now you know that urlencode() all special characters into HEX numbers. To translate them back, you need to apply urldecode().

2007-04-22, 5540👍, 0💬