質問
phpを介してエコーされる基本的なhtmlフォームがあります:
<html>
<body>
<?php
if (isset( phpを介してエコーされる基本的なhtmlフォームがあります:
<*>
pkの値をup.phpに渡したい
修正アクション= quot; up.php?pk = $ pk&quot;動作しませんでした。
GET["pk"]))
{ $pk = phpを介してエコーされる基本的なhtmlフォームがあります:
<*>
pkの値をup.phpに渡したい
修正アクション= quot; up.php?pk = $ pk&quot;動作しませんでした。
GET["pk"];}
echo '<form action="up.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
?>
</body>
</html>
pkの値をup.phpに渡したい
修正アクション= quot; up.php?pk = $ pk&quot;動作しませんでした。
解決
非表示フィールドを使用:
<input type="hidden" name="pk" value="<?php echo $pk; ?>">
ところで、あなたが持っているような大量のHTMLを印刷するのは>いです。 HEREDOC、テンプレートエンジン、またはフレームワークを使用して、PHPからステップアウトすることを検討してください。
編集:
以下に示すように、最初にサニタイズしない限り、GETおよびPOSTデータをページに印刷しないでください。 pkが主キーであると仮定すると、 intval で上記の $ pk
をラップする必要があります関数、少なくとも 。
他のヒント
$ _ GET ['pk']変数のある種の入力制御に関するすべてのコメントに同意します。 phpのフィルターモジュールをお勧めします。これは、ほぼデフォルトでインストールされていると思われるモジュールです。
<html>
<body>
<?php
$param = filter_input(INPUT_GET, 'pk', FILTER_SANITIZE_ENCODED);
?>
<form action="up.php<?php echo (isset($param) && $param != false) ? '?pk=' . $params : ''); ?>" method="post"enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
フィルタモジュールの詳細については、リンクテキストを参照してください。 a>
また、Paolo Bergantinoにも同意します。これは最も美しい方法ではありません。テンプレートエンジン、heredocsまたはregexpは、システムの可読性と保守性を向上させるより良い方法です。
一重引用符で囲まれた文字列内で変数を使用することはできません:
$pk = 123;
echo 'Hello $pk'; // echos Hello $pk
echo "Hello $pk"; // echos Hello 123
echo 'Hello ' . $pk; // echos Hello 123
それを渡す最良の方法は、フォーム内の非表示フィールドとしてです
次のように試してください:
<html>
<body>
<?php
$params = "";
if (isset(次のように試してください:
<*>
もちろん、$ _ GET [&quot; pk&quot;]にはほとんどすべてのものが含まれている可能性があることに注意する必要があります。そのため、何らかの入力サニタイズについて考えてください。
GET["pk"]))
{ $params = "?pk=" . 次のように試してください:
<*>
もちろん、$ _ GET [&quot; pk&quot;]にはほとんどすべてのものが含まれている可能性があることに注意する必要があります。そのため、何らかの入力サニタイズについて考えてください。
GET["pk"];}
echo '<form action="up.php' . $params . '" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
?>
</body>
</html>
もちろん、$ _ GET [&quot; pk&quot;]にはほとんどすべてのものが含まれている可能性があることに注意する必要があります。そのため、何らかの入力サニタイズについて考えてください。