2012-05-22 2 views
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"); 
        } 
    } 
} 
?> 

этот код является хорошо работает, когда я выбираю изображение для загрузки. но в некоторых случаях мне не нужно загружать изображение, но остальная часть поля формы должна быть загружена на сервер. Когда я пытаюсь отправить форму без выбора изображения, она показывает мне пустую страницу, и ничего не происходит. Я не могу понять, где ошибка. если кто-то может мне помочь.

ответ

1

Обновить код, чтобы добавить эту проверку, чтобы увидеть, если файл был действительно загружен:

if ($_FILES['image']['error'] == UPLOAD_ERR_OK) { 
+0

это решил мой проблема. я просто поместил это в свой код, и теперь он хорошо разбирается. bt Я не знаю, как этот код исправить мою ошибку .... в любом случае спасибо, сэр ..... – Yasitha

0

Ваша проблема может быть с if(!empty($_FILES['image'])){ как вы говорите, он работает прекрасно, когда вы загружаете изображение, но вы получаете пустую страницу, когда вы не загружаете изображение.

Я бы print_r($_FILES['image]), когда вы не загружаете изображения и не видите, что отправляется. Я подозреваю, что ваш empty() все еще подбирает что-то, возможно, массив.

Также делайте то, что предлагалось в davidethell.

+0

Я сделал это, он не показал мне никаких подсказок .. bt я добавил код Mr.daviedethell, затем он отлично работает .. Спасибо вам, сэр ... – Yasitha