Blu*_*oid 4 php curl asp-classic
我有一个第三方服务器,它有一个传统的ASP页面,它接收表单数据.从我的网页上我有一个PHP脚本,它使用curl将字段发送到ASP页面.除非用户在文本中包含撇号字符,否则一切正常.在后端,它被收到"\".甚至更奇怪的是它只能从我的托管网站上做到这一点.当我在本地测试它工作正常.
以下是发送数据的PHP代码段:
$datatopost = array ();
foreach($_POST as $key => $data) {
$datatopost[$key] = $data;
}
$ch = curl_init("http://my.server.com/validate.asp");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datatopost);
$result = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
您可能需要在该特定服务器中禁用Magic Quotes:http://php.net/manual/en/security.magicquotes.php
此外,您可以将此代码添加到脚本的顶部(更好的是,在每个页面中包含的库中),因此无论环境如何,您都可以将魔术引号反转:
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>
Run Code Online (Sandbox Code Playgroud)
取自http://php.net/manual/en/security.magicquotes.disabling.php