1

我想将带有相同格式文件的隐藏输入数据发送到 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);

当我检查日志文件时,我什么也看不到。有人知道为什么吗?

谢谢, Zsolt

4

3 回答 3

0

只需 echo $_POST['ID'];die; 并删除以下其余代码并检查您是否能够在那里获得值,如果是,那么问题出在您的其余代码中。尝试启用错误报告,以便您可以轻松检查真正的问题。

于 2013-08-30T14:04:15.087 回答
0

“现在我将变量名称从 ID 更改为 id_photo 并且它正在工作,谢谢。”

根据我原来的评论:

“尝试将您的隐藏表单字段名称重命名为id_photo,看看是否有帮助。”

作为变量的使用ID不是建议使用的值,因为它可能会在其他地方导致冲突,例如在数据库中。

编辑

在浏览了 OP 的代码之后,应该使用了以下代码:

if(isset($_POST['ID'])而不是if(isset($_POST)since$_POST是一个自动全局变量,并且总是被设置。

它需要检查是否设置了一个值,而不是一个全局 POST 值,或者正如 Glavić 在给出的答案中所建议的那样。

于 2013-08-30T14:07:46.707 回答
0

向我们展示您在 POST 中拥有的数据,您会发现问题所在。

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
    var_dump($_POST);

psisset($_POST)没有意义,因为变量 $_POST 总是设置的,所以简单if ($_POST) {就足够了。

于 2013-08-30T14:07:04.447 回答