PHP je výkonný jazyk na tvorbu webových aplikácií, no aj skúsení programátori sa v ňom môžu dopustiť chýb. Niektoré chyby spôsobujú nefunkčnosť aplikácie, iné môžu viesť k bezpečnostným problémom. V tomto článku sa pozrieme na najčastejšie chyby v PHP a ukážeme si, ako sa im efektívne vyhnúť.
Chyby v PHP môžu vzniknúť v dôsledku nesprávnej syntaxe, logických omylov, nesprávneho spracovania údajov alebo nedostatočného zabezpečenia aplikácie.
Riešenie týchto chýb je dôležité pre:
;
PHP vyžaduje, aby každý príkaz končil bodkočiarkou. Ak na to zabudnete, spôsobíte syntax error.
<?php echo "Ahoj, svet!" echo "Druhá veta"; ?>
Riešenie: Uistite sa, že každý príkaz končí bodkočiarkou.
<?php echo "Ahoj, svet!"; echo "Druhá veta"; ?>
Ak sa pokúsite použiť premennú, ktorú ste nedefinovali, PHP vypíše upozornenie.
<?php echo $meno; ?>
Riešenie: Pred použitím premennej sa uistite, že existuje.
<?php $meno = "Peter"; echo $meno; ?>
PHP umožňuje voľné porovnávanie (==
) aj striktné porovnávanie (===
).
<?php $cislo = "5"; if ($cislo == 5) { echo "Hodnoty sú rovnaké"; // Pravda } if ($cislo === 5) { echo "Hodnoty a typy sú rovnaké"; // Nepravda } ?>
Riešenie: Používajte ===
, ak potrebujete porovnať aj dátový typ.
Nepoužitie správnych metód na ochranu pred SQL injection môže viesť k útokom hackerov.
<?php $conn = new mysqli("localhost", "root", "", "databaza"); $meno = $_GET["meno"]; $sql = "SELECT * FROM uzivatelia WHERE meno = '$meno'"; $result = $conn->query($sql); ?>
Riešenie: Používajte pripravené SQL dotazy.
<?php $stmt = $conn->prepare("SELECT * FROM uzivatelia WHERE meno = ?"); $stmt->bind_param("s", $meno); $stmt->execute(); ?>
Niektorí vývojári zakazujú zobrazovanie chýb, čo sťažuje debugovanie.
<?php error_reporting(0); ?>
Riešenie: Na vývojovom prostredí zobrazujte všetky chyby.
<?php error_reporting(E_ALL); ini_set('display_errors', 1); ?>
Používajte error_reporting(E_ALL);
a logovanie chýb.
Používajte pripravené SQL dotazy (prepare()
a bind_param()
).
Premennú ste nepoužili pred jej inicializáciou. Použite isset()
na kontrolu.
set_error_handler()
.Ak máte záujem o prezenčné alebo online školenie programovania v PHP, pozrite si našu ponuku na www.like-it.sk. Naše kurzy vedú skúsení odborníci, ktorí vám pomôžu zvládnuť základy aj pokročilé koncepty programovania.