Autor | Zpráva | ||
---|---|---|---|
matlala Profil |
#1 · Zasláno: 12. 2. 2009, 10:52:24 · Upravil/a: matlala
Ahoj,
mám takový malý, ale velmi otravný problém. Potřebuju hahrát fotku, ale ne zas všude, mám to udělané tak, že pole pro nahrátí souboru tam je, ale problém nastává až při kontrole if (isset($_FILES['fupload']) and $_FILES['fupload']!="none") Když se formulář odešle bez vybrání souboru tak to hlásí, že soubor tam je. Další kus kodu pro pochopení: ... $povolenéTypy=array("image/jpeg", "image/pjpeg"); if(!in_array($_FILES['fupload']['type'], $povolenéTypy)){$chyba .= "Obrázek může být pouze formátu JPG!<br>";} ... Co je tedy špatně? Pomohlo by i něco v javasriptu co by to pole skrývalo-měnili to atribut type="file" na type="hidden" s kterým mi to nedělalo Předem díky za všechny rady, i když asi tuším, že to je nejaká blbost. |
||
matlala Profil |
#2 · Zasláno: 12. 2. 2009, 11:12:18
kdyby nekdo potřeboval cely script tak je tady:
function NahrajFotkuPujcovna($id, $konecnyNazevSouboru, $cil_smaz, $cil_male, $cil_velke){ $rozmery = getimagesize ($cil_smaz); $sirka = $rozmery[0]; $vyska = $rozmery[1]; if($sirka>$vyska){$delka=1024;} elseif($sirka<$vyska){$delka=768;} ZmenciFotku($cil_smaz, $cil_velke, $delka, 0); //copyright $f = imagecreatefromjpeg($cil_velke); $size = GetImageSize($cil_velke); $text_size = 20; $bottom=10; $top = $size[1]-10; $barva = imagecolorallocate($f, 255, 255, 255); $copyright=COPYRIGHT_NA_FOTKY; imagettftext($f, $text_size, 0, $bottom, $top, $barva, CESTA_K_PISMU, $copyright); Imagejpeg ($f, $cil_velke, 100); //dokončeni $rozmery = getimagesize ($cil_velke); $sirka2 = $rozmery[0]; $vyska2 = $rozmery[1]; if($sirka2>$vyska2){$delka2=150;} elseif($sirka2<$vyska2){$delka2=90;} ZmenciFotku($cil_velke, $cil_male, $delka2, 0); unlink($cil_smaz); mysql_query("UPDATE pujcovna SET fotka='ANO' WHERE id='$id'"); } if(isset($_POST["uloz"])){ $nazev_polozky=strip_tags(htmlspecialchars(trim(ucfirst($_POST["nazev"])))); $kat_polozky=$_POST["kategorie"]; $cena_den_polozky=strip_tags(htmlspecialchars(trim($_POST["cena_za_den"]))); $cena_celkova_polozky=strip_tags(htmlspecialchars(trim($_POST["cena_celkova"]))); $ks_polozky=strip_tags(htmlspecialchars(trim($_POST["ks"]))); $chyba0="Nebylo vylpněno povinné pole Název!<br>"; $chyba1="Nebylo vylpněno povinné pole Cena na den!<br>"; $chyba2="Nebylo vylpněno povinné pole Cena položky!<br>"; $chyba3="Nebylo vylpněno povinné pole Množství!<br>"; $chyba4="Chybně vyplněné pole Cena na den!<br>"; $chyba5="Chybně vyplněné pole Cena položky!<br>"; $chyba6="Chybně vyplněné pole Množství!<br>"; if($nazev_polozky=="" or $nazev_polozky==false){$chyba .= $chyba0;} if($cena_den_polozky=="" or $cena_den_polozky==false){$chyba .= $chyba1;} else{if(!eregi("^[0-9]{1,12}$",$cena_den_polozky)){$chyba .= $chyba4;}} if($cena_celkova_polozky=="" or $cena_celkova_polozky==false){$chyba .= $chyba2;} else{if(!eregi("^[0-9]{1,12}$",$cena_celkova_polozky)){$chyba .= $chyba5;}} if($ks_polozky=="" or $ks_polozky==false){$chyba .= $chyba2;} else{if(!eregi("^[0-9]{1,12}$",$ks_polozky)){$chyba .= $chyba6;}} if (isset($_FILES['fupload']) and $_FILES['fupload']!="none") { if(!in_array($_FILES['fupload']['type'], $povolenéTypy)){$chyba .= "Obrázek může být pouze formátu JPG!<br>";} else{ if($chyba==false){ mysql_query("INSERT INTO `pujcovna` (kat, polozka, cena_den, mnozstvi, cena_celkem) VALUES ('$kat_polozky', '$nazev_polozky', '$cena_den_polozky', '$ks_polozky', '$cena_celkova_polozky')"); } $ded=mysql_query("SELECT id FROM pujcovna WHERE kat='$kat_polozky', polozka='$nazev_polozky', cena_den='$cena_den_polozky', mnozstvi='$ks_polozky', cena_celkem='$cena_celkova_polozky' LIMIT 1"); $set=mysql_fetch_array($ded); {$cislo=$set["id"];} $konecnyNazevSouboru=$cislo.".jpg"; $cil_smaz = PUJCOVNA_FOTO."/smaz".$konecnyNazevSouboru; $cil_velke = PUJCOVNA_FOTO."/".$konecnyNazevSouboru; $cil_male = PUJCOVNA_FOTO."/nahled_".$konecnyNazevSouboru; $nazevSouboru = $_FILES['fupload']['tmp_name']; $copy = move_uploaded_file($nazevSouboru, $cil_smaz) or die ("Přenesenou fotku nelze zkopírovat"); chmod ($cil_smaz, 0777); if($copy == true){ NahrajFotkuPujcovna($cislo, $konecnyNazevSouboru, $cil_smaz, $cil_male, $cil_velke); }else{ echo "Fotka nemohla být nahrána.\nPočet chyb: " . $_FILES['fupload']['error']; } } } if($chyba==true){ if($_POST["kategorie"]=="Kroje kompletní"){$selcet_kat1=" selected=\"selected\"";} elseif($_POST["kategorie"]=="Dětské kompletní"){$selcet_kat2=" selected=\"selected\"";} elseif($_POST["kategorie"]=="Ženské - součástky"){$selcet_kat3=" selected=\"selected\"";} elseif($_POST["kategorie"]=="Mužské - součástky"){$selcet_kat4=" selected=\"selected\"";} elseif($_POST["kategorie"]=="Dětské - součástky"){$selcet_kat5=" selected=\"selected\"";} elseif($_POST["kategorie"]=="Ostatní"){$selcet_kat6=" selected=\"selected\"";} $kategorie_select="<option value=\"Kroje kompletní\"".$selcet_kat1.">Kroje kompletní</option> <option value=\"Dětské kompletní\"".$selcet_kat2.">Dětské kompletní</option> <option value=\"Ženské - součástky\"".$selcet_kat3.">Ženské - součástky</option> <option value=\"Mužské - součástky\"".$selcet_kat4.">Mužské - součástky</option> <option value=\"Dětské - součástky\"".$selcet_kat5.">Dětské - součástky</option> <option value=\"Ostatní\"".$selcet_kat6.">Ostatní</option>"; } elseif($chyba==false){ mysql_query("INSERT INTO `pujcovna` (kat, polozka, cena_den, mnozstvi, cena_celkem) VALUES ('$kat_polozky', '$nazev_polozky', '$cena_den_polozky', '$ks_polozky', '$cena_celkova_polozky')"); header("location:".HTTP."/pujcovna/stav=ok&c=pujc_vloz"); } } |
||
Charlie22 Profil |
#3 · Zasláno: 12. 2. 2009, 11:32:51
nikde jsem si nevsiml, ze by jsi kontroloval
is_file($_FILES['neco']['tmp_name']) empty($_FILES['neco']['name']) |
||
matlala Profil |
#4 · Zasláno: 12. 2. 2009, 11:52:33
aha empty funguje, ale je to pro mě novinky, tohle sjme nikdy nepoužíval, díky
|
||
AM_ Profil |
#5 · Zasláno: 12. 2. 2009, 11:53:41
pro kontrolu úspěšně nahraného souboru bys mohl používat funkci
is_uploaded_file |
||
matlala Profil |
#6 · Zasláno: 12. 2. 2009, 11:54:39
re: AM_
tu používám v kopírování-2 příspěvěk |
||
Časová prodleva: 16 let
|
0