Portál AbcLinuxu, 10. května 2025 02:31
$var = 'text'; $var = 'Není to náhodou hodně špatně? Co na to říká paměť? A jak to, že to vůbec funguje? Není správně tohle?'.$var.'
';
$var1 = 'text'; $var = ''.$var1.'
';
Řešení dotazu:
''.$var.''
se vyhodnotí na 'text' a až potom se to uloží do proměnné nalevo od rovnítka, tedy do $var
.
$out = "Adam & syn"; : $out = htmlspecialchars($out); : echo $out;Dvojtečkami jsem naznačil, že tam může být naplnění jiných proměnných. Představ si, že si omylem smažeš prostřední řádek nebo ho omylem budeš mít pod sebou 2×. Program ti zdánlivě bude fungovat, ale bude dávat chybné výsledky. Často se takové chyby objevují v opomenutí ošetření proti SQL injection (pokud někdo ještě nepoužívá prepared statements). Stačí přidat jeden sloupec a jednoduše zapomenout ho ošetřit. Pokud pokaždé použiješ další proměnnou, nestane se ti to. Je to pojistka proti vlastním chybám a také umožníš procesoru efektivněji přeskládat instrukce. Kromě toho to např. ve funkcionálních jazycích ani jinak nejde.
$out = "Adam & syn"; : $out1 = htmlspecialchars($out); : echo $out1;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.