Autor | Zpráva | ||
---|---|---|---|
Honzicek Profil * |
#1 · Zasláno: 23. 6. 2013, 14:53:58
Ahoj, předem upozorňuji, že v DB a jeho spolupráci s php jsem úplný začátečník.
Jde mi o to, že mám tabulku s akcemi, která obsahuje 5 sloupců - oddíl, kterého se akce týká, místo, kde se akce koná, dále typ akce, datum akce a pak datum pro řazení. Tabulka se zobrazuje v pořádku, admin přístup se zápisem do DB taky jde v pohodě. Můj problém je vymazávání příspěvků, myslíte ,že byste mi někdo poradil jak na to? |
||
juriad Profil |
#2 · Zasláno: 23. 6. 2013, 15:07:21
Přidej do databáze další číselný sloupec id, který bude mít nastavený AUTOINCREMENT.
Na stránku s akcí přidej: <a href="/admin/smazat-akci.php?akce=123">Smazat akci</a> smazat-akci.php: # ... ověření uživatele ... if(isset($_GET['akce'])) { $query = 'DELETE FROM akce WHERE id = '. intval($_GET['akce']); # ... spusť dotaz ... } header('Location: /seznam-akci.php'); |
||
Honzicek Profil * |
#3 · Zasláno: 23. 6. 2013, 15:36:24
Ještě jednou.
1, odkaz na stránky ke smazání přidán, <a href="..//smazat-akci.php?akce=71">Smaž</a> - kde mi to generuje automaticky ID místo71 2, to smazání mi stále nejde, můžete mi někdo poradit? tabulka se jmenuje Terminovka |
||
Honzicek Profil |
if(isset($_GET['akce'])) { $query = 'DELETE FROM Terminovka WHERE id = '. intval($_GET['akce']); # ... spusť dotaz ... } header('Location: /terminovka-admin.php'); ?> Kde vezmu To Akce??? Nějak tomu nerozumí |
||
marcus33cz Profil |
#5 · Zasláno: 23. 6. 2013, 17:18:24
Proměnná akce se ti předá v poli $_GET po kliknutí na ten odkaz. Zkus si proměnné vypsat a možná to lépe pochopíš.
|
||
Honzicek Profil |
#6 · Zasláno: 23. 6. 2013, 17:40:40
Nefunguje mi to, někdo na pomoc?
$query = 'DELETE FROM Terminovka WHERE id = '. $_GET['akce']; |
||
Jan Tvrdík Profil |
#7 · Zasláno: 23. 6. 2013, 17:44:35
Asi by bylo dobré zmínit, že uvedený způsob obsahuje CSRF zranitelnost. Aby to bylo bezpečné, musel by se tam přidávat nějaký náhodně generovaný token. Viz např. php.vrana.cz/cross-site-request-forgery.php.
|
||
Honzicek Profil |
#8 · Zasláno: 23. 6. 2013, 17:46:59 · Upravil/a: Moderátor (editace znemožněna) 23. 6. 2013, 19:13:43
Ohledně bezpečnosti, k tomuto přidávání, budou mít přístup jen 2 lidé, takže neočekávám problém, spíše mi jde o tu funkčnost
Na stránce s administrací mám odkaz <a href="..//smazat-akci.php?akce=<?php echo $zaznam[id] ?>">Smaž</a> a v souboru smazat-akci.php toto: <?php mysql_connect('wm20.wedos.net', '***', '***');//database connection mysql_select_db("d16062_hrasek"); mysql_query('set names utf8'); $query = 'DELETE FROM Terminovka WHERE id = '. $_GET['akce']; $vybratie = MySQL_Select_Db("d16062_hrasek"); if (!$vybratie) { die('Nemozem sa spojit s databazou: ' .mysql_error()); } ?> A stále se to nemaže :( |
||
juriad Profil |
Řádky 14 – 17 vyhoď a nahraď za:
mysql_query($query); Tys totiž nikdy ten dotaz nespustil. |
||
Tori Profil |
#10 · Zasláno: 23. 6. 2013, 18:09:58
Honzicek:
Nedávejte veřejně své přihlašovací údaje k DB a odmažte si je i odtud. |
||
Časová prodleva: 11 let
|
0