Diskuze: Nahrávání obrázku
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 28 zpráv z 28.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, k nahrání použiješ jednoduše formulář (input type="file" name="soubor").
V PHP potom pracuješ s polem $_FILES. K přesunutí obrázku na dané umístění slouží funkce move_uplaoded_file, takto:
$nazev = ($_FILES["soubor"]["name"]);
$docasneUmisteni = ($_FILES["soubor"]["tmp_name"]);
$velikost = ceil(filesize($docasneUmisteni)/1024/1024);
move_uploaded_file($docasneUmiseni, 'nahrane/' . $nazev);
}
Kód výše je nutné zabaezpečit podle typu souboru nebo přípony, aby ti někdo nenahrál skript .php a nespustil si ho u tebe na serveru.
K ověření typu slouží:
$info = getimagesize($docasneUmisteni);
$typ = $info[2];
if ($typ == IMAGETYPE_PNG)
...
Našel jsem suprovej návod..
http://www.w3schools.com/…e_upload.asp
Ne, našel jsi dost špatný návod, udělej to jak jsem ti říkal výše.
Nečetl jsem to po sobě, není to kompletní kód, ale postup. Co poslal Dan umožňuje vykrást databázi.
Vždyť tam není o databázi ani zmínka ?
ale co kdyby ti tam někdo poslal php script a vykrad tvoji databázi?
To je jedno, mají špatně ošetřenou kontrolu typů souboru, lze tam podstrčit PHP soubor co se bude tvářit jako obrázek. A přes ten si vypsat obsah skriptu, kterým se připojuješ k db a tak zjistit heslo. Zbytek si domyslíš sám.
Protože jsi tam nepodstrčil falešný typ. Jinak i tu kontrolu velikosti mají špatně.
Pokud tomu tady někdo opravdu bude rozumět, tak to bude sdraco. Nevím co tu řešíte, zrovna v tomhle bych mu bezmezně věřil - podívejte se na devbook ...
No na devbooku je hodně věcí, co by se měly udělat lépe Ale díky.
CSS přeci není řešeno inline zápisem, vybírání lidí v příspěvcích také funguje, double post také není problémem - co že by šlo udělat lépe ?
Myslím že to je problémem který je neustále zacyklen . Jakimle se nabalují věci , zjistíme že už to není tka pěkný jak bývalo... to mi připomíná moji tvorbu enginu ... opět jsem přepsal mírně jádro a stejně není dořešený úplně všehcno, ono to ani nepůjde - vyřešit vše ale chtěl bych většinu tak aby to bylo univerzálně připravený ... ale jsem s ním už i celkem spokojený Rýsuje se to pěkně ... brzy dám nějaký info
Však já mu věřím, ale taky to trochu potřebuju vysvětlit (proto jsem mu říkal ať na to udělá tutoriál...)
V tom návodu, co jsem si našel já, to bylo vysvětlený...
Pokud vím, mají to jen přes to co odeslal uživatel, tam si může každý napsat co chce. Co se neověří na serveru není bezpečné.
Řeší se to třeba zde: http://stackoverflow.com/…getimagesize
funkcia filesize() ti vrati velkost suboru v bajtoch a tych
1024/1024 je prepocet na MB
dalo by sa to tych 1024/1024 zapisat aj ako 1048576 (1024*1024)
cize:
$velikost = ceil(filesize($docasneUmisteni)/1024/1024);
by sa dalo zapisat aj ako:
$velikost = ceil(filesize($docasneUmisteni)/1048576);
Jak se to dá udělat tak aby ten soubor mohl být jakýkoli jen ne php a zároveň to bylo bezpečné?
Zobrazeno 28 zpráv z 28.