2012-07-19 126 views
1

,因爲有些天試圖清除我的錯誤與提供的圖片上傳到文件夾和鏈接到MySQL。我發佈已經是我的問題,但改變了一些代碼,這就是爲什麼我想再次發佈。對不起,如果我垃圾。PHP圖片上傳MySQL的

這是我的代碼 「住址,bearbeiten.php」

<?php 
require_once ('konfiguration.php'); 
$target = "images/"; 
$target = $target . basename($_FILES['photo']['name']); 

    function sanitize($input){ 
    return mysql_real_escape_string(htmlspecialchars(stripslashes(trim($input)))); 
    } 

    if(isset($_POST['title'])) 
     { 

      $title   = sanitize($_POST['title']); 
      $description = sanitize($_POST['description']); 
      $applepart  = sanitize($_POST['applepart']); 
      $partnumber  = sanitize($_POST['partnumber']); 
      $productcode = sanitize($_POST['productcode']); 
      $compatibility = sanitize($_POST['compatibility']); 
      $image   = sanitize($_FILES['photo']['name']); 
      $price   = sanitize($_POST['price']); 
      $insert   = mysql_query("INSERT INTO `adressbuch` (`title`,`description`,`applepart`,`partnumber`,`productcode`,`compatibility`,`photo`,`price`) VALUES ('$title','$description','$applepart','$partnumber','$productcode','$compatibility','$image','$price')"); 


      if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
      { 

      echo "The file ". basename($_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory"; 
      } 
      else { 

      echo "Sorry, there was a problem uploading your file."; 
      } 

      if (!$insert) 
      { 
       die('Not saved: ' . mysql_error()); 
     } 
    } 
?> 

     <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
      <span>Neuer Eintrag:</span> <br /> 
      <span>Title</span><input type="text" name="title" /> <br /> 
      <span>Description</span><textarea cols="16" rows="5" name="description"></textarea> <br /> 
      <span>Apple Part</span><input type="text" name="applepart" /> <br /> 
      <span>Part Number</span><input type="text" name="partnumber" /> <br /> 
      <span>Product Code</span><input type="text" name="productcode" /> <br /> 
      <span>Compatibility</span><input type="text" name="compatibility" /> <br /> 
      <span>Image</span><input type="file" name="photo" /> <br /> 
      <span>Price</span><input type="text" name="price" /> <br /> 
      <input type="submit" value="Speichern"/> <br /> 
     </form> 

MySQL的

CREATE TABLE IF NOT EXISTS `adressbuch` (
    `id` int(10) NOT NULL AUTO_INCREMENT, 
    `title` text, 
    `description` text, 
    `applepart` text, 
    `partnumber` text, 
    `productcode` text, 
    `compatibility` text, 
    `photo` text, 
    `price` text, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ; 

我得到的是下面

  • 公告中列出的錯誤:未定義指數:照片在 /Users/fatih/Sites/phpform/neu/adresse-bearbeiten.php上線11
  • 注意:未定義指數:照片 /Users/fatih/Sites/phpform/neu/adresse-bearbeiten.php上線18
  • 說明:未定義指數:照片 /用戶/法提赫/站點/ phpform/neu的/adresse-bearbeiten.php在線23
  • 抱歉,上傳您的文件有問題。

會很高興,如果有人能告訴我什麼我做錯了什麼? 問候

回答

3

我會檢查以下幾點:

  1. 是您的窗體的enctype設置爲multipart/form-data?它應該是。 (<form enctype="multipart/form-data">

  2. 當你在代碼的某個地方做echo '<pre>';print_r($_FILES);exit;會發生什麼?它會輸出關於您上傳的文件的一些信息嗎?這應該。

+0

他的表格不是多部分/表格數據 – Constantin 2012-07-19 19:23:20

+0

哦,我沒有看到底部的那個HTML。是的,kara,我不能保證你的代碼能夠正確的使用'enctype',但我可以保證它不會工作。 – 2012-07-19 19:28:03

+0

傑森謝謝我解決了它。無法看到multipart/form-data的缺失部分。我已經將它添加到表單中,全部解決了。非常感謝 – kara 2012-07-20 00:23:52

0

你檢查Apache的錯誤日誌?你對目標文件夾有權限嗎?

我一直在公司我的工作類似的系統,以及常見的錯誤我是:

1)目標文件夾的權限 1.1)www數據必須對目標文件夾的權限(如果您運行Linux) 2)在站點定義(啓用站點的文件夾)中設置某些指令的Apache配置,例如root_dir。這樣Apache可以限制對不在root_dir內的文件夾的訪問。 (例如/ var/www)。

Make a print_r($_FILES); 

做一次檢查與isset,看看是否有什麼事情來了,要不然就把東西。

例子:

$T3 = isset($_POST['T3']) ? $_POST['T3'] : NULL; 

你有沒有檢查錯誤PHP參考? 照片沒有設置,這意味着這個值是不是來和你要使用它。