Diskuze: Mysql_fetch_array problém
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 17 zpráv z 17.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Musíš oddělovat proměnné od stringu: "' . $id . '"
Jinak je
tam spousta injekcí. Je lepší použít nějaký fw třeba dibi nebo použít
mysqli.
Asi jo,ale prořád sem nevyřešil,prečo mi to nejde
Nemusí, proměnné fungují takhle v dvojitých uvozovkách. Je tam hodně chyb, kdyby to byl jeho kód, tak bych mu je opravil, ale přijde mi zbytečné opravovat něco zkopírovaného.
Ani se mi to nechtělo číst celé. Nejprve si oprav SQL injection, máš jich tam hromadu. Čísla se nedávají do apostrofů a máš tam race condition, neboli souběh. SELECT je zbytečný.
Zkus ho vyhodit možná se to tím vyřeší.
Co znamená "nebufuje"?
Nějak takhle vypadaly zdrojové kódy původního Islandsoftu Tohle je opravdu začátečnické, plné chyb a ještě zkopírované.
Koukni do sekce PHP, je tam seriál pro začátečníky, je tam vysvětleno vše co potřebuješ. Tohle by bylo opravdu na dlouho takhle ve fóru.
Pokud dokážeš reagovat jen na poslední (prakticky zbytečnou) větu, tak je to skutečně vážné a obávám se, že to spravit nepůjde.
Aha, nevšiml jsem si uvozovek. Tenhle vejmysl s apostrofy a uvozovky je fakt strašnej
To jsi ještě neviděl Ruby, to je teprve peklo
PHPčko je hodně magický, ale já si na to zvykl jak píšu ty manuály a ten jazyk se mi fakt líbí. Když člověk ví co jak funguje, tak se v tom dělá hezky.
Já mám spíš problém se čtením. Čtu mezi řádky a hodně přeskakuju.
Jak jsem viděl tu proměnnou v textu tak mě to zmátlo. Jak teď dělám v tom
C#, není tam sprintf
ani spojování stringu .
tak je
to hrozný nezvyk. Osobně si myslím, že psát to takhle není dobrý, dost se
to pak dá přehlídnout. Buďto použít již zmíněný formátovaný text
nebo spojovníky. Jaký na to máš názor ty?
V C# je String.Format, dělá to to samé, jako sprintf. V C# to používám pořád. V PHP by se ty proměnné měly balit do {}, je to lépe vidět a highlighter to zvýrazňuje. sprintf jsem v PHP moc používat neviděl, proto to nedělám, naopak v C# se formátuje v MSDN stále.
"Jak teď dělám v tom C#, není tam sprintf ani spojování stringu ."
Je tam String.Format i konkatenace. Názor mám takový, že by to měl dát do složenic, tedy "text {$promenna} text" nebo "text ${promenna} text". Nevím, která verze se používá více.
Myslel jsem to tak, že jak teď poslední dobou dělám hlavně v C# tak v tom PHP kódu není sprintf ani spojování "." ale je ta proměnná přímo v textu, tak že mě to zmátlo. Protože v C# se buďto použije String.Format nebo spojování "+". Žádné proměnné v textu. Preferuji, že by se mělo používat právě těchto dvou metod i v PHP. A proto jsem se ptal, jaký máš názor na používání proměnných natvrdo v textu.
V PHP se dělají různá zvěrstva, dobře se dělá i s Heredoc. Má oblíbená konstrukce:
$objekt=new Data(parametry_pro_vytažení_dat_z_databáze);
echo <<<EOT
Přímý výstup HTML,
do kterého vložím naformátovaná data z
$objekt
a pak pokračuji další omáčkou.
EOT;
Používám to prakticky vždy, když nepoužívám výstupní šablonu v XSLT. Tedy hlavně v jednodušších aplikacích. Vyhnu se tak potřebě cyklů v šabloně.
Zobrazeno 17 zpráv z 17.