Autor | Zpráva | ||
---|---|---|---|
Nuimi Profil |
#1 · Zasláno: 19. 6. 2015, 10:13:45
Dobrý den, chtěl by jsem se zeptat jak by se dal tento kód upravit tak aby fungoval. Má to dělat to že když kliknete na tlačítku smaž tak to smaže daný záznam
$zobraz = "SELECT psc, mesto FROM psc"; $prubeh = $db -> query($zobraz); while($row = $prubeh -> fetch_assoc()) { echo("<form mathod=\"post\"> <table> <tr> <td>'".$row['mesto']."' </td> <td name=\"psc\">'" . $row['psc']. "'</td> <td><input type=\"submit\" name=\"smaz\" value=\"smaž\" /></td> </tr> </table> </form> <hr>"); } $psc=$_POST['psc']; $smaz="DELETE FROM psc WHERE psc='".$psc."'"; ?> |
||
petr 6 Profil |
#2 · Zasláno: 19. 6. 2015, 10:33:43
Do formuláře musíš vložit ještě skrytý input se jménem
psc , jehož hodnotou bude PSČ.
Po odeslání zkontroluješ, zda je nastaveno $_POST['psc'] a vykonáš mazací dotaz (který máš v proměnné $smaz ).
K plné funkčnosti musíš také opravit překlep u atributu formuláře. |
||
Joker Profil |
#3 · Zasláno: 19. 6. 2015, 12:32:22
petr 6:
Ale muselo by to být upravené tak, aby každé tlačítko byl samostatný formulář. Jiná možnost je předávat to metodou GET a místo tlačítka udělat odkaz, např <a href="smaz.php?psc=xy">smaž</a> .
Je ale potřeba dát pozor na CSRF (když někdo dá do stránky např. <img src="*stránka*/smaz.php?psc=11111">, zobrazení té stránky uživatelem s právy na smazání to vymaže dané PSČ). (Poznámka: Ani použití metody POST ovšem před CSRF úplně neochrání.) |
||
petr 6 Profil |
#4 · Zasláno: 19. 6. 2015, 12:55:51
Joker:
„Ale muselo by to být upravené tak, aby každé tlačítko byl samostatný formulář.“ Však to tak má. Asi tě zmátlo, že každý řádek ve výpisu má v samostatné tabulce, což je samozřejmě nevhodné, nicméně formálně správně a na funkci to nemá vliv. |
||
Časová prodleva: 9 let
|
0