我需要将这两种方法一起传递一些数据(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'];
?>
这段代码安全吗?或者还有其他方法可以做到这一点?
答案 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。
它在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" >