Php Echo在不应显示时显示

Php Echo在不应显示时显示,php,html,Php,Html,您好,我对下面的代码有问题,因为某种原因,当我加载文件时会显示echo,启动时会显示echo。关于如何解决这个问题,有什么想法吗? if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "<a href='http://$url/files/". basename( $_FILES['uploadedfile']['name'])."'>Download</a&

您好,我对下面的代码有问题,因为某种原因,当我加载文件时会显示echo,启动时会显示echo。关于如何解决这个问题,有什么想法吗?
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "<a href='http://$url/files/".  basename( $_FILES['uploadedfile']['name'])."'>Download</a>";
} else{
    echo "There was an error uploading the file, please try again!";
}
?>
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="99999999999999999">
<input name="uploadedfile" type="file"><br>
<input type="submit" value="Upload">
</form>
if(移动上传的文件($\u文件['uploadedfile']['tmp\u name'],$target\u路径)){
回声“;
}否则{
echo“上传文件时出错,请重试!”;
}
?>


回声显示,因为您有一个if语句,在加载页面上,它总是false。先用一个带isset的if,如下所示:

 if(isset($_POST['uploadedfile'])){
        if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
            echo "<a href='http://$url/files/".  basename( $_FILES['uploadedfile']['name'])."'>Download</a>";
        } else{
            echo "There was an error uploading the file, please try again!";
        }
    }
        ?>
        <form enctype="multipart/form-data" action="" method="POST">
        <input type="hidden" name="MAX_FILE_SIZE" value="99999999999999999">
        <input name="uploadedfile" type="file"><br>
        <input type="submit" value="Upload">
        </form>
if(isset($\u POST['uploadedfile'])){
如果(移动上传的文件($上传文件['uploadedfile']['tmp\U名称'],$target\U路径)){
回声“;
}否则{
echo“上传文件时出错,请重试!”;
}
}
?>

如果不发布更多的信息/代码,并指定echo正在显示的内容,则应执行此操作。。。thx


将name=“submit”这样的名称添加到按钮中,并在按钮名称上进行isset,或者在表单名称上输入type=“hidden”,这样会更简洁。

您从来没有检查过帖子是否确实执行过,也没有检查上传是否确实成功永远不要假定成功。始终假定失败,并将成功视为惊喜:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if ($_FILES['uploadedfile']['error'] !== UPLOAD_ERR_OK) {
        die("Upload failed with error code {$_FILES['uploadedfile']['error']}");
   }
   ... do your upload processing here
}

我会给你一个答案,看看是否可以结束这个问题


命名您的提交按钮
然后将您的PHP封装在
if(isset($\u POST['submit']){…}


另一种方法是使用两个独立的文件

比如说。HTML表单

handler.php(同时保留命名提交按钮)

if(isset($\u POST['submit'])){
如果(移动上传的文件($上传文件['uploadedfile']['tmp\U名称'],$target\U路径)){
回声“;
}否则{
echo“上传文件时出错,请重试!”;
}
}//if的括号(isset($\u POST['submit']))

命名您的提交按钮
然后将您的PHP封装在
if(isset($\u POST['submit']){…}
我注意到您发布了一些问题。如果有人解决了你以前遇到的问题,考虑接受它们。要了解如何做到这一点,请访问它的堆栈系统的工作原理;)“谢谢你!工作:D”-我给了你上面的答案,并将其作为下面的答案,然后你接受了其他人的。。。怎么回事?
if(isset($_POST['submit'])){

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "<a href='http://$url/files/".  basename( $_FILES['uploadedfile']['name'])."'>Download</a>";
    } else{
        echo "There was an error uploading the file, please try again!";
    }

} // brace for if(isset($_POST['submit']))