Autor | Zpráva | ||
---|---|---|---|
Gecko Profil * |
#1 · Zasláno: 14. 2. 2010, 17:41:19
Zdravim,
resim jeden problem, a to odesilani obrazku na server s naslednym prejmenovanim. Nize uvedeny kod pracuje v poradku, jen mi nejde ochrana pri odeslani prazdenho "formulare" cili kdyz neni soubor vybran. Nevim kde by mohl byt problem, podminka if(isset($_POST['Submit']) && !$chyby) tam je, tak fakt nevim. <?php $output=' <form name="newad" method="post" enctype="multipart/form-data" action=""> <input type="file" name="image" /> <input name="Submit" type="submit" value="Nahrát obrázek" /> </form>'; define ("MAX_SIZE","2000"); //Velikost souboru vkB function getExtension($string) { $i = strrpos($string,"."); if (!$i) { return ""; } $l = strlen($string) - $i; $ext = substr($string,$i+1,$l); return $ext; } $chyby=0; if(isset($_POST['Submit'])) { $image=$_FILES['image']['name']; if ($image) { $filename = stripslashes($_FILES['image']['name']); $extenze = getExtension($filename); $extenze = strtolower($extenze); if (($extenze != "jpg") && ($extenze != "jpeg") && ($extenze != "png") && ($extenze != "gif") && ($extenze != "JPG" && ($extenze != "JPEG")) && ($extenze != "PNG") && ($extenze != "GIF")) { $output='<h1>Neznámý soubor</h1>'; $chyby=1; } else { $velikost=filesize($_FILES['image']['tmp_name']); if ($velikost > MAX_SIZE*1024) { $output='<h1>Soubor je příliš veliký</h1>'; $chyby=1; } $jmeno_souboru=time().'.'.$extenze; $nove_jmeno="soubory/".$jmeno_souboru; //Přednastavená složka "soubory" $kopirovani = copy($_FILES['image']['tmp_name'], $nove_jmeno); if (!$kopirovani) { $output='<h1>Error</h1>'; $chyby=1; }}}} if(isset($_POST['Submit']) && !$chyby) { $output="<h1>Soubor byl nahrán</h1>"; $output='<div class="message1">Obrázek <strong>'.$jmeno_souboru.'</strong> byl úspěšně nahrán na server.</div> <ul> <li>Velikost souboru: '.$velikost.' kB</li> <li>Náhled obrázku: <a href="'.$nove_jmeno.'">'.$nove_jmeno.'</a></li> </ul> HTML: <input onclick="this.select();" value="<img src="http://www.smetka.net/'.$nove_jmeno.'" alt="Velikost - '.$velikost.' kB" />" size="85"> <h3>Náhled</h3> <div align="center"><small>Obrázek může být v náhledu deformován.</small><br /> <a href="'.$nove_jmeno.'"><img src="'.$nove_jmeno.'" width="500px"/></a> </div>'; } ?> |
||
mattyZEM Profil |
#2 · Zasláno: 14. 2. 2010, 17:48:48
Ten kód vystříhej a dej sem jen to, co budeme potřebovat. Nehodlám se probírat tunou textů, výpisem článků a takových věcí které s danou problematikou nemá nic společnýho.
|
||
Keeehi Profil |
#3 · Zasláno: 14. 2. 2010, 17:59:12 · Upravil/a: Keeehi
Zkus:
if(!empty($_POST['Submit']) and $chyby==0)
|
||
Gecko Profil * |
#4 · Zasláno: 14. 2. 2010, 18:09:59
mattyZEM:
Kdybych to vystříhal, tam zmizne jen pár řádků. Keeehi: Bohužel to nejde, ale i tak díky za reakci. (Vkládal jsem ba řádek 60). |
||
Alphard Profil |
#5 · Zasláno: 14. 2. 2010, 18:21:14
Gecko:
Naučte se odsazovat kód, tohle se čte hrozně. Pro upload je vhodnější použít funkci move_uploaded_file() místo copy() a pro ověření, jestli je soubor skutečně uploadován, potom is_uploaded_file(). |
||
Gecko Profil * |
#6 · Zasláno: 14. 2. 2010, 18:36:54
Mám to tedy takto
řádek 52 $kopirovani = move_uploaded_file($_FILES['image']['tmp_name'], $nove_jmeno); a ochrana if(is_uploaded_file($_POST['image']['tmp_name']) and $chyby==0) Soubor se nahraje v pořádku, ale hlášení o tom, že se provedl upload se nevypíše. |
||
AM_ Profil |
#7 · Zasláno: 14. 2. 2010, 18:44:26
a zkoušel jsi si vypsat, co je v tu chvíli v proměnné $chyby? Pokud ne, tak vůbec nevím, co tu hledáš, tohle snad uděláš dřív, než jdeš na fórum ;)
|
||
Gecko Profil * |
#8 · Zasláno: 14. 2. 2010, 19:19:44
V tý proměnné není nic.
|
||
Gecko Profil * |
#9 · Zasláno: 14. 2. 2010, 19:43:26
Hurááá
<?php $output=' <form name="newad" method="post" enctype="multipart/form-data" action=""> <input type="file" name="image" /> <input name="Submit" type="submit" value="Nahrát obrázek" /> </form>'; define ("MAX_SIZE","2000"); //Velikost souboru vkB function getExtension($string) { $i = strrpos($string,"."); if (!$i) { return ""; } $l = strlen($string) - $i; $ext = substr($string,$i+1,$l); return $ext; } $chyby=0; if (is_uploaded_file($_FILES['image']['tmp_name'])) { if(isset($_POST['Submit'])) { $image=$_FILES['image']['name']; if ($image) { $filename = stripslashes($_FILES['image']['name']); $extenze = getExtension($filename); $extenze = strtolower($extenze); if (($extenze != "jpg") && ($extenze != "jpeg") && ($extenze != "png") && ($extenze != "gif") && ($extenze != "JPG" && ($extenze != "JPEG")) && ($extenze != "PNG") && ($extenze != "GIF")) { $output='<h1>Neznámý soubor</h1>'; $chyby=1; } else { $velikost=filesize($_FILES['image']['tmp_name']); if ($velikost > MAX_SIZE*1024) { $output='<h1>Soubor je příliš veliký</h1>'; $chyby=1; } $jmeno_souboru=time().'.'.$extenze; $nove_jmeno="soubory/".$jmeno_souboru; //Přednastavená složka "soubory" $kopirovani = move_uploaded_file($_FILES['image']['tmp_name'], $nove_jmeno); if (!$kopirovani) { $output='<h1>Error</h1>'; $chyby=1; }}}} if(isset($_POST['Submit']) && !$chyby) { $output="<h1>Soubor byl nahrán</h1>"; $output='<div class="message1">Obrázek <strong>'.$jmeno_souboru.'</strong> byl úspěšně nahrán na server.</div> <ul> <li>Velikost souboru: '.$velikost.' kB</li> <li>Náhled obrázku: <a href="'.$nove_jmeno.'">'.$nove_jmeno.'</a></li> </ul> HTML: <input onclick="this.select();" value="<img src="http://www.smetka.net/'.$nove_jmeno.'" alt="Velikost - '.$velikost.' kB" />" size="85"> <h3>Náhled</h3> <div align="center"><small>Obrázek může být v náhledu deformován.</small><br /> <a href="'.$nove_jmeno.'"><img src="'.$nove_jmeno.'" width="500px"/></a> </div>'; }} ?> |
||
Časová prodleva: 14 let
|
0