我想将带有相同格式文件的隐藏输入数据发送到php脚本,但问题是由于某种原因我无法读取隐藏的数据,它什么都没读:
<form id="C2" method="post" enctype="multipart/form-data" action='/phps/upload_file.php'>
<input type="hidden" name="ID" value="C2" />
Profile picute <input type="file" name="photo01" /><br>
Pic 2 <input type="file" name="photo02" /><br>
Pic 3 <input type="file" name="photo03" /><br>
<input type="submit" value="Send files" />
</form>
upload_file.php开头看起来像这样:
require_once('login.php');
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$ID= $_REQUEST['ID'];
error_log("File ID:".$ID."\n\n"); // I see nothing in the log file
//*****Connect to SQL********
$db_server = mysqli_connect($db_hostname, $db_username, $db_password);
if(!$db_server) die("Unable to connect to MYSQL:" .mysqli_error());
mysqli_select_db($db_server, $db_database)
or die("Unable to select database:" . mysqli_error());
$query = "SELECT current_pn,pic_path FROM partnum WHERE PNID = " . '$ID';
$queried = mysqli_query($db_server, $query);
$array = mysqli_fetch_array($queried);
当我检查日志文件时,我什么也看不见。任何人都知道为什么?
谢谢, 泽索特
答案 0 :(得分:0)
只需回显$ _POST ['ID'];死掉;并删除下面的其余代码并检查您是否能够获得其中的值,如果是,那么问题出在您的其余代码中。尝试启用错误报告,以便您可以轻松查看最新的问题。
答案 1 :(得分:0)
向我们展示您在POST中拥有的数据,您将找到问题所在。
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
var_dump($_POST);
P.S。 isset($_POST)
没有意义,因为变量$ _POST总是被设置,所以简单的if ($_POST) {
就足够了。
答案 2 :(得分:0)
“现在我将变量名称从ID更改为id_photo并且正在工作,谢谢。”
根据我原来的评论:
“尝试将隐藏的表单字段名称重命名为id_photo
,看看是否有帮助。”
使用ID
作为变量不是建议使用的值,因为它可能会导致其他地方的冲突,例如在数据库中。
在查看OP的代码后,应该使用以下代码:
if(isset($_POST['ID'])
代替if(isset($_POST)
,因为$_POST
是一个自动全局,并且始终设置。
需要检查是否已设置值,而不是全局POST值或Glavić在answer given中建议的值。