我正在尝试将表单$ _REQUEST切换为$ _POST,因为它更安全。 我在server.php中有以下代码:
if (isset($_REQUEST['mode']) && $_REQUEST['mode']=='verwijderturf'){
$sql="SELECT * FROM users WHERE Naam='".cleanInput($_REQUEST['naam'])."'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count > 0){
$date2 = date("Y-m-d");
$naam2 = cleanInput($_REQUEST['naam']);
$door = cleanInput($_REQUEST['door']);
mysql_query("INSERT INTO turfjes
VALUES (
'Adtje',
'".$naam2."',
'',
'".$date2."',
'".$door."')")
or die (mysql_error());
}
}
完美无缺。 但是,当我将所有$ _REQUEST切换到$ _POST时,我的server.php没有做任何事情......
我正在使用ajax请求将数据发送到我的服务器。 例如:
function verwijderturf() {
var naam = $("naam").value;
$("naamnieuw").value = "";
$("naam").value = "";
$("redennieuw").value = "";
new Ajax.Request('server.php?mode=verwijderturf&naam='+naam+'&door='+$("door2").value,{
method: 'post',
onSuccess: update,
onFailure: ajaxFailure
});
}
正如你所看到的,我的ajax方法是'post',所以它应该可以正常使用$ _POST。
有人能帮帮我吗? 提前谢谢。
答案 0 :(得分:3)
您需要提供参数作为POST参数,而不是GET。您使用的是哪个Javascript库?
即。对于jQuery,它将是
jQuery.ajax('server.php',{
data: {
'mode': 'verwijderturf',
'naam': naam,
'door': $("door2").value
},
type: 'post',
success: update,
error: ajaxFailure
});
原型示例:
new Ajax.Request('server.php',{
parameters: {
'mode': 'verwijderturf',
'naam': naam,
'door': $("door2").value
},
method: 'post',
onSuccess: update,
onFailure: ajaxFailure
});
data
(jQuery)和parameters
(Prototype)是一个键/值对象,代表所有POST参数。在这两个库中,这可能是一个序列化的字符串,如'key=value&key2=value'
,但我更喜欢使用一个对象,让库序列化它们。
答案 1 :(得分:0)
我有同样的问题,除了使用POST方法的简单HTML FORM,我没有使用任何库,因此它必须是linux / apache / php / mysql的标准安装(php是版本5)
也许POST和REQUEST使用PHP的不同库?也许不需要库,它与somo INI文件有关?谁知道,事实是,$ _POST数组不起作用。