0

我正在尝试将表单 $_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 一起正常工作。

任何人都可以帮助我吗?提前致谢。

4

2 回答 2

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'但我更喜欢使用一个对象并让库序列化它们。

于 2012-05-23T09:53:38.207 回答
0

我有同样的问题,除了一个简单的带有 POST 方法的 HTML FORM,而且我没有使用任何库,所以它必须是 linux/apache/php/mysql 的标准安装(php 是第 5 版)。

也许 POST 和 REQUEST 使用与 PHP 不同的库?也许不需要库,它与 somo INI 文件有关?谁知道,事实是,$_POST 数组不起作用。

于 2012-06-14T15:46:41.357 回答