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 04:55 | Nová verze

    Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).

    Ladislav Hagara | Komentářů: 0
    včera 19:00 | IT novinky

    Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.

    Ladislav Hagara | Komentářů: 0
    včera 16:00 | IT novinky

    Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.

    Ladislav Hagara | Komentářů: 8
    včera 12:11 | Pozvánky

    V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »

    David Heidelberg | Komentářů: 0
    9.8. 17:22 | Nová verze

    Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s

    … více »
    Ladislav Hagara | Komentářů: 1
    9.8. 12:44 | Nová verze

    Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    8.8. 04:44 | IT novinky

    U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).

    Ladislav Hagara | Komentářů: 8
    7.8. 16:00 | Bezpečnostní upozornění

    Vládní CERT upozorňuje (𝕏) na sérii bezpečnostních záplat (CVSS 9.9) v produktech Cisco řešících kritické zranitelnosti umožňující obejití autentizace, eskalaci oprávnění, vzdálené spuštění kódu a odepření služby. Úspěšné zneužití může útočníkům umožnit získat neoprávněný přístup k dotčeným systémům, kompromitovat zařízení Cisco Catalyst SD-WAN a Cisco IOS XE, spustit libovolný kód, zpřístupnit citlivé informace nebo narušit dostupnost postižených systémů.

    Ladislav Hagara | Komentářů: 6
    7.8. 15:33 | IT novinky

    Soud v americkém státě Nové Mexiko ve čtvrtek nařídil internetové společnosti Meta Platforms zaplatit 567 milionů dolarů (téměř 12 miliard Kč) za újmy, které její platformy působí mladým lidem. S přihlédnutím k dřívějšímu verdiktu tak má společnost celkem zaplatit 942 milionů dolarů, což je malý zlomek jejího ročního výnosu, který loni činil 60 miliard dolarů. Čtvrteční verdikt firmě také nařizuje, aby změnila způsob, jakým její

    … více »
    Ladislav Hagara | Komentářů: 23
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2366 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    php komponenty

    12.1.2007 11:21 | Přečteno: 2136× | Programování

    Ještě mám dvě otázky na PHP. V tom softu(viz minulý zápis) zkouším používat komponenty podle tvaru url, takže např.: main.php?com=article&task=edit&item=13 nastartuje komponentu pro psaní článků a editaci položky 13

    A problém mám právě s tím com=neco. Prozatím to řeším tak, že z hlavní stránky main.php(ukázka je z admin rozhraní, takže index.php slouží pro přihlášení) zavolám funkci :

    $menu= isset ($_GET["com"]) ? $_GET["com"] : NULL;
    showamenu($menu);
    
    , která je definována takto:
    function showacontent($com) {
    	global $basePath;
            //To je jenom prozatím, než mě napadne co dát na úvod.
    	if (is_null($com)) {
    		echo "domů";
    	} else {
    		if (!(file_exists($basePath.'/components/'.$com.'/'.$com.'.php'))) {
    			msg('NE_COMPONENT', 0);
    		} else {
    			include_once $basePath.'/components/'.$com.'/'.$com.'.php';
    		}
    	}
    }
    

    Tedy pomocí includování různých souborů. Protože se na tom to PHP učím, tak by mě zajímalo, jestli se to dá řešit ještě nějak lépe?


    A ještě ta druhá otázka: Když mám html hlavičku definovanou v main.php, dá se nějak upravit v těch komponentách? Něco jsem zahlédnul o ob_start/flush. Pomůžou mi tyto funkce.

    Za odpovědi předem děkuji.

           

    Hodnocení: 0 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    12.1.2007 11:52 Martin Keder
    Rozbalit Rozbalit vše Re: php komponenty
    Nevím, připadá mi, že include s parametrem uvedeným u URI je potenciální bezpečnostní díra. Celkem v pohodě se tak můžu dostat i jinam, než se očekává. Radil bych to řešit spíš pomocí pole, které bude mít v klíčích povolené hodnoty.
    12.1.2007 13:21 repli
    Rozbalit Rozbalit vše Re: php komponenty
    vetsina webhostingu ma vyrazene includovani url adres a pak by melo stacit zajistit aby se tam nikdy nedostalo ../
    12.1.2007 12:43 Arnošt Málek | skóre: 17
    Rozbalit Rozbalit vše Re: php komponenty
    Tak tak, urcite nepripojovat to, co se posle jako parametr. Ja bych pouzil reseni:
    switch($parametr):
      case 'p1':
        include('./Inc/soubor1.php');
      break;
      case 'p2':
        include('./Inc/soubor2.php');
      break;
      case 'p3':
        include('./Inc/soubor3.php');
      break;
      default:
        echo 'Chybny parametr'; exit;
    endswitch;
    
    Samozrejme osetreni chyby atp. je treba napsat tak, aby to bylo podle predstav ...
    12.1.2007 13:21 Martin Keder
    Rozbalit Rozbalit vše Re: php komponenty
    Switch ma tu nevyhodu, ze se musi konfigurovat zasahem do kodu. Radeji bych to udelal tak, ze si udelam konfiguracni soubor, ve kterem zalozim pole. To bude mit prvky ve formatu hodnota_URL_parametru -> pripojovany_soubor. Pak staci jen overit existenci klice a smele includovat.
    12.1.2007 13:53 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: php komponenty
    - switch: toto určite nie, radšej:
    $map = array (
      'p1' => 'inc/service1.php',
      'p2' => 'inc/service2.php',
       ...
    );
    
    a funkcia array_key_exists

    - "konfiguračný súbor": v tom prípade bude bezpečné, ak budete vstupný parameter kontrolovať, napr, nesmie obsahovať iné znaky ako "[-.a-zA-Z0-9]"

    12.1.2007 13:56 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: php komponenty

    To je něco takového co jsem hledal, akorát že lepší to bude asi dát do databáze, ještě přemýšlím jestli by to nešlo udělat úplně bez includování, že zavolám funki, která se rozhodne zavolá podle com=neco a zavolá to neco.

    12.1.2007 14:18 Martin Keder
    Rozbalit Rozbalit vše Re: php komponenty
    No, vzhledem k tomu, že stejně bude potřeba udělat konfigurák pro připojení k databázi, neváhal bych tam přidat i výše zmíněné pole. Ušetří se tím pár dotazů.
    12.1.2007 15:42 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: php komponenty
    Ale zase by se zkomplikovalo přidání dalších komponent:-(. Kdybych tam udělal instalátor, tak mi komponentu do databáze přidá jednoduše, zatímco do souboru by už to bylo složitější.
    12.1.2007 15:52 rgb | skóre: 2 | blog: rgblog
    Rozbalit Rozbalit vše Re: php komponenty
    pole a vypisovani vsech moznosti je naprosto zbytecny, bohate staci osetrit parametr na vyskyt nechtenych znaku:
    if (!preg_match("/^[a-z0-9\-]+$/i", $parametr)
    {
            header('HTTP/1.1 404 No hackers please');
            exit();
    }
    
    :-)
    12.1.2007 18:20 Arnošt Málek | skóre: 17
    Rozbalit Rozbalit vše Re: php komponenty
    Switch sem daval proto, ze autor mel uvedeno if - else ... tudiz sem usoudil, ze bude pridavat dalsi moznosti a chtel jsem jej navest na switch, misto if - else {if - else}, pripadne if - elseif - elseif ... switch me pripada "cistsi" - citelnejsi.

    Co se tyka pouziti nejakeho "konfiguraku" - at uz pole, objektu, XML, databaze nebo ja nevim ceho, jiste je to dobry napad. Ja pouzivam obe varianty, v zavislosti na tom, co se mi zda v danem okamziku lepsi. Nekdy mi prijde vhodnejsi napr. ten switch, jindy konfiguracni soubor ... to si musi kazdy zvazit.
    Josef Kufner avatar 13.1.2007 01:24 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php komponenty
    Includovat všecko do jednoho souboru je pěknej humus. Udělej si adresář, kde budou jen "knihovny", tj. deklarace trid a tela funkci, co neco delaji. Pak pro kazdou akci udelej jeden soubor, ktery si includne co potrebuje. Jednoduche "hello world" by mohlo vypadat tedy takto:

    hello_world.php:
    <?
    require_once 'lib/page.php';
    $pg = new Page();
    $pg->data['text'] = "hello world";
    $pg->render();
    ?>
    A v lib/page.php bude veskery kod, ktery uplaca html kod stranky a treba i jednoduchy sablonovaci system. Ten u sveho posledniho webu delam tak, ze lib/page.php si includne template/neco.php, kde je kopec html doplneny o <? echo $d['neco'];?>. Je to jednoduche a prakticke. V sablonach pak muze byt i slozitejsi kod treba na vykresleni tabulky, ale je dobre udrzovat poradek a udrzovat oddelene vykreslovani a logiku aplikace.
    Hello world ! Segmentation fault (core dumped)
    13.1.2007 11:40 Goffix | skóre: 25 | blog: Powered by ArchLinux | Hradec Králové
    Rozbalit Rozbalit vše Re: php komponenty
    Proc byto mel byt humus? Mne naopak pripada "cistsi", prehlednejsi a uzitecnejsi prepsat ten tvuj hello world nejak takhle:

    hello_world.php:
    <?
    $pg->data['text'] = "hello world";
    ......
    ?>
    
    index.php:
    <?
    require_once 'lib/page.php';
    $pg = new Page();
    require('hello_world.php'); // Zde by mohl byt ten switch, apod...
    $pg->render();
    ?>
    
    Mozna jsem te jen nepochopil, ale takhle mi to osobne vyhovuje mnohem vic a nemusim v kazdym skriptu typu "hello_world.php" psat to same dokola ;-).
    Josef Kufner avatar 13.1.2007 13:01 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php komponenty
    Toho co se opakuje v každém souboru je málo – jeden require_once pro každou použitou knihovnu a jedno vytvoření objektu. Na oplátku vidíš v jednom souboru naprosto všecko, co ta která část aplikace používá a přehlednost jednotlivých části je úplně někde jinde. Hlavně pro ty, ktří to budou luštit po tobě – include je jen jednosměrná vazba, takže dohledávat to v opačném směru je velmi obtížné.

    Dále taky dostaneš zadarmo hezčí URL. Přidání něčeho, co nepoužívá index.php nenaruší návrh celé aplikace a výjimky celkově se dělají daleko pohodlněji. Taky je výrazně menší šance, že jedna úprava někde ovlivní něco úplně jiného. A počkej až se ti to trošku rozroste.
    Hello world ! Segmentation fault (core dumped)
    13.1.2007 13:17 Goffix | skóre: 25 | blog: Powered by ArchLinux | Hradec Králové
    Rozbalit Rozbalit vše Re: php komponenty
    Ja pracuji na hodne velkem projektu (teda bude hodne velkej) timto zpusobem a prave, ze mi prijde, ze v tom je velice hezkej poradek. A prijde mi i tak nejak lepsi, kdyz se prave pouziva jen a pouze index.php, nez to mit rozestrkany vsude mozne... takhle mam sjednoceny osetreni vstupu, zpracovani vystupu, apod.. a nemusim to upravovat vsude mozne..

    Argument hezci URL bych rekl, ze v tomto pripade docela pada, jelikoz reseni pres index.php + mod_rewrite je neomezene ;-).

    PS: Je jasny, ze se o tom moc neda debatovat, jelikoz je to kazdymu podle vkusu ;-).
    Josef Kufner avatar 13.1.2007 15:12 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php komponenty
    Právě tyhle ošetření všeho možného ti udělá ta jedna knihovna, kterou si napíšeš. A rozstrkaný to nemáš všude možně, ale úplně stejně jako když použiješ jen index.php + includy jednotlivých modulů.

    Klíčový rozdíl je ten, že při použití index.php+include nevidíš z includovaného souboru co mu index.php předává a kde se to inicializuje. Kdežto pokud máš pro každou funkci jeden soubor, který si includne co potřebuje, tak to vidíš a máš v tom přehled. Což ti hodně usnadní orientaci v kódu a dohledávání chyb. V tom ostatním to vyjde skoro nastejno.

    ps: Dělám na jednom projektu, který používá právě index.php+include a má >100K řádek.
    Hello world ! Segmentation fault (core dumped)
    13.1.2007 18:24 Goffix | skóre: 25 | blog: Powered by ArchLinux | Hradec Králové
    Rozbalit Rozbalit vše Re: php komponenty
    Tak kdyz vim, ze je kolem meho skriptu, ktery includuju do indexu jen ten obsah indexu, tak prave mam velkej prehled o tom, co mam ve skriptu za promenne ;-).

    No jak pisu. Je to dost subjektivni pohled na vec.
    Josef Kufner avatar 13.1.2007 18:40 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php komponenty
    Mno, jak myslis. Ja te varoval … ;-)
    Hello world ! Segmentation fault (core dumped)
    14.1.2007 01:25 Goffix | skóre: 25 | blog: Powered by ArchLinux | Hradec Králové
    Rozbalit Rozbalit vše Re: php komponenty
    :-) No programuju v php uz vic jak 5 let a tak jak to myslis ty, tak jsem to delal driv... vim moc dobre, proc to ted delam jinak ;-). Ono je to taky hlavne dost o tom, co od te aplikace clovek ocekava.

    Založit nové vláknoNahoru

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