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.


Zobrazeno 28 zpráv z 28.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.