0

我有一个现在具有照片上传功能的用户注册表单。但是,当用户(经常)不上传照片时,我会收到错误消息。但我希望能够让用户选择不上传照片,如果他们不想的话。

但是,它仍然会在数据库中插入所有其他值。

错误:警告:file_get_contents():第 25 行 /mounted-storage/home94c/sub005/sc13306-UHPW/tvproductionguide.com/add.php 中的文件名不能为空

警告:无法修改标头信息 - 标头已由 /mounted-storage/home94c/sub005/sc13306- 中的 /mounted-storage/home94c/sub005/sc13306-UHPW/tvproductionguide.com/add.php:25 发送UHPW/tvproductionguide.com/add.php 第 35 行

我是 PHP 新手,在编码时可能犯了几个错误(请原谅我的代码)。

表格很简单,应该没问题。除非有人需要,否则我不会在这里发布它。PHP页面代码为:

<?php include 'configdb.php'; 

 $name=$_POST['name'];
 $last_name=$_POST['last_name'];
 $position=$_POST['position'];
 $bio=$_POST['bio'];
 $experience=$_POST['experience'];
 $city=$_POST['city'];
 $phone=$_POST['phone'];
 $email=$_POST['email'];
 $website=$_POST['website'];

if (!isset($_FILES['image']['tmp_name'])) {
    echo "";
    }else{
    $file=$_FILES['image']['tmp_name'];
    $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name= addslashes($_FILES['image']['name']);

            move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" . $_FILES["image"]["name"]);

            $photo_location="photos/" . $_FILES["image"]["name"];
            $caption=$_POST['caption'];

            $save=mysql_query("INSERT INTO miamicrew (name, last_name, position, bio, experience, city, phone, email, website, photo_location, caption) VALUES ('$name','$last_name','$position','$bio','$experience','$city','$phone','$email', '$website','$photo_location','$caption')");
            header("location: added.php");
            exit();                 
    }
?> 
4

2 回答 2

1

尝试这个,

if (!isset($_POST['image'])) {
 $photo_location="";
        $caption="";


}else{
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);

        move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" . $_FILES["image"]["name"]);

        $photo_location="photos/" . $_FILES["image"]["name"];
        $caption=$_POST['caption'];

        $save=mysql_query("INSERT INTO miamicrew (name, last_name, position, bio, experience, city, phone, email, website, photo_location, caption) VALUES ('$name','$last_name','$position','$bio','$experience','$city','$phone','$email', '$website','$photo_location','$caption')");
        header("location: added.php");
        exit();                 
}
于 2013-06-30T21:45:37.953 回答
0

代码很乱,完全没有经过深思熟虑。这就是产生预期效果的方式。

if(strlen($_FILES['image']['tmp_name']) > 0)
{
    $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);

    if(move_uploaded_file($_FILES["image"]["tmp_name"], "photos/" . $_FILES["image"]["name"]) {
        echo "Success";
    } else {
        echo "Error";
        exit();
    }

    $photo_location = "photos/" . $_FILES["image"]["name"];
} 
else 
{  
    $photo_location="";
    $caption = $_POST['caption'];
}


$save = mysql_query("INSERT INTO miamicrew (name, last_name, position, bio, experience, city, phone, email, website, photo_location, caption) VALUES ('$name','$last_name','$position','$bio','$experience','$city','$phone','$email', '$website','$photo_location','$caption')");

header("location: added.php");
exit();
于 2013-06-30T21:49:32.447 回答