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í
×
dnes 17:28 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2017-6074 v Linuxu zneužitelné k lokální eskalaci práv. Jde o chybu v podpoře DCCP (Datagram Congestion Control Protocol). Do linuxového jádra se dostala v říjnu 2005. V upstreamu byla opravena 17. února (commit). Bezpečnostní chyba byla nalezena pomocí nástroje syzkaller [Hacker News].

Ladislav Hagara | Komentářů: 2
dnes 15:00 | Zajímavý software

Společnost Valve vydala novou beta verzi SteamVR. Z novinek lze zdůraznit oficiální podporu Linuxu. Další informace o podpoře této platformy pro vývoj virtuální reality v Linuxu v diskusním fóru. Hlášení chyb na GitHubu.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 6
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 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ářů: 10
20.2. 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
20.2. 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ářů: 51
20.2. 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ářů: 38
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (71%)
 (4%)
 (10%)
Celkem 685 hlasů
 Komentářů: 66, poslední dnes 18:57
Rozcestník

Dotaz: Problém s přidáním znaku ! do if()

16.3.2012 14:23 Arnošt
Problém s přidáním znaku ! do if()
Přečteno: 372×
Zdravím, potřebuji poradit, na základě něčeho potřebuji napsat podmínku

s negací
if(!in_array($a, $b){}
nebo bez negace
if(in_array($a, $b){}
zkoušel jsem to takto
if($mark.in_array($a, $b){}
kde jsem dle potřeby vložil do proměnné $mark !
$mark = '!';
ale nefunguje mi to, neporadí někdo? Díky

Řešení dotazu:


Odpovědi

16.3.2012 14:34 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
bud:
if ($mark eq '!' && !in_array($a, $b) ||
    $mark ne '!' && in_array($a, $b)
   )
nebo:
if (eval($mark . 'in_array($a, $b)'))
The enemy of my enemy is still my enemy.
16.3.2012 14:46 jozinzbazin
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
Nějak mi tam chybí informace, co je to za programovací jazyk. Já to z toho kousku nepoznal.
Co to napsat stylem:
mark = true/false, zadny vykricknik
a potom 
if (mark xor in_array(...
16.3.2012 14:55 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()

Tyhle interpretované jazyky s relativně volnou syntaxí, to je mor…

// $mark = TRUE;
// $mark = FALSE;
// $mark = ($a > 5);
// $mark = !isset($_REQUEST['neg']);
// ...

if (in_array($a, $b) == $mark) {
  ...
}

P.S.: příště nezapomeňte napsat, o jaký jazyk se jedná, ne vždy je to tak snadné uhodnout.

16.3.2012 15:04 Marek
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
Omluva, je to PHP, jinak tohle chci! :-)

if (eval($mark . 'in_array($a, $b)')) ale nefunguje to :(

Parse error: syntax error, unexpected T_STRING

Nevíte co se mu nelíbí? Díky
16.3.2012 15:12 Sten
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
Nelíbí se mu to, že $a a $b se převedou na hodnoty.

Btw. když máte problém pochopit tuhle obrovskou bezpečnostní díru, fakt raději použijte if(in_array($a, $b) == $expected)
16.3.2012 15:29 Arnošt
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
To nemůžu použít, jelikož nevím co to má dělat...

16.3.2012 15:31 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()

V tom případě nemůžete použít ani tu hrůzu s eval(). :-)

(Omlouvám se, nešlo odolat.)

16.3.2012 15:37 Arnošt
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
:-D
LangPa avatar 16.3.2012 20:25 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
řešení je
// $expected - TRUE jako bez vykřičníku, FALSE jako vykřičník
// když není potřeba automatická typová konverze (implicitní přetypování),
// je lepší používat operátory === a !==
if(in_array($a, $b) === $expected)
{
    ...
}

kde $expected je buď TRUE (pokud nebyl vykřičník) nebo FALSE (pokud měl být vykřičník)

jinak konstrukce if() ocěkává typ boolean (explicitně je to TRUE nebo FALSE hodnota) a to ve všech jazycích, které mají tyb bool, boolean, doporučuju něco o boolean logice přečíst

Negace se udělá unárním operátorem !, to chápete, ale už nedošlo, že nějaký eval je zbytečný.

Eval opravdu ne :-) security, execution speed a já ještě nevím proč...

jinak doporučuju hodně číst o programování a možná i obecně o algoritmizaci :-)

doporučení neuvádím, stačí Wikipedia nebo Google ;-)
16.3.2012 15:18 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
myslel jsem ze je to perl. tam by pouziti ' misto " zabranilo substituci za $a a $b.V PHP by mohl pomoct backslash 'in_array(\$a, \$b)', nebo to udelat s tim $expected jak pise Sten.
The enemy of my enemy is still my enemy.
Tarmaq avatar 16.3.2012 15:50 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s přidáním znaku ! do if()
udelej to jak ti radi ostatni, vyhni se pouziti eval. V dokumentaci pisou:
The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to pass any user provided data into it without properly validating it beforehand.
#vyber jeden z nasledujicich radku
$expected = false; #s negaci
$expected = true; #bez negace

if (in_array($a, $b) == $expected) {
  ...
}
Mozna bys mohl uvest na zaklade ceho se rozhodujes jestli tam ten vykricnik byt mel nebo ne, nejaka data v $_POSTu? Pokud jo tak to muzes udelat i takhle:
if (in_array($a, $b) == intval($_POST['bez_negace'])) {
  ...
}
Don't panic!

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.