有没有办法一起使用GET和POST?

时间:2012-06-11 09:55:34

标签: php

我需要将这两种方法一起传递一些数据(GET和POST)。 我写这个方法,但我不知道它是否安全:

<form method="post" action="profile.php?id=<?php echo $_SESSION['id']; ?>" enctype="multipart/form-data">
<input type="text" size="40" name="title" >
<textarea name="description" rows="2" cols="30"></textarea>
<input id="starit" name="submit" value="Create" type="submit" />
</form>

<?php 
a= $_GET['id'];
b= $_POST['title'];
c= $_POST['description'];
?>

这段代码安全吗?或者还有其他方法可以做到这一点?

4 个答案:

答案 0 :(得分:13)

这不是GET和POST组合请求;相反,它是一个带有查询参数的POST请求。

你所写的是正确的方法。始终确保您获得预期的字段:

if (isset($_GET['id'], $_POST['title'], $_POST['description']) {
  // go ahead
}

顺便说一句,确保你逃避输出:

<form method="post" action="profile.php?id=<?php echo rawurlencode($_SESSION['id']); ?>">

如果您没有上传文件,则无需设置enctype的{​​{1}}。

答案 1 :(得分:2)

你可以使用两者并使用REQUEST代替GET或POST,使用相同的params名称,它将获得“请求 - 订单”命令GET,然后默认为POST。

http://php.net/request-order

它在php.ini

答案 2 :(得分:1)

这样更好:

<form method="post" action="profile.php?id=<?php echo urlencode($_SESSION['id'])); ?>">

答案 3 :(得分:-1)

不要在表单条件中编写方法属性 并添加 formmethod =&#34;输入中的&#34; 属性... 例如:

<input type="submit" formmethod="get"  name="inputGet" value="updateGet" >
<input type="submit" formmethod="post" name="inputPost" value="updatePost" >
相关问题