| Autor | Zpráva | ||
|---|---|---|---|
| PE-X0 Profil * |
#1 · Zasláno: 16. 1. 2010, 12:08:48
Ahoj, mám kód pro nahrávání
function NahraniSouboru()
{
$JmenoSouboru = ($_FILES["soubor"]["name"]);
$Soubor = ($_FILES["soubor"]["tmp_name"]);
$Ok = ($_POST["ok"]);
if ($Ok == "Upload" && $JmenoSouboru!="")
{
if (move_uploaded_file($Soubor, "ulozna/$JmenoSouboru"))
{
/* chmod ("./$JmenoSouboru", 0777); */ // v případě problémů
echo "Soubor <b>$JmenoSouboru</b> byl úspěšně nahrán na server.<BR>";
}
else
{
echo "<b>Chyba - soubor nebyl nahrán.</b><BR>";
}
}
}ale potřebuji, aby se nesměl nahrávat soubor s jakoukoliv nebezpečnou (pro server) koncovkou. Tudiž, zamezit: .php, .asp, .html(radši taky) ,.exe, .phtml, .css atd... nevíte jak to udělat? |
||
| mckay Profil |
#2 · Zasláno: 16. 1. 2010, 12:28:39
PE-X0:
Teoreticky by si mohl všechny nahrávané soubory komprimovat nějakou komprimační funkcí, tak, aby se dali stahovat zazipované. |
||
| Step Profil |
#3 · Zasláno: 16. 1. 2010, 12:30:28
$_FILES['soubor']['type'] nevim jestli $_FILES["soubor"]["name"] potom stačí udělat $soubor = $_FILES["soubor"]["name"].".".$_FILES["soubor"]["type"]; nakonec bych udělal pole se zakázanými koncovkami $zakazena = array("php", "asp",...) in_array($_FILES["soubor"]["type"], $zakazane); doufám že to neni blbost, poižívám něco podobného tak jsem to trochu přeformuloval. |
||
| PE-X0 Profil * |
#4 · Zasláno: 16. 1. 2010, 12:39:13
function NahraniSouboru()
{
$JmenoSouboru = ($_FILES["soubor"]["name"]);
$Soubor = $_FILES["soubor"]["name"].".".$_FILES["soubor"]["type"];
$Ok = ($_POST["ok"]);
$Zakazene = array("php", "asp" , "xhtml" , "html" , "exe" , "phtml" , "php4" , "php3" , "phps" , "css" , "xhtml" , "js" , "dhtml" , "sql")
if ($Ok == "Upload" && $JmenoSouboru!="")
{
in_array($_FILES["soubor"]["type"], $Zakazane);
if (move_uploaded_file($Soubor, "ulozna/$JmenoSouboru"))
{
/* chmod ("./$JmenoSouboru", 0777); */ // v případě problémů
echo "Soubor <b>$JmenoSouboru</b> byl úspěšně nahrán na server.<BR>";
}
else
{
echo "<b>Chyba - soubor nebyl nahrán.</b><BR>";
}
}
}nevim jak přesně myslíš to in_array... zatim jsem to sepsal takhle... |
||
| PE-X0 Profil * |
#5 · Zasláno: 16. 1. 2010, 12:54:49
sorry, špatný kod
function NahraniSouboru()
{
$JmenoSouboru = ($_FILES["soubor"]["name"]);
$Soubor = $_FILES["soubor"]["name"].".".$_FILES["soubor"]["type"];
$Ok = ($_POST["ok"]);
$Zakazene = array("php", "asp" , "xhtml" , "html" , "exe" , "phtml" , "php4" , "php3" , "phps" , "css" , "xhtml" , "js" , "dhtml" , "sql")
if ($Ok == "Upload" && $JmenoSouboru!="")
{
if( in_array($_FILES["soubor"]["type"], $Zakazane))
echo 'Chyba: Nesprávná přípona';
}
{
if (move_uploaded_file($Soubor, "ulozna/$JmenoSouboru"))
{
/* chmod ("./$JmenoSouboru", 0777); */ // v případě problémů
echo "Soubor <b>$JmenoSouboru</b> byl úspěšně nahrán na server.<BR>";
}
else
{
echo "<b>Chyba - soubor nebyl nahrán.</b><BR>";
}
}
}takhle jsem to myslel, ale nefunguje |
||
| PE-X0 Profil * |
#6 · Zasláno: 16. 1. 2010, 13:00:04
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /users/zalohovane/linhart/milankubik.info/Function.php on line 2623
Chyba - soubor nebyl nahrán. tohle to teď píše... |
||
| Step Profil |
#7 · Zasláno: 16. 1. 2010, 13:20:56 · Upravil/a: Step
radek 10 ...$Zakazene a radek 15 ...$Zakazane :-)
jo a zkus používat edit, bude to potom o něco přehlednější |
||
| fajzen Profil |
#8 · Zasláno: 16. 1. 2010, 13:30:49
Step:
vo $_FILES["soubor"]["type"] sa neukladá priamo koncovka súboru, ale mime type súboru (napr. image/gif), okrem toho záleží na prehliadači, či tento mime type pošle a v akej podobe (v staršej Opere som mal problém, že posielala trochu iný text mime typu, takže súbor neprešiel kontrolou...) koncovku súboru treba vybrať z názvu súboru vo $_FILES["soubor"]["name"] |
||
| PE-X0 Profil * |
#9 · Zasláno: 16. 1. 2010, 13:32:49
function NahraniSouboru()
{
if ($_POST["ok"] == "Upload"){
$zakazene = array("php", "asp" , "xhtml" , "html" , "exe" , "phtml" , "php4" , "php3" , "phps" , "css" , "xhtml" , "js" , "dhtml" , "sql");
if( in_array(preg_replace("~^.*\.([^.]+)$~", '$1', $_FILES["soubor"]["name"]), $zakazane)){
echo 'Nesprávný typ souboru!<br>';
} else {
if( !is_writable('./ulozna') ){
echo "Úložna není zapisovatelná!<br>";
} else {
if( move_uploaded_file($_FILES["soubor"]["tmp_name"], "./ulozna/".$_FILES["soubor"]["name"]) ){
/* chmod ("./$JmenoSouboru", 0777); */ // v případě problémů
echo "Soubor <b>".$_FILES["soubor"]["name"]."</b> byl úspěšně nahrán na server.<br>";
} else {
echo "<b>Chyba - soubor nebyl nahrán.</b><br>";
}
}
}
}
} |
||
|
Časová prodleva: 16 let
|
|||
0