Autor | Zpráva | ||
---|---|---|---|
stuchlej Profil |
#1 · Zasláno: 21. 7. 2011, 13:17:48
Dobrý den.
Potřebuji na stránky uploadovat se MySQL do databáze ještě *.pdf soubor. Hledal jsem proto možnosti, jak se dá uploadovat na serwer a našel jsem si pro tento účel tento hezký skript: <? if($_POST['z'] == "upload") { $i = 0; if ($_FILES['priloha']['error'][$i] && $_FILES['priloha']['error'][$i] != 4) { echo "<br>".$i."-".$upload_err[$_FILES['priloha']['error'][$i]]; continue; } $jmeno_prilohy[$i] = namefriendly($_FILES['priloha']['name'][$i]); //echo "<br>jmeno_prilohy=".$jmeno_prilohy[$i] ; $filename = time()."-".$i."-".$jmeno_prilohy[$i]; $cesta[$i] = "data/events/".$filename ; //echo "<br>cesta=".$cesta[$i]; if (move_uploaded_file($_FILES["priloha"]["tmp_name"][$i],$cesta[$i])) echo "<br>soubor ".$_FILES['priloha']['name'][$i]." nahrán." ; } function namefriendly($text) { $text = Strtolower($text); $text = (StrTr($text, "áäčçďéěëíňóöřšťúůüýž", "aaccdeeeinoorstuuuyz")); $text = eregI_replace("[^abcdefghijklmnopqrstuvwxyz0123456789\.]+","-",$text); $text = ereg_replace("-\.",".",$text); $text = ereg_replace("\.+",".",$text); return $text; } ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="z" value="upload"> Přiloha :<input class="file" type="file" name="priloha[0]" > <input type="submit" value="odeslat"> </form> Fonguje skvělel, ale co mě vadí je, že musím mít nastavená práva přístupu v cílovém adresáři na 777. Moje otázka zní: Jaké z toho plyne nebezpečí? Není nějaká lepší funkce na upload souorů? Děkuji. |
||
johnl Profil |
#2 · Zasláno: 21. 7. 2011, 14:48:51
stuchlej:
Myslím, že to není nic závažného pokud neumožníš nějakým neošetřeným vstupem návštěvníkovy se soubory pracovat. Tvůj script umožňuje nahrát jakýkoliv soubor, třeba i php, pak nastává právě ta nebezpečná situace. PS: Existuje jen server, serwer nee.. |
||
motik Profil |
#3 · Zasláno: 21. 7. 2011, 14:59:08 · Upravil/a: motik
stuchlej:
jinak by měly stačit i práva 700 (755), ale tak jak naznačil johnl je dobré ošetřit ty přípony. |
||
stuchlej Profil |
#4 · Zasláno: 21. 7. 2011, 15:06:39 · Upravil/a: stuchlej
Děkuji moc.
Jen se chci zeptat, napadlo mě, zda tu není možnost natáhnout tan .pdf soubor do MySQL, pokud je a je to lepší řešení, jak? Děkuji Edit: Mimochodem... jak zjistím jaká je přípona souboru? Vím, že jsou na to regulérní výrazy, ale navím, jak ho mám použít. Tím myslím, že nevím, jakou proměnou bych měl nechat regulernímu výrazu porovnat. Děkuji |
||
motik Profil |
#5 · Zasláno: 21. 7. 2011, 15:13:49
stuchlej:
zkus si dát za podmínku $_POST['z']: echo "<pre>"; print_r($_FILES['priloha']); echo "</pre>"; |
||
stuchlej Profil |
#6 · Zasláno: 21. 7. 2011, 20:30:04
Děkuji dodám odpověď, že typ souboru se skovává v $_FILES['priloha']['name'][0].
stuchlej |
||
Časová prodleva: 13 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0