【发布时间】:2016-09-30 11:43:20
【问题描述】:
我有这个表格,可以为特定的人或数据上传图片。但是一旦我点击上传按钮,下一页不会从上一页获得id。这是为什么?代码如下:
这是我的表单上传代码:
<form action="upload_photo.php?id=$id" method="POST" enctype="multipart/form-data">
Upload Photo:
<input type="file" name="image"><br>
<input type="submit" value="Upload Image" name="submit">
</form>
这是upload_photo.php的代码:
<?php
include '../session.php';
require_once 'config.php';
if (isset($_POST['submit'])) {
$imageName = mysqli_real_escape_string($conn, $_FILES["image"]["name"]);
$imageData = mysqli_real_escape_string($conn, file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysqli_real_escape_string($conn, $_FILES["image"]["type"]);
if (substr($imageType, 0,5) == "image") {
$query = "UPDATE `crew_info` SET `image_name` = ?, `updated_photo` = ? WHERE `id` = ?";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, 'ssi', $imageName, $imageData, $_GET['id']);
mysqli_stmt_execute($stmt);
}
else {
echo "Image not Uploaded!";
}
}
?>
我尝试使用var_dump($_GET);,但id 的等价物是$id
有人能帮助我吗?谢谢
【问题讨论】:
-
最好的方法是什么?
-
$id => <?php echo $id ?> -
为什么还要将其作为查询字符串附加 - 只需将其作为隐藏表单字段放入:
<input type="hidden" name="id" value="<?= $id; ?>" />然后它将在$_POST['id']中可用 -
顺便说一句,如果您使用的是准备好的语句,则无需对
mysqli_real_escape_string进行处理-绑定参数时会对其进行整理。
标签: php forms file-upload upload get