Ebben a PHP kódban van valami hiba?
Itt a felhaszáló egy képet tölt fel a szerverre. leellenőrzi a kiterjesztést meg mindent. Elvileg azt mondták hogy a kód jó, de nekem mégsem dobja a hibaüzenetet amit akkor kéne ha nem kép formátumot akarnak feltölteni.
if($_FILES["avatar"]["name"]!="" && $error_data==false) {
$avatar_pathinfo = pathinfo($_FILES["avatar"]["name"]);
$avatar_extension = $avatar_pathinfo["extension"];
$avatar_filesize = $_FILES["avatar"]["size"];
$avatar_tmp_name = $_FILES["avatar"]["tmp_name"];
$avatar_dimensions = getimagesize($avatar_tmp_name);
$avatar_mime_type = $avatar_dimensions["mime"];
$allowed_extensions = array("image/jpeg" => "jpg", "image/gif" => "gif", "image/png" => "png");
$allowed_extensions_2 = array("image/jpeg" => "jpg", "image/png" => "png");
$str_x = 'x';
$error_avatar = false;
if(is_uploaded_file($avatar_tmp_name)) {
if($avatar_filesize>50000) {
echo "<script>alert('A fájlmérte átugrotta az 50 kilobyte-ot')</script>";
$error_avatar = true;
} elseif(!in_array($avatar_extension,$allowed_extensions) || !isset($allowed_extensions[$avatar_mime_type])){
echo "<script>alert('nem engedélyezett formátum')</script>";
$error_avatar = true;
} elseif($avatar_dimensions[0]!=100 && $avatar_dimensions[1]!=100) {
echo "<script>alert('A kép kötelező mérete 100x100 képpont!')</script>";
$error_avatar = true;
}
/*
header("Content-type: image/gif");
$neve = $avatar_pathinfo;
$im = @imagecreatefromjpeg($neve);
@imagegif($im);
*/
$avatar_local_tmp_name = $username.".".$allowed_extensions[$avatar_mime_type];
move_uploaded_file($avatar_tmp_name,"tmp/".$avatar_local_tmp_name);
copy("tmp/".$avatar_local_tmp_name,"upload/".$avatar_local_tmp_name);
unlink("tmp/".$avatar_local_tmp_name);
setcookie('pictureserver', 'A képet sikeresen eltároltuk a szerveren', time()+3600);
}
}
De hát nem is kéred le a fájt tipusát, akkor mi alapján akarod eldönteni, hogy milyen formátum?
$_FILES["file"]["type"]
A kiterjesztés lekérdezéssel az totál zsákutca, mert azzal lehet csalni.
Az ellenőrzéseket se érdemes így láncba szedni elseif-el ha még nem annyira rutinos az ember elég pl 3 külön if feltételt egymás után rakni és akkor egyszerűbb a hiba keresés.
elseif helyett inkább else if.
Egyébként az else if sokkal jobb megoldás, mint a sima if, mert így csak egy logikai változóra van szükséged, melyet megvizsgálsz, hogy igaz vagy hamis (vagyis az adatok megfelelőek vagy sem).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!