PHP脚本在处理过程中在屏幕上闪烁

时间:2018-09-21 12:43:53

标签: php

我有一个HTML表单,该表单运行两个单独的php脚本进行处理。一个是来自Tectite的表单处理程序(formmail.php),另一个是脚本,该脚本创建了一系列上传的图像(upload.php)并将其发送到服务器上的temp目录。

一切正常,除了在用户被重定向到成功页面之前出现的奇怪的代码闪烁之外。该代码似乎是由upload.php创建的数组。

我不知道如何消除在处理过程中出现的这种代码闪烁。您可以通过在pmd-fla.com/test.html上填写表格来实时查看它。您将需要至少上传一个图像文件,以触发upload.php脚本。

任何指导将不胜感激。

这是upload.php代码:

<?php
echo '<pre>';
$img = $_FILES['img'];

if(!empty($img))
{
    $img_desc = reArrayFiles($img);
    print_r($img_desc);

    foreach($img_desc as $val)
    {
        $newname = date('YmdHis',time()).mt_rand().'';
        move_uploaded_file($val['tmp_name'],'./uploads/'.$newname);
    }
}

function reArrayFiles($file)
{
    $file_ary = array();
    $file_count = count($file['name']);
    $file_key = array_keys($file);

    for($i=0;$i<$file_count;$i++)
    {
        foreach($file_key as $val)
        {
            $file_ary[$i][$val] = $file[$val][$i];
        }
    }
    return $file_ary;
}

handlers.php脚本只是简单地调用另外两个脚本:

<?php

  include('upload.php');
  include('relay2.php');

?>

relay2.php实际上是Tectite的formmail.php。这是一个巨大的脚本,因此我不会在此处添加。该脚本确实包含错误检查和验证,但我认为问题出在upload.php脚本上。

如您所见,upload.php包含echo和print命令,但是我没有脚本来编辑文件而不破坏文件。

2 个答案:

答案 0 :(得分:0)

您需要查看文件handlers.php以找到答案。

看着代码的闪烁,看起来好像有一个print_r函数正在打印程序用来评估提交的数据的数组。当我测试它时,似乎有一个错误计数器。

正如Darragh Enright所说,我们将需要查看代码才能告诉您确定要在何处以及为什么打印数组。

我怀疑正在打印数组,因为发现了错误。 错误是什么,为什么我现在不能说。

编辑:

$ img正在保存显然不是空的上载文件。

if(!empty($img))

此行正在打印您所看到的代码Spinet,看起来正在汇总上传内容。

print_r($img_desc);

您可以通过如下所示注释掉该行: //print_r($img_desc);

答案 1 :(得分:0)

再次感谢您的指导。我已经解决了这个问题,只需删除打印功能即可。新代码如下所示:

<?php
echo '<pre>';
$img = $_FILES['img'];

if(!empty($img))
{
    $img_desc = reArrayFiles($img);

    foreach($img_desc as $val)
    {
        $newname = date('YmdHis',time()).mt_rand().'';
        move_uploaded_file($val['tmp_name'],'./uploads/'.$newname);
    }
}

function reArrayFiles($file)
{
    $file_ary = array();
    $file_count = count($file['name']);
    $file_key = array_keys($file);

    for($i=0;$i<$file_count;$i++)
    {
        foreach($file_key as $val)
        {
            $file_ary[$i][$val] = $file[$val][$i];
        }
    }
    return $file_ary;
}

再次感谢您的指导。 @Steven Woods我赞成你的回答。干杯。