使用相同格式的PHP发送带有文件的隐藏输入

时间:2013-08-30 13:43:42

标签: php post

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

当我检查日志文件时,我什么也看不见。任何人都知道为什么?

谢谢, 泽索特

3 个答案:

答案 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中建议的值。