Kezdőoldal » Számítástechnika » Programozás » Ebben a PHP kódban van valami...

Ebben a PHP kódban van valami hiba?

Figyelt kérdés

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);


}

}


2011. okt. 7. 19:38
 1/2 anonim ***** válasza:

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.

2011. okt. 7. 20:11
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

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).

2011. okt. 8. 00:32
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!