2012-06-16 55 views
1

我有下一個問題:代碼來驗證名稱,地址和電子郵件的作品,但驗證圖像不起作用,不知道爲什麼發生。一如既往打印「選擇一個圖像」PHP:爲什麼不能獲取我要插入數據庫的圖像數據?

我做了一個測試,並設置線打印圖像的臨時名稱與「打印$照片」但沒有打印!

form.php的

<form id="formregister" name="formregister" action="register.php" method="post"> 
    <input id="name" name="name" type="text"/> 
    <input id="address" name="address" type="text"/> 
    <input id="email" name="email" type="email" /> 
    <input id="photouser" name="imguser" type="file"/> 
    <input id="bregister" name="bregister" type="submit" value="Registrer"/> 
</form> 

register.php

.............. 
$name = $_POST['name']; 
$address = $_POST['address']; 
$email = $_POST['email']; 
$photo = $_FILES['imguser']['tmp_name']; 
$errors = array(); 

    if(!isset($photo)) { 
     $errors[] = "Select an image"; 
    } else { 
     $fototemp = addslashes(file_get_contents($_FILES['imguser']['tmp_name'])); 
     $fotoname = addslashes($_FILES['imguser']['name']); 
     $fotosize = getimagesize($_FILES['imguser']['tmp_name']); 
     if ($fotosize == false) { 
      $errors[] = "Invalid format"; 
     } 
    } 
//Code to validate the other fields (name, address, email) 
.................... 
+0

你打算什麼跟那些'和addslashes做() '電話?如果你將它插入到數據庫中,那可能不是正確的轉義方法。 –

回答

4

你缺少你的表格文件上傳正確enctype。它應該是enctype='multipart/form-data'

<form id="formregister" name="formregister" action="register.php" method="post" enctype='multipart/form-data'> 

而不是直接訪問二級tmp_name鍵,測試,如果它被設置第一避免未定義指數告示:

if (isset($_FILES['imguser']) { 
    $photo = $_FILES['imguser']['tmp_name']; 
} 
+0

當然!謝謝 :) – SoldierCorp

相關問題