Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.05.09
Prihlásený: 14.02.14
Príspevky: 106
Témy: 52
Príspevok NapísalOffline : 10.06.2013 13:47

Zdravím, mám dve otázky. Prvou z nich je prečo je bezpečné neukončovať skripty značkou ?>. Prečo je lepšie nedať am nič? Stretol som sa s tým na viacerých portáloch keď som si pozeral rôzne návody a postupy, ale nikde som nenašiel uspokojivú odpoveď. Tiež by som bol rád keby mi niekto objasnil nasledujúci kúsok kódu. Čo presne ošetruje ? Ďakujem za každú odpoveď.

Kód:
(empty($_GET['p'])) ? '' : $_GET['p'];


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 10.06.2013 13:56

Určite php skripty ukončuj, kde si sa dočítal, že je to lepšie neukončovať?

Ten tvoj kus kódu je tzv. ternárny operátor a znamená to toto, trochu prehľadnejšie:
Kód:
$p = $_GET['p'];
empty($p) ? '' : $p;

funkcia empty zisťuje, či je $p prázdne.
Ternárny operátor znamená v postate toto
Kód:
if( empty($p) )
    dosaď '';
else
    dosaď $p;

len skracuje zápis a môže sa použiť "inline" Viac si môžeš vygoogliť :)
A že čo to ošetruje? No v tomto kontexte mi to príde trochu zbytočné, lebo je jedno, či použijem prázdnu hodnotu, alebo ''
Často sa to takto používa s funkciou isset, kde by použitie nedefinovanej premennej vyvolalo chybu.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.05.09
Prihlásený: 14.02.14
Príspevky: 106
Témy: 52
Príspevok Napísal autor témyOffline : 10.06.2013 14:05

Ďakujem za vysvetlenie. To s ukončovaním skriptov som sa dočítal napríklad tu:
Kód:
http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/


Konkrétne: Notice that I have purposely not included the closing ?>. This is to avoid injection of any extra whitespaces in our output. For more, I suggest you view Zend’s coding style.

Podobné opatrenie som si všimol vo viacerých článkoch.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 10.06.2013 14:16

Hm, ja s php v praxi nerobím, takže takéto vychytávky ma veru obchádzajú. Na tom odporúčanom Zend's coding style som sa dočítal toto
( http://framework.zend.com/manual/1.12/e ... tting.html )
Citácia:
For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response.

A dáva to aj celkom zmysel, že sa tak vyhneš nechceným bielym znakom na konci. Za ukončovacím php tagom sa už začne vyhodnocovať html a tam niečo môže náhodou ostať a takúto chybu by som veru nechcel hľadať vo veľkom projekte.

Ale je to len môj odhad, možno to má aj hlbší zmysel a napíše ti ho tu niekto viac znalý :)







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
PHP skripty bez ?>

Registrovaný: 05.02.13
Prihlásený: 26.10.23
Príspevky: 59
Témy: 3
Príspevok NapísalOffline : 10.06.2013 22:32

Ak nepoužívaš nejaký framework u ktorého sa to nedoporučuje, tak určite nie je naškodu php uzatvárať.
Avšak framework ako napr. Codeigniter - tak z vlastnej skúsenosti viem, že vo view súboroch sa nedoporučuje uzatvárať PHP.


Offline

Čestný člen
Čestný člen
PHP skripty bez ?>

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 10.06.2013 22:59

BX (a ostatní) - už dlhú dobu je aj na php.net odporúčané vynechať ukončovaciu značku ?> - teda ak to situácia dovoľuje (ak je php priamo medzi html kódom, tak to možné nebude). Predídeš tak nechceným znakom.

PepperSK - codeigniter používam, ale chcel si asi napísať, že nepoužívajú ukončovacie značky v controlleroch, vo views, ak je tam HTML, ukončovaciu značku použiť musíš.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Php skripty

v PHP, ASP

10

4847

28.09.2006 11:57

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Neviem spustat PHP skripty v PC

v PHP, ASP

1

485

26.02.2011 16:20

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php ->mysql ->php Help.zoradit

v PHP, ASP

4

589

20.06.2009 12:44

KViki Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. $pcforum->getForumActivity('PHP, ASP', 2012)/$pcforum->getForumActivity('PHP, ASP', 2022) - Warning: Division by zero

v PHP, ASP

4

2290

20.05.2022 13:51

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Skript bez bez PHP len s Thumbs.db

v Redakčné systémy

1

830

22.10.2008 20:14

mariachi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Presun domeny -> Synology NAS -> Mail server -> Dynamicka IP -> DDNS -> SPAM???

v Úložné zariadenia

5

617

02.10.2018 14:46

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP -> XML

v PHP, ASP

3

620

01.05.2010 8:47

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. VBScript => PHP

v JavaScript, VBScript, Ajax

4

646

02.10.2009 10:04

Snacker Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP -> javacript

v PHP, ASP

10

507

26.04.2008 13:01

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php-fusion --> joomla?

v Redakčné systémy

0

536

26.02.2010 20:20

rEnEeK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP bez netu

v PHP, ASP

2

502

14.04.2009 13:37

lio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php bez prípony

v PHP, ASP

13

708

14.03.2008 17:20

Svolo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <select> v PHP

v PHP, ASP

5

1112

18.04.2007 18:16

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php-fusion->new panel

v Redakčné systémy

4

1131

26.07.2007 23:27

Darkage Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. >100°C bez záťaže

v Intel čipové sady

6

482

02.07.2014 14:33

Kraliček Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajax + PHP Class - server bez reakcie

v JavaScript, VBScript, Ajax

3

577

20.07.2013 2:36

math-ew Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra