我有一个基于第三方ASP的服务器,它有一个PHP页面,它接收表单数据。在我的网页上,我有一个PHP脚本,它使用curl将字段发送到PHP页面。除非用户在文本中包含撇号字符,否则一切正常!在后端,它被收到“\”。
甚至更奇怪的是,它只能从我托管的网站上执行此操作。当我在本地测试它工作正常。
我的托管网站没有控件。我只需要处理我的php curl函数。
它在我的本地主机上运行良好。
这是示例代码
$this->headers[] = 'Accept: '. $_SERVER['HTTP_ACCEPT']; $this->headers[] = 'Connection: Keep-Alive'; $this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$post_var = 'post='.urlencode(stripslashes("it's Me Ali"));
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($this->ch, CURLOPT_HEADER, FALSE);
curl_setopt($this->ch, CURLOPT_USERAGENT, $this->USER_AGENT);
curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookie);
curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookie);
curl_setopt($this->ch, CURLOPT_COOKIE, $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/');
curl_setopt($this->ch, CURLOPT_ENCODING, "gzip");
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($this->ch, CURLOPT_URL, 'http://www.example.com/form.php');
curl_setopt($this->ch, CURLOPT_POST, TRUE);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post_var);
$get_page = curl_exec($this->ch);
echo $get_page;
curl_close($this->ch);
答案 0 :(得分:1)
Magic_quotes已启用,这不一定是好事,因为它现在被视为已弃用。
您只能在ini文件中启用此功能。如果你不能,请使用strip_slashes删除它们。
您可以遍历您的get和post vars以删除页面顶部的斜杠。