2013-01-08 80 views
-2

我是全新的使用數據庫,所以也許我的問題是顯而易見的。我的變數是丹麥語,我希望你能理解。我已經在論壇上搜索過,但因爲這對我來說是新的,所以我覺得很難理解。PHP MYSQL - 圖像上傳錯誤

用戶應該使用配置文件圖片創建配置文件,但是當我嘗試保存配置文件時會發生錯誤。彈出我自己定義的錯誤,因爲$billednavn == false

代碼:

<?php 

// 1. Gem modtagne formulardata i variabler: 
$navn = $_POST['navn']; 
$alder = $_POST['alder']; 
$postnr = $_POST['postnr']; 
$mail = $_POST['mail']; 
$billede = $_FILES['profilbillede']; 
$password = $_POST['password']; 



// 2. Forbind til databasen: 
$databaselink = mysqli_connect("localhost","mmddk3e12m8b18", "****", "mmddk3e12m8b18") or die  ("Fejl: Kan ikke etablere forbindelse til database"); 



$billednavn = billedupload($billede); 
// besked til brugeren om at der er sket en fejl  
if($billednavn == false){ 
die("Der skete en fejl under upload af billedet"); 
} 



// 3. Udform insert SQL streng med de modtagne data, og udfør SQL strengen på databasen vha  mysqli_query: 
$query = "INSERT INTO brugere (navn, alder, postnr, mail, password, profilbillede) VALUES ('$navn', '$alder', '$postnr', '$mail', '$password', '$billednavn')"; 
$result = mysqli_query($databaselink, $query) or die("Forespørgslen kunne ikke udføres: " .   mysqli_error($databaselink)); 

// 4. luk databasen: 
mysqli_close($databaselink); 

function billedupload($fil){ 
if($fil['type']=='image/jpeg' or $fil['type']=='image/png'){ 
$tmp_navn = $fil['tmp_name']; 
$filnavn = $fil['name']; 
$target = 'images/' . time() . $filnavn; 
move_uploaded_file($tmp_navn,$target); 
return $target; 
} 
else{ 
return false; 
} 
} 

?> 
+2

你確定設置了$ _FILES嗎?用'var_dump($ _ FILES)'調試它。如果沒有,你可能會錯過'enctype =「multipart/form-data」'在你的'

' –

+0

@Blauesocke對不起,只是看到你發佈它後我寫了一個答案 –

+0

@ShaiMishali沒問題! :-) –

回答

0

如果返回false,那麼 - 你的定義,無論是文件類型不是圖像/ JPEG或者沒有圖像/ PNG,或類型不設置,或者整個$ _FILES沒有設置。

在您的HTML表單中,請確保您有<form enctype="multipart/form-data" method="POST">並在您的PHP文件中嘗試var_dump($_FILES);以驗證您的POST數據。

編輯: 在那裏有我能想到的兩種可能的情況tmp_name的值是空的條件:你忘了把<form enctype="multipart/form-data">(更可能,請驗證)

    1. 您php.ini確保file_uploads設置爲On

    第一個選項更可能,當然。

  • +0

    文件類型是PNG。並且enctype已被設置。 如何使用var_dump?我不知道該命令 現在我得到這個錯誤: _Warning:move_uploaded_file(網頁/圖片/1357640382portrætmig.jpg)function.move上傳文件]:未能打開流:沒有這樣的文件或目錄in /home/mmddk3e12m8b18/public_html/web/oprettet.php on line 38 Warning:move_uploaded_file()[function.move-uploaded-file]:無法將'/ var/tmp/phpPcUSlZ'移動到'web/images/1357640382portrætmig.jpg'in /home/mmddk3e12m8b18/public_html/web/oprettet.php on line 38_ – user1957552

    +0

    我發現如何使用它。它說:array(1){[「profilbillede」] => array(5){[「name」] => string(10)「Gordon.jpg」[「type」] => string(0)「」[ 「tmp_name」] => string(0)「」[「error」] => int(1)[「size」] => int(0)} – user1957552

    +0

    根據您添加的信息更新我的答案。如果您需要其他幫助,請將您的HTML代碼和PHP代碼粘貼到pastebin.com或類似網站。 –