0

私はhtmlフォームを持っていて、それを使用して画像をサーバーにアップロードしました

    <form id="form1" name="form1" method="post" action="testimage.php" enctype="multipart/form-data" >   <table width="1000" border="0">
    <tr>
    <td width="108">ID</td>
    <td width="229">
      <input type="text" name="id" id="id" value="<?php if(isset($_GET['editcat'])){echo $_GET['editcat'] ;}; ?>" tabindex="1" />
   </td>
   <tr>
    <td>Image</td>
    <td>:</td>
    <td><input type="file" name="image" id="image" tabindex="7"  /></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>User</td>
    <td>:</td>
    <td><input type="text" name="user" id="user" value="<?php echo $user ; ?>" tabindex="8" /></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><?php if(isset($_GET['editcat'])){ ?> <input name="editcat" type="hidden" value="set" /> <?php }?> </td>
    <td><input type="submit" name="submit" id="submit" value="Add/Edit" tabindex="9" />                        </td>
    <td>&nbsp;</td>
  </tr>
</table> </form>

このフォームデータをphpファイルで取得します

       <?php session_start();
       $user_name = $_SESSION['username'];
       $user_pass = $_SESSION['password'];
       if ( $user_name == '' ) {
       header('location:login.php');
       exit();
       }
       ?>
       <?php require_once('connection.php');?>
        <?php require_once('function.php');?>
       <?php 
       $err = 0;
       if(!isset($_SESSION['msgback'])){
       $_SESSION['msgback'] = array();
       }else{
   unset($_SESSION['msgback']);
   $_SESSION['msgback'] = array();
       }
       if(isset($_POST['id'])){
   $id = $_POST['id'];
       }else{
   $id = "";
       }if(isset($_POST['user'])){
   $user = $_POST['user'];
       }else{
   $user="";
        }
       if(!empty($_FILES['image'])){
       $name= basename($_FILES['image']['name']); 
       move_uploaded_file($_FILES["image"]                                  ["tmp_name"],"Hants/admin/uploads/fron_sect/$name")or die(mysql_error());   
        }
         ?>
        <?php
        /////          
        if(isset($_POST['editcat'])){
     if($err == 0){
    if($_POST['id'] == ""){ $_SESSION['msgback'][] = "empty id"; }
        if(empty($_SESSION['msgback'])){
        $user_query = "
        UPDATE  
         pro_category 
        SET  
        `image`='$name',
    `update_user`='$user'
    WHERE  
        `id`='$id'";
        $user_result = mysql_query($user_query) or die(mysql_error());
    $_SESSION['msgback'][] = "Product category is updated sucesfully.";
    header('location:product_cat.php');
    }
   } 
    } 

    ////////Inserting a new Iteme////////
    if(!isset($_POST['editcat'])){ echo "editcat not set" ."<br/>";
   if($err == 0){ 
    if($_POST['id'] == "") {    
         $_SESSION['msgback'][] = "empty id";
        }
        if(empty($_SESSION['msgback'])){
          $user_query = "INSERT                            INTO `pro_category` (`section_id`,`category_name`,`description`,`position`,`visible`,`image`,`pro_view`,`update_user`) VALUES('{$secid}','{$catnam}','{$descrptn}','{$pstion}','{$visble}','{$name}','{$proview}','{$user}')
                                ";
$user_result = mysql_query($user_query) or die(mysql_error());
//if(mysql_affected_rows()){
//$_SESSION['user_name'] = $username;
$_SESSION['msgback'][] = "Successfuly Added";
header('location:product_cat.php');
                    //}
                }else{
                $_SESSION['msgback'][] = "Not Successfuly Added";
                    header('location:product_cat.php');
                //redirect_to("product.php?msgback=msgerr");
                    }
    }
}
?>

このコードは、アップロードする画像を選択するとうまく機能します。ただし、場合によっては、画像をアップロードする必要はありませんが、フォームフィールドの残りの部分をサーバーにアップロードする必要があります。画像を選択せず​​にフォームを送信しようとすると、空白のページが表示され、何も起こりません。エラーがどこにあるのかわかりません。誰かが私を助けることができれば。

4

2 に答える 2

1

コードを更新してこのチェックを追加し、ファイルが実際にアップロードされたかどうかを確認します。

if ($_FILES['image']['error'] == UPLOAD_ERR_OK) {
于 2012-05-22T09:05:53.470 に答える
0

あなたが言うように、あなたの問題はif(!empty($_FILES['image'])){画像をアップロードするときは完全にうまくいくかもしれませんが、画像をアップロードしないときは空白のページを受け取ります。

画像をアップロードしていないprint_r($_FILES['image])ときに、何が送信されているかを確認します。あなたempty()はまだ何かを拾っているのではないかと思います。

また、提案されているようにdavidethellを実行します。

于 2012-05-22T09:08:31.927 に答える