Autor | Zpráva | ||
---|---|---|---|
MilanJ Profil |
#1 · Zasláno: 13. 3. 2006, 00:50:34 · Upravil/a: MilanJ
Mám formulář se několika políčky, a 4 z nich jsou pole INPUT, které slouží k odesílání souborů.
Uživatel vyplní políčka formuláře, zadá cesty k souborům a formulář odešle. Bohužel ale nevyplnil všechna pole a formulář se neodešle a vypíše hlášku, že je potřeba vyplnit všechna pole. V každém políčku formuláře mám hodnotu VALUE, která obsahuje např.: <? echo $popis; ?>, aby se vyplněné hodnoty po vyhodnocení formuláře nevymazaly a uživatel je nemusel vyplňovat znovu. Potud vše OK, až na to, že políčka INPUT, která slouží k odeslání souboru, si svou hodnotu neuchovají, a to i přesto, že jsou zadána tímhle způsobem: <input name="smlouva" type="file" id="smlouva" value="<? echo $smlouva; ?>"> Proč všechna ostatní políčka hodnotu mají a jen tahle ne? Kde je chyba? Dělám snad něco špatně? Zkoušel jsem value="<? echo $smlouva; ?>">nahradit value="<? echo $_POST["smlouva"]; ?>">, ale to nepomohlo. Poradíte mi někdo jak to vyřešit? |
||
Hugo Profil |
#2 · Zasláno: 13. 3. 2006, 05:15:41
MilanJ
Inputy typu file se z různých důvodů (hlavně bezpečnostních) chovají jinak než např. textové inputy. Řešením je např. rozdělit formulář na dvě části, v první nechat všechny údaje a po ověření správnosti zobrazit políčka pro vkládání souborů. |
||
Anonymní Profil * |
#3 · Zasláno: 15. 3. 2006, 15:54:10
ked formular pouziva method post a ty v skripte ktory formular spracovava zavolas
$premenna = $_POST['nazov_inputu_typu_file']; tak tu cestu k suboru v premennej musis mat. Ked sa potom po chybe vracias na stranku s formularom musis jej hodnotu ulozenu v $premenna nejako odovzdat (v url, v session, v cookie) a az potom zavolat vo value <?= $_GET['premenna']?> resp <?= $_COOKIE['premenna'] ?> resp. <?= $_SESSION['premenna']?> |
||
DoubleThink Profil * |
#4 · Zasláno: 15. 3. 2006, 15:56:34
Jde o bezpečnostní opatření - Input File nelze žádným způsobem předvyplnit (kdyby to šlo, tak by si mohly stránky skrytě uploadovat vaše soubory).
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0