Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Nahrávání obrázku

PHP PHP Nahrávání obrázku American English version English version

Aktivity (1)
Avatar
Rasta_Man
Člen
Avatar
Rasta_Man:11.5.2013 15:59

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:12.5.2013 10:19

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
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:13.6.2013 18:21

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
Odpovídá na David Čápka
Daniel Vítek:13.6.2013 18:28

Vždyť to je podobný :D

 
Nahoru Odpovědět 13.6.2013 18:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:13.6.2013 18:28

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
 
Nahoru Odpovědět  +1 13.6.2013 18:29
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:13.6.2013 18:45

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:13.6.2013 19:09

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):13.6.2013 19:32

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:13.6.2013 19:34

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
Odpovídá na David Čápka
Daniel Vítek:13.6.2013 19:36

To jdu zkusit :D

 
Nahoru Odpovědět 13.6.2013 19:36
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Daniel Vítek:13.6.2013 19:39

nic to nedělá :D

 
Nahoru Odpovědět 13.6.2013 19:39
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:13.6.2013 19:45

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
Odpovídá na David Čápka
Daniel Vítek:13.6.2013 19:51

tu stejně nepoužívám :)

 
Nahoru Odpovědět 13.6.2013 19:51
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:13.6.2013 19:52

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:13.6.2013 19:56

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:13.6.2013 19:59

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:13.6.2013 20:16

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:13.6.2013 20:41

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
Odpovídá na Jiří Gracík
Kit:13.6.2013 20:42

SQL dotazy :)

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:13.6.2013 20:54

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:13.6.2013 21:02

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:13.6.2013 21:10

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
Neaktivní uživatel:11.6.2014 17:23

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

Nahoru Odpovědět 11.6.2014 17:23
Neaktivní uživatelský účet
Avatar
mkub
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
mkub:12.6.2014 2:47

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
Neaktivní uživatel:8.9.2014 21:00

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
Neaktivní uživatelský účet
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.