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

处理过程中PHP脚本在屏幕上闪烁,php,Php,我有一个HTML表单,它运行两个单独的php脚本进行处理。一个是来自Tecite(formmail.php)的表单处理程序,另一个是创建上传图像数组(upload.php)并将它们发送到我服务器上的临时目录的脚本 除了在用户被重定向到成功页面之前出现的奇怪的代码闪现之外,一切都正常工作。代码似乎是upload.php创建的数组 我不知道如何消除处理过程中出现的这种代码闪现。您可以在pmd-fla.com/test.html上填写表格,现场查看。您需要上传至少一个图像文件,以便upload.php

我有一个HTML表单,它运行两个单独的php脚本进行处理。一个是来自Tecite(formmail.php)的表单处理程序,另一个是创建上传图像数组(upload.php)并将它们发送到我服务器上的临时目录的脚本

除了在用户被重定向到成功页面之前出现的奇怪的代码闪现之外,一切都正常工作。代码似乎是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;
}

php实际上是来自tecite的formmail.php。这是一个巨大的脚本,所以我不会在这里添加它。这个脚本确实包含错误检查和验证,但我认为问题在于upload.php脚本


正如您所见,upload.php同时包含echo和print命令,但我没有编辑文件而不破坏文件的脚本排印。

您需要查看file handlers.php以找到答案

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

正如Darragh Enright所说,我们需要查看代码,以便能够告诉您打印阵列的位置和原因

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

编辑:


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

print_r($img_desc);
这一行正在打印您看到的代码spinet,它看起来是对上传的总结

<?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;
}
您可以通过如下方式注释掉该行:
//打印($img\u desc)

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


您是否在任何地方回显或打印任何内容?可能是你在用它做任何事情之前就把它打印出来了有一些代码片段可能会有所帮助。您可以将“代码闪光”粘贴到此处吗?这可能是您按照@Will的建议在重定向之前打印出来的代码,也可能是您启用了错误报告并触发了某种通知/警告。无论哪种方式,没有代码示例,我们只能进行推测。我建议在重定向之前通过upload.php读入,以确定发生了什么。我猜您正在以某种方式打印post数组,它看起来像代码,但不是。没有你的代码,我们永远不会知道。感谢所有回应的人。非常感谢您的时间和努力。我已经用添加的代码更新了问题。我认为,正如大家所说,它与upload.php中的print函数有关,但我不清楚如何在不破坏它的情况下编辑代码。我试着删除echo“”;脚本工作正常,但并没有消除flash。$img保存的上传文件显然不是空的。如果(!empty($img))这一行正在打印您看到的代码spinet,它看起来是对上载的汇总。打印($img\u desc);您可以通过如下方式注释该行://print\u r($img\u desc);
print_r($img_desc);
<?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;
}