Autor Zpráva
andy7
Profil *
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
$_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 *
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'];
                            ........
                                    
samozrejme skript takto nekonči.... na tom poslednom riadku co tu je tak mi vypise tu hlasku co som spominal.. neviem si s tym dat rady a ani nechapm preco je $_FILES['up']['type']; prazdny
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: