将包含来自Javascript的&符号的URL传递给PHP到MySQL数据bsae

时间:2015-08-06 01:45:12

标签: javascript php mysql

目标:

我正在尝试将URL放入MySQL数据库。 该URL包含许多特殊字符。 导致问题的具体特征是&字符。 (只要字符串中没有&字符,该过程就能正常工作。)

我将URL从JavaScript传递给PHP脚本。

网址以Javascript中的http://www.example.com/?def&ghi开头。

然后我编码

rssURL = encodeURIComponent(rssURL);           // perform encode

在console.log中显示以下值

http%3A%2F%2Fwww.example.com%2F%3Fdef%26ghi%20 

我使用Javascript中的以下代码将URL发送到PHP脚本

xhr = new XMLHttpRequest();
xhr.open("POST", "updatecontent.php", true); 
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                
xhr.send(userdata);  

userdata变量包含:

“datastring” = username^password^rssURL^ varX^ varY

在PHP脚本中,我有以下代码

 $URLgroup= $_POST['datastring'];
 $datalist = explode ('^', $URLgroup); 
 $ws_user      = $datalist[0];
 $ws_pass      = $datalist[1];
 $ws_urlX       = $datalist[2]; 
  // this is the rssURL element passed from the Javascript
 $ws_url        = rawurldecode ($ws_urlX);   //  perform decode 
 $ws_title     = $datalist[3];
 $ws_category = $datalist[4];

我使用以下代码将URL放在数据库中

$sql = "INSERT INTO global_feeds_table (global_feed_category,    global_feed_name, global_feed_title, global_feed_link) 
       VALUES ( '$ws_category', '$ws_div_id', '$ws_title', '$ws_url') ";

名为global_feed_link的数据库字段现在包含以下网址

           http://www.example.com/?def&ghi

网址应该只包含一个“&”(在“def”之后和“ghi”之前)但它在“&”之后还有“amp;”。这就是问题

环境:

  • 在整个
  • 中使用UTF8编码
  • Windows 10
  • Google Chrome版本40
  • Dreamweaver 5(IDE)

0 个答案:

没有答案