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 16:11 | Bezpečnostní upozornění

    V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.

    Ladislav Hagara | Komentářů: 2
    včera 13:55 | IT novinky

    Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 12:11 | Nová verze

    Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

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

    Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.

    Ladislav Hagara | Komentářů: 14
    včera 04:44 | Nová verze

    TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.

    Ladislav Hagara | Komentářů: 0
    9.7. 17:00 | IT novinky

    Europarlament podpořil pozměněnou verzi výjimky známé jako „chat control 1.0“ umožňující firmám skenovat soukromou komunikaci na internetu kvůli ochraně dětí před zneužitím. Pozměňovací návrhy přijaté europoslanci však počítají s tím, že z výjimky bude vyřazena šifrovaná komunikace. Výjimka přestala platit začátkem dubna poté, co se Evropský parlament a Rada EU nedokázaly shodnout na jejím prodloužení. Rada následně přijala

    … více »
    Ladislav Hagara | Komentářů: 12
    9.7. 04:44 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 0
    9.7. 04:22 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.

    Ladislav Hagara | Komentářů: 4
    9.7. 04:00 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. 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 téměř 16 let (od srpna 2010 do června 2026).

    Ladislav Hagara | Komentářů: 0
    8.7. 19:44 | IT novinky

    Tribunál Soudního dvora Evropské unie dnes zamítl několik žalob, v nichž se americká společnost Apple ohrazovala proti pravidlům fungování velkých technologických společností na unijním trhu. Applu se nelíbilo, že jeho obchod s aplikacemi a operační systém iOS mají podléhat přísnějším povinnostem jen proto, že Brusel firmu považuje za takzvaného gatekeepera, tedy strážce přístupu.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2088 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Zend framework V

    18.4.2008 22:51 | Přečteno: 3211×

    Zend framework - formuláře

    Podstatná část dat, která uživatel předává serveru je předávána přes formulář, který uživatel vyplní a odešle na server. Tam je ověřeno, zda jsou data validní a případně zpracovány. Zend obsahuje třídu Zend_Form, která krom toho, že umožňuje vytvořit formulář a získat z něj data navíc umožňuje další věci, jako navěšení validátorů pro validaci obsahu, přidání filtrů a nebo obalení jednotlivých elementů formuláře HTML tagy. Toto vše ani nemusíme provádět v php kódu, celý formulář totiž můžeme definovat v konfiguračním souboru. Osobně ale nejvíce oceňuji právě možnost přidání validátorů, případně filtrů, na jednotlivé elementy, přičemž většina běžně používaných validátorů i filtrů je již v Zendu implementovaná.

    Po vytvoření formuláře obvykle jako první nastavíme akci, která se provede při odeslání formuláře a metodu, jakou se budou předávat data:

      $form = new Zend_Form();
      $form->setAction('/zendTest/login/auth')
           ->setMethod('post');
    
    Pomocí metody setAttrib('attribName','attribValue') můžeme formuláři nastavit jakýkoli další atribut. Elementy formuláře vytvoříme zavoláním metody createElement('elementType', 'elementName'). Na elementy formuláře pak můžeme navěsit validátory (a filtry):
      $login = $form->createElement('text', 'username');
      $login->addValidator('alnum')
            ->addValidator('stringLength', false, array(5))
    	->setRequired(true)
    		
      $passwd = $form->createElement('password', 'passwd');
      $passwd->addValidator('StringLength', false, array(5))
    	 ->setRequired(true)
    
    V tomto příkladě jsme vytvořili dva elementy formuláře, pole pro zadání uživatelského jména a pole pro zadání hesla. Obě políčka musí být vyplněná (setRequired(true)) a obsahovat minimálně pět znaků (addValidator('StringLength', false, array(5))). První parametr metody addValidator je jméno validátoru, druhý říká, zda má pokracovat vyhodnocování dalších validátorů, pokud podmínka aktuálního validátoru není splněná a poslední předává další parametry potřebné pro vyhodnocení. První validátor (alphanum) vyžaduje, jak již název napovídá, aby login uživatele obsahoval jen alfanumerické znaky. Filtry by se přidávaly obdobně:
      $login->addFilter('StringtoLower');
    
    Seznam všech již naprogramovaných filtrů a validátorů naleznete v manuálu a pokud vám nebudou vyhovovat, můžete si napsat vlastní.

    Na závěr oba prvky přidáme do formuláře (zatím jsme je jen vytvořili, ale nikoli přidali do formuláře) a přidáme ještě poslední element - tlačítko pro odeslání:

      $form->addElement($login)
           ->addElement($passwd)
           ->addElement('submit', 'login', array('label' => 'Login'));
    
    Formulář pak předáme do view:
      $this->view->form = $form;
      $this->render('showform');
    
    a ve view (showform.phtml) zobrazíme:
    <?= $this->form ?>
    

    Zda jsou data odeslaná přes formulář validní zjistíme zavoláním metody isValid():

    $form->isValid($_POST)
    
    Pokud ano, data z formuláře můžeme získat několika způsoby, např:
      $values = $form->getValues();
    
    (a nebo třeba přímo z requestu: this->_request->getPost('username'))

    Na závěr se ještě letmo zmíním o dekoratérech - prvcích, které elementy formuláře obalují HTML tagy. Opět platí, že si můžeme definovat vlastní. Pokud neučíme jinak, jsou k formuláři připojeny tyto čtyři dekoratéry:

    Dekoratéry můžeme odstranit zavoláním metody removeDecorator('name') na daném elementu:
      $login->removeDecorator('Errors');
    

    Celý kontroler pro přihlášení uživatele (zatím bez autentizace uživatele, jen odelání formuláře) by mohl vypadat takto (příklad je až na drobné úpravy celý převzatý z manuálu Zendu):

    <?php
    class LoginController extends Zend_Controller_Action
    {
    	public function getLoginForm(){
    		$form = new Zend_Form();
    		$form->setAction('/zendTest/login/auth')
    		->setMethod('post');
    		
    		$login = $form->createElement('text', 'username');
    		$login->addValidator('alnum')
    		->addValidator('stringLength', false, array(5))
    		->setRequired(true)
    		->removeDecorator('Errors');
    
    		$passwd = $form->createElement('password', 'passwd');
    		$passwd->addValidator('StringLength', false, array(5))
    		->setRequired(true)
    		->removeDecorator('Errors');
    		
    		$form->addElement($login)
    		->addElement($passwd)
    		->addElement('submit', 'login', array('label' => 'Login'));
    		return $form;
    	}
    
    	public function indexAction(){
    		$this->view->form = $this->getLoginForm();
    		$this->render('showform');
    	}
    
    	public function authAction(){
    		if (!$this->getRequest()->isPost()) {
    			return $this->_forward('index');
    		}
    		$form = $this->getLoginForm();
    		if (!$form->isValid($_POST)) {
    			$this->view->form = $form;
    			return $this->render('showform');
    		}
    		// authentization 
    		// ...
    	}
    }
    

           

    Hodnocení: 75 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    Daniel Kvasnička ml. avatar 18.4.2008 23:42 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Zend framework V
    No vida, pred chvili jsem se prave rozhodl v jedne aplikaci pouzit Zend_Form misto formularoveho/validacniho reseni dodavaneho s Kohanou. Kazdopadne ale jen na tu validacni cast, markup si pisu rucne.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    19.4.2008 09:50 changeit | Bratislava
    Rozbalit Rozbalit vše Re: Zend framework V
    ja som si napisal skript ktory parsuje html formular, a podla neho vytvori Zend_Form, takze v podstate pisem len markup a metodu na spracovanie hodnot z formu.
    Daniel Kvasnička ml. avatar 19.4.2008 17:54 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Zend framework V
    A jak do toho markupu zaclenis veskere informace o validatorech a omezenich na jednotlivych polich tak, aby ten vygenerovany Zend_Form byl plnohodnotny? A jak resis znovunaplneni formu (texty, selecty, checkboxy) a vypisy validacnich chyb, kdyz mas ten formular jen v HTML? ...ja pouzivam pro templaty PHPTAL, takze me napada, ze by podobna vec sla docela zajimave resit pres XSLT. Ale uz jsem si integraci vyresil jinak.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    20.4.2008 17:02 changeit | Bratislava
    Rozbalit Rozbalit vše Re: Zend framework V
    formular je v html ale ten nevykreslujem, vykreslujem len zend_form ktory som podla neho vytvoril. zatial som nejak validatory neriesil ale napr. aby to bola povinna hodnota staci elemntu pridat atribut required="true" a je to. Robene je to ako smarty block plugin.
    19.4.2008 20:00 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Zend framework V
    Ajťáci obvykle decorator do češtiny převádějí jako dekorátor, ovšem jednoduchý "test Googlem" dává dekoratérovi řádově větší váhu. Byl by někdo schopný argumentovat pro a proti dekorátoru a dekoratérovi ve smyslu návrhového vzoru Decorator?
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    19.4.2008 20:37 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Zend framework V
    Heh, taky jsem psal dekorator, pak jsem to ale projel kontrolou pravopisu a ta mi dekorator opravovala na dekorater. Moc jsem to neresil a nechal dekorater. Ted jsem se na to zkousel podivat a vypada to, ze v cestine existuje pouze slovo dekorater, dekorator patrne bude anglicismus zatazeny sem ajtaky:-) Aspon podle www.pravidla.cz slovo dekoratér neexistuje. Stejne tak slovnik.cz dekorator neprelozi, ale dekorater prelozi mimo jine i jako decorator.
    23.12.2008 11:23 noname sry
    Rozbalit Rozbalit vše Re: Zend framework V

    muzu se optat jakej je  rozdil, ve volani metody? diky

    $this -> getLoginForm();

    a

    self::getLoginForm();

     

    Založit nové vláknoNahoru

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