Avatar
Rasta_Man
Člen
Avatar
Rasta_Man:

Ahoj potřeboval bych poradit kód na Upload a Ověření obrázků, spíše to ověření zda je obrázek PNG nebo JPEG.

Předem děkuju.

 
Odpovědět 11.5.2013 15:59
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Rasta_Man
David Čápka:

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)
...
Editováno 8.10.2013 11:44
Nahoru Odpovědět 12.5.2013 10:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

Ne, našel jsi dost špatný návod, udělej to jak jsem ti říkal výše.

Nahoru Odpovědět 13.6.2013 18:21
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
 
Nahoru Odpovědět 13.6.2013 18:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Také tam máš chybu.

Nahoru Odpovědět  +1 13.6.2013 18:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Nečetl jsem to po sobě, není to kompletní kód, ale postup. Co poslal Dan umožňuje vykrást databázi.

Nahoru Odpovědět 13.6.2013 18:45
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Daniel Vítek:

Vždyť tam není o databázi ani zmínka ?

 
Nahoru Odpovědět 13.6.2013 19:09
Avatar
Odpovídá na Daniel Vítek
Michal Žůrek (misaz):

ale co kdyby ti tam někdo poslal php script a vykrad tvoji databázi?

Nahoru Odpovědět  +1 13.6.2013 19:32
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

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.

Nahoru Odpovědět  +1 13.6.2013 19:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

Protože jsi tam nepodstrčil falešný typ. Jinak i tu kontrolu velikosti mají špatně.

Nahoru Odpovědět 13.6.2013 19:45
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
 
Nahoru Odpovědět 13.6.2013 19:51
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:

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 ...

Nahoru Odpovědět 13.6.2013 19:52
Creating websites is awesome till you see the result in another browser ...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jiří Gracík
David Čápka:

No na devbooku je hodně věcí, co by se měly udělat lépe :D Ale díky.

Nahoru Odpovědět 13.6.2013 19:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na David Čápka
Jiří Gracík:

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 :D?

Nahoru Odpovědět  +1 13.6.2013 19:59
Creating websites is awesome till you see the result in another browser ...
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

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 :D ... 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ý :D ... ale jsem s ním už i celkem spokojený :) Rýsuje se to pěkně ... brzy dám nějaký info

Nahoru Odpovědět 13.6.2013 20:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jenže oni tam mají kontrolu falešných typů.

Nahoru Odpovědět 13.6.2013 20:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Nahoru Odpovědět 13.6.2013 20:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Kit
Jiří Gracík:

Do těch nevidím, ty kritizovat nemůžu :)

Nahoru Odpovědět 13.6.2013 20:54
Creating websites is awesome till you see the result in another browser ...
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Jiří Gracík
Daniel Vítek:

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ý...

 
Nahoru Odpovědět 13.6.2013 21:02
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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é.

Nahoru Odpovědět 13.6.2013 21:10
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět  +1 13.6.2013 21:18
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Lukáš Tesař:

To 1024/1024 je zjištění velikosti?

 
Nahoru Odpovědět 11.6.2014 17:23
Avatar
mkub
Redaktor
Avatar
Odpovídá na Lukáš Tesař
mkub:

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);
 
Nahoru Odpovědět 12.6.2014 2:47
Avatar
Lukáš Tesař:

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é?

 
Nahoru Odpovědět 8.9.2014 21:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 28 zpráv z 28.