9

これらの2つのメソッド(GET AND 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

4 に答える 4

14

これは、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また、ファイルをアップロードしない場合は、のを設定する必要はありません<form>

于 2012-06-11T09:57:31.813 に答える
3

両方を使用して、GETまたはPOSTの代わりにREQUESTを使用して取得できます。同じ名前のパラメーターを使用すると、デフォルトで「request-order」オーダーのGETを取得してからPOSTを取得します。

http://php.net/request-order

php.iniにあります

于 2012-06-11T10:02:22.887 に答える
1

これの方が良い :

<form method="post" action="profile.php?id=<?php echo urlencode($_SESSION['id'])); ?>">
于 2012-06-11T09:59:12.187 に答える
-1

フォーム条件にメソッド属性を記述せず、入力にformmethod = ""属性を追加します...例:

<input type="submit" formmethod="get"  name="inputGet" value="updateGet" >
<input type="submit" formmethod="post" name="inputPost" value="updatePost" >
于 2018-03-03T06:35:45.440 に答える