我有基本的html表单通过php回显:

<html>
<body>
<?php 
if (isset(

我有基本的html表单通过php回显:

<*>

我想将pk的值传递给up.php

修改动作=&quot; up.php?pk = $ pk&quot;没用。

GET["pk"])) { $pk =

我有基本的html表单通过php回显:

<*>

我想将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>

您可以在此处找到有关过滤器模块的更多信息:链接文字

我也同意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“]几乎可以包含任何东西,所以想想某种输入清理。

GET["pk"])) { $params = "?pk=" .

试试这样:

<*>

当然你应该知道$ _GET [&quot; pk“]几乎可以包含任何东西,所以想想某种输入清理。

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“]几乎可以包含任何东西,所以想想某种输入清理。

scroll top