pomoc s funkcí
5 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Hlásí mi to chybu, že očekává nějaké úvozovky při prvním řádku definice funkce. Když všechny úvozovky smažu tak zase nepřejde přes velikost obrázku (první podmínka) i když je obrázek malý. Vidíte někde chyby? <? /* Funkce pro upload obrázku z formuláøe: Img_Upload (char<$folder_path>, char<$img_name>, char<$th_name>, char<$form_name>, int<$max_size_img>, int<$max_byte>, int<$max_wh>, int<$size_th>) syntaxe: $folder_path - cesta k adresáøi kam chceme zapisovat obrázek ("./images/gallery/") $img_name - jméno obrázku po uploadu ("pic1") $th_name - jméno náhledu ("thumb1") $form_name - jméno vstupního pole formuláøe (input type="file" name="obr1") $max_size_img - maximální rozmìr delší strany obrázku v px, který se ještì nebude zmenšovat $max_byte - maximální velikost obrázku v bytech, jaký lze zpracovat $max_wh - maximální rozmìry obrázku v px, jaký lze zpracovat $size_th - rozmìry delší strany náhledu v px. */ function Img_Upload ("$folder_path", "$img_name", "$th_name", "$form_name", $max_size_img, $max_byte, $max_wh, $size_th) { if( (is_uploaded_file ($HTTP_POST_FILES["$form_name"]["tmp_name"])) &&($HTTP_POST_FILES["$form_name"]["size"] < $max_byte) ) { if( ($HTTP_POST_FILES["$form_name"]["type"] == "image/pjpeg" || $HTTP_POST_FILES["$form_name"]["type"] == "image/jpeg" || $HTTP_POST_FILES["$form_name"]["type"] == "image/png") ) { switch ($HTTP_POST_FILES["$form_name"]["type"]): case "image/pjpeg": $type = ".jpg"; break; case "image/jpeg": $type = ".jpg"; break; case "image/png": $type = ".png"; break; default: $type = "ooo"; endswitch; $image = "$folder_path"."$img_name"."$type"; $thumb = "$folder_path"."$th_name"."$type"; if (move_uploaded_file($HTTP_POST_FILES["$form_name"]["tmp_name"],"$image")) { switch ($type): case "jpg": $img_zdroj = ImageCreateFromJPEG ("$image"); break; case "png": $img_zdroj = ImageCreateFromPNG ("$image"); break; endswitch; if ((ImageSX ($img_zdroj) <= $max_wh) && (ImageSY ($img_zdroj) <= $max_wh)) { $width = ImageSX ($img_zdroj); $height = ImageSY ($img_zdroj); if ($width > $height) { $velx = $size_th; $vely = $size_th * ($height / $width); } elseif ($width < $height) { $velx = $size_th * ($width / $height); $vely = $size_th; } elseif ($width == $height) { $velx = $size_th; $vely = $size_th; } SetType ($velx, "integer"); SetType ($vely, "integer"); $th_cil = ImageCreateTrueColor($velx,$vely); ImageCopyResampled($th_cil,$img_zdroj,0,0,0,0,$velx,$vely,$width,$height); switch ($type): case "jpg": ImageJPEG ($th_cil,"$thumb"); ImageDestroy($th_cil); break; case "png": ImagePNG ($th_cil,"$thumb"); ImageDestroy($th_cil); break; endswitch; if ($width > $max_size_img || $height > $max_size_img) { $koef = $max_size_img / $size_th; $kvelx = $velx * $koef; $kvely = $vely * $koef; SetType ($kvelx, "integer"); SetType ($kvely, "integer"); $img_cil = ImageCreateTrueColor($kvelx,$kvely); ImageCopyResampled($img_cil,$img_zdroj,0,0,0,0,$kvelx,$kvely,$width,$height); switch ($type): case "jpg": ImageJPEG ($img_cil,"$image"); ImageDestroy($img_cil); break; case "png": ImagePNG ($img_cil,"$image"); ImageDestroy($img_cil); break; endswitch; } ImageDestroy($img_zdroj); } else { echo "CHYBA!<br />obrázek je vìtší než povolených $max_wh px."; } } else { echo "CHYBA!<br />obrázek se nepodaøilo pøenést."; } } else { echo "CHYBA!<br />obrázek je neznámého formátu."; } } else { $kb = $max_byte / 1000; echo "CHYBA!<br />obrázek je vìtší než povolených $kb kb."; } } Img_Upload("./user/", "obrazek", "nahled", "img", 600, 300000, 1500, 150); echo "<img src=user/obrazek.jpg>"; echo "<br />"; echo "<img src=user/nahled.jpg>"; ?>
-
Pochopitelně, že v definici fce nemají být uvozovky... definuješ přece vstupní proměnné, nikoliv konstantní řetězec o hodnotě proměnné $nějaké, který bys ani nemoh předat... ;) z hlediska php ani jiných prog. jazyků se nečiní rozdíly mezi zápisy názvů proměnných, takže v php jsou všechny proměnné $něco, nikoliv "$něco" (to si nech na echa a operace s proměnnými). Jestli ti můžu poradit, zkoušej echovat a vyechuj si, co vlastně v první podmínce porovnáváš.
-
Jestli ono to také nebude tím, že globální proměnná $HTTP_POST_FILES není dostupná uvnitř funkce? Dá se tam nějak dostat?
-
skus za deklaraciu funkcie dat funkcia(parametre) { global $HTTP_POST_FILES; .... } ja som tiez raz s tym mal problem nie konkretne u tejto globalnej premennej,ale tiez neboli dostupne vnutri funkcie a toto pomohlo.
-
Díky moc, to by mělo pomoct, já věděl že jsem to někde viděl, ale nemohl jsem to dlouho najít. Teď vidím, že to je v Koskovi na str. 70.