2012-05-23 54 views
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。

任何人都可以帮助我吗? 在此先感谢。

回答

3

您需要提供参数作为POST参数,而不是GET。您使用哪个Javascript库?

I.e. 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(原型)是一个键/值对象和表示所有POST参数。在这两个库中,这可能是一个序列化的字符串,如'key=value&key2=value',但我更喜欢使用一个对象并让它们序列化它们。

+0

非常感谢您准确快速的回复,我不知道。我可以在8分钟内接受答案,我会这样做。 – user1390504

+0

不客气。 ;) – GodLesZ

+0

看起来他正在使用原型 – Ikke

0

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

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

相关问题