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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 23
dnes 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 6
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 14
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 15
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 4
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 773 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak na kontrolu chyb v php

26.9.2013 15:43 Denys
Jak na kontrolu chyb v php
Přečteno: 394×
Ahoj, začínám něco bastlit v php a nemůžu najít nic kloudného k mému pochopení co se týče chyb. Pokud jsem něco dělal v bash tak jsem vždy kontroloval co vrátil daný script if [[ $? == 0 ]]; then ..., poradí někdo jak se to dělá v php? Děkuji

Odpovědi

26.9.2013 15:51 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Asi bude nejlepší, když se naučíš pracovat s výjimkami.
26.9.2013 16:16 gsnak | skóre: 19 | blog: gsnak
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Pouzil by som vynimky
DOGE: DE7q1kxqvoFek7UGWBWBt47QWJTRBqVNLL
26.9.2013 21:37 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Díky, nakonec jsem vyzkoušel set_error_handler(), ale v manuálu se píše, že E_ERROR a E_PARSE odchytit nejdou, čím je tady můžu odchytit když ne funkcí set_error_handler() ? Nikde jsem nic nenašel. Děkuji
26.9.2013 21:48 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Dají se odchytit, ale ty chyby musí být v jiném souboru než funkce set_error_handler().
26.9.2013 22:07 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
To mám, ale nejde mi to, proč? Děkuji
v souboru index.php
function error_handler(){...}
set_error_handler("error_handler");
include "error.php";

v souboru error.php
include "nesmysl"; # chytne
neexistujici-funkce; # nechytne
neco # nechytne
Josef Kufner avatar 27.9.2013 00:46 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
set_error_handler je nástroj pro vývoj, logování a pro vytvoření kultivovaného pádu, nikoliv pro kontrolování, zda se něco povedlo.

Návratové hodnoty můžeš v PHP kontrolovat také obyčejným if, ale opravdu se napřed podívej na ty výjimky.
Hello world ! Segmentation fault (core dumped)
27.9.2013 01:01 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
To jsem zase vlezl do jazyka, ty jo... to fakt neexistuje způsob jak při chybě zastavit okamžitě celý běh scriptu a vypsat co se mu nelíbí?
27.9.2013 06:38 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Však tohle PHP splňuje. Při chybě zastaví okamžitě běh skriptu a vypíše co se mu nelíbí.

Popisuješ chyby, které by se v dobrém skriptu vůbec neměly vyskytovat.
27.9.2013 10:17 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Popisuješ chyby, které by se v dobrém skriptu vůbec neměly vyskytovat.
To je zavádějící...
27.9.2013 08:38 R
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Ku kazdej funkcii mas dokumentaciu. Tak podla nej skontroluj po kazdom volani, ci to zlyhalo alebo nie. Ak je problem vazny, ze sa neda pokracovat, tak pouzijes die("nejaky text").
Josef Kufner avatar 27.9.2013 12:25 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Ne. Použiješ throw new \Exception("Nejaky text");
Hello world ! Segmentation fault (core dumped)
27.9.2013 14:06 R
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Ja neprogramujem objektovo, takze ani vynimky nepouzivam.
pavlix avatar 27.9.2013 19:05 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Komu není rady...
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.9.2013 19:19 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Jak jinak chceš programovat v PHP? A jak chceš programovat bez výjimek?
pavlix avatar 27.9.2013 19:32 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Zábavnější by bylo programovat v PHP třeba bez některého písmena v abecedě.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
27.9.2013 09:13 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

Co to? Však přesně to se stane.

Pokud nějaký návratový kód nějaké fce znamená chybu aplikace tak si ten exit(); zavolej.
Zápisy jsou stejné

if [[ $? == 0 ]]; then
  exit 1
fi
if($value != 0){
  exit(1);
}
Jestli chceš PHP používat jako bash, tak používej passthru(), <irony>což je ovšem rada na zlato.</irony>.

Jediný rozdíl je v tom, že v bash-i, také díky tomu, že provoláváš vlastně jednotlivé aplikace, se do $? uloží návratový kód dané aplikace (jen a pouze integer). V PHP, jak ve většině jazyků, máš funkce, které mohou vracet cokoliv.
Černobílí svět je taky hezký, ale relita je taková že je mnoho stavů, které mohou znamenat chybu a které ne a liší se kód od kódu (stejně jako v bash-i, návratový kód jiný než nula, neznamená vždy chybu, ale klidně jen požadovanou informaci.).

Pokud je to web aplikace, tak většinou to nechceš okamžitě ukončit a, nejen proto, se používají výjimky na kontrolu chyb aplikace.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
27.9.2013 10:23 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Může mi někdo napsat jak by třeba tohle ošetřil pro představu vyjímkou?
     $file = "/foo/bar.php";

     if(file_exists($file))
     {
          if(!require_once($file))
          {
               msgError('500');
               exit();
          }
     }
     else
     {
          msgError('404');
     }
Jedno include a pul stránky kódu, to je hnus..
27.9.2013 10:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

Běžné je:

require_once('/foo/bar.php');

Pokud to opravdu chceš takto (nebudu to rozebírat):

$file = "/foo/bar.php";
if(file_exists($file))
  if(!require_once($file))
     throw new MyRegException(500);
else throw new MyRegException(400);

Ale samozřejmě to navádí to dát minimálně do fce.
function grosseReguire($file){
  if(file_exists($file))
    if(!require_once($file))
       throw new MyRegException(500);
  else throw new MyRegException(400);
}
a pak normálně volat:
grosseReguire($file);
No a na odchytávání výjimek máme
try{
  grosseReguire($file);
  /*
   * code
   */ 
}
catch(MyRegException $e){ 
  errorReg($e);
}
catch(Exception $e){ 
  error($e);
}
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
27.9.2013 11:26 Denys
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Hm, díky moc za příklad, ale pořád postrádam tu chybu, která oznamuje chybu 500 or 404, soubor neexistuje přesto chybu na obrazovce Díkynevidím..
27.9.2013 11:53 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

Chyba která oznamuje chybu grrr ?…?

reguire() ukončí běh a vypíše chybu.
Pokud nic nevidíš, tak máš vypnuto vypisování chyb, ze skriptu je lze zapnout:
error_reporting(E_ALL); případně error_reporting(E_ALL | E_STRICT);
a
ini_set("display_errors", 1);.

Pokud se bavíš o odchytávání výjimek a jejich zpracování, tak jak si to uděláš, tak to máš…

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
27.9.2013 14:11 R
Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
Include sa takto nikdy neosetruje, je to nezmysel. Ked nieco includujem, tak musim vediet, co a kde. A ked to tam v dosledku nejakej chyby nebude, tak to PHP zisti.

Nieco robis zle - neincludujes nahodou subory, ktore ti niekto "zvonku" podstrci? To je pomerne casta bezpecnostna chyba.

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.