2015-08-21 33 views
-1

我正在這裏工作。在網站的一部分上,管理員可以上傳圖片,並將其存儲在服務器上,並根據位置和上傳時間輸入數據庫。PHP不能正常工作本地主機

我在本地工作,但使用WAMP作爲測試服務器。如果我手動運行localhost/includes/db.php(數據庫連接)在地址欄中,我可以看到它連接,因爲我得到「連接成功」。

<?php 

try { 

    $dbname = "woody_tools"; 
    $user = "site"; 
    $pass = "site"; 
    $host = "localhost"; 


    # MySQL with PDO_MYSQL 
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 
    } 

catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 

?> 

這是我使用管理員選擇並上傳圖片的頁面的窗體控件。

<form action="includes/saveimage.php" enctype="multipart/form-data" method="post"> 

      <table style="border-collapse: collapse; font: 12px Tahoma;" border="1" cellspacing="5" cellpadding="5"> <!-- Table to upload products --> 
      <tbody> 
      <tr> 
       <td><input name="uploadedimage" type="file"></td> 
      </tr> 
      <tr> 
       <td><input name="Upload Now" type="submit" value="Upload Image"></td> 
      </tr> 
      </tbody> 
      </table> <!-- Table to upload products --> 
     </form> 
     </div> 
    </div> 

而應該上傳圖片和更新數據庫的PHP頁面的代碼。

<?php 
include("includes/db.php"); 

    function GetImageExtension($imagetype) 
    { 
     if(empty($imagetype)) return false; 
     switch($imagetype) 
     { 
      case 'image/bmp': return '.bmp'; 
      case 'image/gif': return '.gif'; 
      case 'image/jpeg': return '.jpg'; 
      case 'image/png': return '.png'; 
      default: return false; 
     } 
    } 



if (!empty($_FILES["uploadedimage"]["name"])) { 

    $file_name=$_FILES["uploadedimage"]["name"]; 
    $temp_name=$_FILES["uploadedimage"]["tmp_name"]; 
    $imgtype=$_FILES["uploadedimage"]["type"]; 
    $ext= GetImageExtension($imgtype); 
    $imagename=$_FILES["uploadedimage"]["name"]; 
    $target_path = "Product_Images/".$imagename; 


if(move_uploaded_file($temp_name, $target_path)) { 

    $query_upload="INSERT into 'images_tbl' ('images_path','submission_date') VALUES 

('".$target_path."','".date("Y-m-d")."')"; 
    mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error()); 

}else{ 

    exit("Error While uploading image on the server"); 
} 

} 

?> 

當我運行此代碼時,我可以選擇一張圖片並點擊「上傳」,但這是出錯的地方。我收到以下錯誤。請指向正確的方向。

Snippet of the error message

我知道數據庫連接使用PDO和saveimages.php沒有。我從教程中找到了這個腳本here。一旦我得到它的工作,我會嘗試將其翻譯成PDO。由於我正在做這一切,以教我自己,我試圖採取嬰兒的步驟。此外,我確認在運行這些數據後沒有數據添加到數據庫中。

謝謝!的崇高

+0

你編輯了你的php.ini嗎?你在哪個端口上運行這個本地主機會話? –

+0

確保文件存在。 PHP說他們沒有。 –

+0

我沒有編輯它沒有。它運行在默認設置之上。現在去檢查。 –

回答

0

目錄結構片段:

enter image description here

+0

有沒有必要回答完成你的問題,編輯它並插入新信息 –

+0

我想到了,因爲我提交了它...對不起。 –

0

你必須調用include("db.php");而不是include("includes/db.php");因爲saveimage.php位於includes目錄。

您還必須確保Product_Images目錄位於includes目錄中,並且您的網絡服務器有權寫入該目錄。

+0

我已經完成了,現在我仍然收到這個錯誤。解析錯誤:語法錯誤,意外'函數'(T_FUNCTION)在C:\ wamp \ www \ woody \ includes \ saveimage.php在第4行 我假設PHP不喜歡「GetImageExtension($ imagetype)」..我做了一些搜索和老版本5.3及以下版本有我正在運行的這個問題5.5.12 –

+0

請告訴我你的'saveimage.php'的前5行,我認爲有一些類似的東西丟失。 –

0

謝謝大家。 @Aedix Rhinedale有正確的答案。我忘了。他還給了我一些很好的選擇!

相關問題