abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 0
včera 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
včera 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 7
včera 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 4
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 31
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 3
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 57
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 670 hlasů
 Komentářů: 53, poslední včera 18:38
Rozcestník
Reklama

Dotaz: PHP Upřesnění scriptu

1.3.2011 18:14 Libor Kron
PHP Upřesnění scriptu
Přečteno: 160×
Zdravím,

mám kod
$page .= "<td><input type=\"text\" name=\"name\" value=\"$_POST['name']\" /></td>";
a PHP na mě křičí, že Notice: Undefined index: name

Co to přesně znamená? že prom $_POST['name'] neexistuje, nebo ze existuje ale je prazdna nebo co přesně? Jak to můžu opravit?

Když tu prom nadefinuji
$_POST['name'] = 'nevim co sem napsat';
tak uz ji pak opravdová prom. nepřepíše, což je logické, ale nevim jak to pořádně ošetřit. Mužu jeste napsat podminku pokud neexistuje tak ji nějak nadefinuji (nevim sice jak) a pokud existovat bude tak se podminka nevykona. Ale nevím no jestli je to OK.

Děkuji za pomoc ;)

Odpovědi

poky74 avatar 1.3.2011 18:31 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu

Asi nejjednodušší bude něco jako

if(!isset($_POST['name']))$_POST['name']="";
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
1.3.2011 18:41 voda | skóre: 28 | Praha
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu

Když už tak raději takto:

$page .= '<td><input type="text" name="name" value="'(.isset($_POST['name']) ? $_POST['name'] : '').'" /></td>';
1.3.2011 18:54 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Daj pred dolar zavinac: @$_POST['name']
1.3.2011 19:32 l4m4
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Vynikající nápad, jak do toho udělat ještě větší díru.
1.3.2011 19:00 camel1cz | skóre: 23
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
No pojal bych to jinak - když píšete aplikaci, musíte mít za všech okolností jasno, co je v proměnné... o těch, poslaných přes REQUEST to platí dvojnásob!

Řešil bych to tedy zpracováním vstupu. Vlastně "překopírováním" hodnot do proměnných aplikace, přičemž současně bych udělal validaci dat, escapování, atd.

Pokud uděláte výše zmíněné, tak ten problém co zmiňujete "sám" zmizí...
1.3.2011 19:47 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
To je dost zející XSS díra. Minimálně kolem toho dejte htmlentities().
In Ada the typical infinite loop would normally be terminated by detonation.
1.3.2011 20:18 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Je to upozornění, že v poli $_POST[] není index 'name' definován, tedy to neznamená že by byl prázdný, ale prostě vůbec neexistuje, neboť nevznikl. Takže ve formuláři nejspíš nebyl prvek se jménem 'name' formou POST odeslán či přijat. Obecně není dobré se na existenci takovýchto proměnných spoléhat, i kdyby byl formulář udělaný správně, vždycky může přijít někdo s nekalými úmysly a podvrhnout upravený požadavek.

Zmíněné isset() je možný způsob jak to ošetřit.

Vámi navržené řešení "nějak ji nadefinovat" může a nemusí být správné, z uvedených informací to nelze určit. Měl byste být sám schopen posoudit, jestli to 'name' je něco co potřebujete znát, nebo to lze nějak vygenerovat. Příklad: pokud vypisuji informace o produktech třeba z databáze a produkty jsou identifikovány pomocí 'name', nejspíš bez 'name' nebudu vědět co vypsat. Mohu vypsat informace o náhodném produktu, ale většinou spíš vypíšu chybovou hlášku, že uvedený produkt nebyl nalezen. Naopak pokud 'name' označuje třeba jméno souboru, která chci uložit třeba na server, tak mohu vygenerovat náhodné jméno a oznámit, že soubor byl uložen pod tímto jménem.
1.3.2011 21:14 Libor Kron
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Tak ze je lepsi na zacátku kodu promenou -vzdy definovat $prom=""; -nebo dat podminku jestli je plna if(!empty($prom) $add = $prom;)); -nebo dat podminku jestli existuje if(isset($prom) $add = $prom;));

Díky
1.3.2011 21:15 Libor Kron
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Tak ze je lepsi na zacátku kodu promenou
-vzdy definovat $prom="";
-nebo dat podminku jestli je plna if(!empty($prom) $add = $prom;));
-nebo dat podminku jestli existuje if(isset($prom) $add = $prom;));
Díky
2.3.2011 02:17 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Bavíme se o proměnné, která nemusí existovat.

Buďto lze před každým jejím použitím udělat if(isset($prom)) {... } else {...}.

Nebo (zejména pokud by výše uvedené kód dost komplikovalo) pokud lze kód napsat tak, že se bude chovat "dobře" třeba pro prázdnou proměnnou, a současně to nebude kolidovat se situací, kdy uživatel zadal prázdnou proměnnou, lze ji (v případě že neexistuje) na začátku nastavit na prázdnou, zbytek kódu je pak jednodušší.

Místo na prázdnou ji lze nastavit na nějakou defaultní či nějak vygenerovanou hodnotu, to záleží na situaci.

Vždy záleží na tom, co reálně děláte. Je rozdíl nepodat daňové přiznání (proměnná nedefinovaná) a podat daňové přiznání s nulovým doplatkem/přeplatkem (proměnná prázdná). Někdy je "nedat někomu žádnou facku" (prázdná proměnná) totéž, jako dát mu nezjištěný počet facek (nedefinovaná proměnná), ale někdy to jedno není.

Můžete si stanovit nějakou politiku (třeba vždy proměnnou nějak nastavit), ale rovnou počítejte s tím, že nastane situace, kdy by se stav "undefined" docela hodil ;)
2.3.2011 02:20 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP Upřesnění scriptu
Když čtu váš dotaz tak v podstatě jste všechny ty možnosti uvedl, takže odpověď je "ano, je to OK" :) Můžete psát podmínky, můžete proměnnou nastavit... Pokud víte co píšete, tak budete i vědět, kterou z uvedených možností zvolit. Trochu z toho dotazu mám pocit že úplně nevíte, co píšete ("nevím jak ji mám nastavit"), takže doporučuji se lépe seznámit s tím kódem, co že to vlastně dělá a jaká mohou být vstupní data.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.