1


0

私はphpを通してエコーされる基本的なHTMLフォームを持っています:


pkの値をup.phpに渡したい

action = "up.php?pk = $ pk"を変更しても機能しませんでした。

4 Answer


13


隠しフィールドを使う:


ところで、あなたが持っているように大量のHTMLを印刷することは_ugly_です。 HEREDOC、テンプレートエンジン、またはフレームワークを使用して、PHPから抜け出すことを検討してください。

編集

下記のように、最初にサニタイズせずにGETおよびPOSTデータをページに出力しないでください。 pkが主キーであると仮定すると、http://www.php.net/intval [intval]関数を使用して、上記の `+ $ pk +`を最小値でラップする必要があります。


2


$ _GET ['pk']変数のある種の入力制御に関するすべてのコメントに同意します。 私はphpのfilterモジュールをお勧めします。これはほとんどデフォルトのインストール済みモジュールです。

ファイル名:

あなたはここでフィルタモジュールについてのより多くの情報を見つけることができます:

私はPaolo Bergantinoにも同意します。これはそれを行う最も良い方法ではありません、そしてテンプレートエンジン、heredocs、またはregexpはシステムの読みやすさと保守性を向上させるより良い方法になるかもしれません。


1


一重引用符で囲まれた文字列内で変数を使用することはできません。

$ pk = 123。 echo 'Hello $ pk'; // echos Hello $ pk echo "Hello $ pk"; // echosこんにちは123エコー 'こんにちは'。 $ pk; // echosこんにちは123

それを通過させる最善の方法は、フォーム内の隠しフィールドとしてです。


0


このように試してみてください:


もちろん、$ _GET ["pk"]にはほとんど何も含まれているかもしれないことに注意してください。そこで、ある種の入力サニタイズについて考えてください。