K te 5, samozrejme plati 3, 5 neni bezpecny zapis sql dotazu. A az to nekdo zkusi hacknout, tak zpusobi miliardove skody a zakaznik te jiste rad pozene k soudu k odpovednosti.
Příspěvky odeslané z IP adresy 2001:718:2601:26c:48c5:47...–
1. php error_reporting
2. or die + mysqli_error (to tam mas)
3. Bylo by fajn, pro pouzivat bezpecnejsi verzi skladani sql dotazu, treba pdo s bindvalue. Jakoze, tohle uz se 10-20 let nepouziva (snad se to neuci ani ne skole).
4. Bylo by fajn nepouzivat echo pro vypis, ale ukladat to do promenne a echo udelat az na zaver, pripadne jako vystup funkce.
2 - Ti zadnou chybu nevypise? A jakym zpusobem zjistujes, ze to tam je ci neni? Nekesuje se ti nejaka stranka (nezobrazuje nova data)? Zkus tam dat stranka.php?123 (nahodne cislo). Nebo, obnovil jsi tu stranku (F5)?
3 - Myslim tak, ze staci nespravny apostrof ($_POST["jmeno"]="123\"456") a cely program jde k sipku.
5.
$sql = "UPDATE Zakaznik SET ID_Zakaznik='.$ID_Zakaznik.', Prijmeni='.$prijmeni.', Jmeno='.$jmeno.', Ulice='.$ulice.', Mesto='.$mesto.', Telefon='.$telefon.', PSC='.$psc.', RodneCislo='.$rodcislo.' WHERE ID_Zakaznik='.$ID_Zakaznik.'";
Tohle je nesmysl. Retezec se da spojovat s promennymi takhle:
$x = "123$y456";
$x = "123{$y}456"; // coz provadi eval($y) a neni dobre to tak pouzivat
$x = "123".$y."456";
$x = "123".$y()."456"; // $y muze byt funkce
$x = '123'.$y.'456';
$x = '123'.$y().'456';
Sql dotaz muzes psat
"SELECT * FROM tab WHERE `a`=".$b
"SELECT * FROM tab WHERE `a`='".$b."'"
Tuhle verzi tam nevidim :)
"SELECT * FROM tab WHERE `a`='.$b.'"
Cislo je liche, kdyz nulty bit je 1, pokud je znamenko 0, jinak je to opacne. Kdyby ti zalezelo na rychlosti (tak 100.000 cisel)
Jj, neprogramatorovi se to vysvetluje dost spatne. Vetsinou jsi ten nejchytrejsi v mistnosti na pc, ostatni pc zajimaji jen okrajove, takze te vyuzivaji :) Nedej se. Viz, co radi ostatni, konzultacni hodiny, sluchatka, rici jim, ze od-do si musi poradit sami, leda by to horelo.
Pripadne se domluv se sefem, ze pracujes z domu v nektere dny nebo pul dne..