2013-01-08 63 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或类似网站。 –