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

  1. 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>"; ?>
  2. 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áš.
  3. 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?
  4. 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.
  5. 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.

← Zpět na všechna témata