Autor | Zpráva | ||
---|---|---|---|
andy7 Profil * |
#1 · Zasláno: 18. 7. 2012, 19:05:46
Dobrý deň chcel by som sa Vás spýtať čo vlasntne robím zle ak mi píše tento notice:Undefined index: up ... v tomto UP sa nachádzaju dáta kedže po samotnom vypísani mi zobrazi hodnotu.. ak teda napísem
echo $up;
vypíše mi nejaku hodnotu ale ak sa snazím do premennej $subor_typ = $_FILES['up']['type']; tak mi ukáze túto notice.. takisto aj ked chcem vypísat len echo $_FILES['up']['type']; tak hodnota je prázdna.. neviem čo s tym.. dakujem za rady
|
||
ShiraNai7 Profil |
#2 · Zasláno: 18. 7. 2012, 19:27:19
$_FILES['up'] bude definovane jen v pripade, kdyz nahrajes pres formular soubor z inputu s takovym nazvem. Urcite je tato podminka v dobe provadeni tohoto skriptu (ci bloku kodu) splnena?
|
||
andy7 Profil * |
#3 · Zasláno: 18. 7. 2012, 21:05:53
ako formular pre upload je toto
<form action="" method="post" class="add_news_form" > <br/> <strong>Názov:</strong> <br/> <input class="od" name="naz_novinky" type="text" /> <br/> <strong>Pridal:</strong> <br/> <input class="od" name="pridal_novinku" type="text" /> <br/> <strong>Text:</strong> <br/> <input class="od" name="text_novinky" type="text" /> <br/> <strong>Názov obrázku:</strong> <br/> <input class="od" name="name_img" type="text" /> <br/> <strong>Obrázok:</strong> <br/> <input name="up" type="file" /> <p> <input class="tlacitko2" name="add_news" type="submit" value="Pridaj novinku" /></p> <input name="tlac" type="hidden" value="true" /> </form>'; if(isset($_POST['tlac'])){ $naz_novinky = $_POST['naz_novinky']); $pridal_novinku = $_POST['pridal_novinku']; $text_novinky = $_POST['text_novinky']; $up = trim($_POST['up']; if( ($naz_novinky!="") and ($pridal_novinku!="") and ($text_novinky!="") and ($up!="") ){ $max_size=3*1048576; $max_sirka=200; $max_vyska=200; $povolene_typy=array("image/bmp","image/png","image/gif","image/jpeg","image/jpg"); $subor_typ=$_FILES['up']['type']; ........ |
||
Keeehi Profil |
Formu přidej
enctype="multipart/form-data"
$up = trim($_POST['up']; - toto pak smaž
A $_FILES['up']['type']; - by ti už mělo fungovat.
Bezpečnostní upozornění: Obsah $_FILES['up']['type']; posílá prohlížeč, takže to není spolehlivé na ověření typu souboru. Klidně jako útočník dokážu odeslat třeba php script a v $_FILES['up']['type']; budu mít třeba image/jpeg .
|
||
andy7 Profil * |
#5 · Zasláno: 18. 7. 2012, 21:20:52 · Upravil/a: andy7
ale tu premennu $up pouzivam dalej .. ked ju vyazem tak to nebude funkcne nic :) ..
ok funguje to diky moc :) a este sa spytam ako inak by som to teda mal ochranit pred utokom? |
||
Keeehi Profil |
A co by v ní mělo být? Jméno souboru? Tak to je odteď v
$_FILES['up']['name']; andy7: Nejjednodušší je kontrolovat koncovku oproti whitelistu, nebo soubory nahrávat do veřejně nepřístupné složky a na jejich zobrazení/stažení si udělat v PHP tunel. |
||
Časová prodleva: 12 let
|
0