Oznámení

Fórum bylo uzavřeno. Využijte prosím služeb serverů JakPsatWeb, Builder nebo Webtrh.

#1 před rokem

SwF
Člen
Registrovaný: 16. 3. 2011
Příspěvky: 2

PHP – mazání dat z databáze

Zdravim, řešim problém s mazáním dat z databáze které používám v menu. Zatím to vypadá následovně:
<?
include ‚connect.php‘;
echo ‚<div id=„nadpis“>‘.‚<h1>Editace menu</h1>‘.‚</div>‘;
$dotaz=mysql_query(„SELECT id, nazev, rodic FROM menu“);
echo ‚<div id=„table“>‘;
echo ‚<table border=1>‘;
echo ‚<tr><td>ID</td><td>Nazev</td><td>rodic</td><td>správa</td><td>správa</td></tr>‘;
while($pole=mysql_fetch_array($dotaz))

echo ‚<tr>‘.‚<td>‘.$pole[‚id‘].‚</td>‘.‚<td>‘.$pole[‚nazev‘].‚</td>‘.‚<td>‘.$pole[‚rodic‘].‚</td>
<td><a href=„?akce=smazat&id=‘.$pole[‚id‘].‚"title="smazat“>smazat</a></td>
</tr>‘;
echo ‚</table>‘;
echo ‚</div>‘;
if($_GET[‚akce‘]==‚smazat&id=‘ && $_POST[‚id‘]){
mysql_query („DELETE FROM menu WHERE Id=“.$_GET[‚id‘]) ;
 }
?>

výpis mi funguje, ale nemůžu přijít na to, kde dělám chybu v tom mazání. Budu vděčnej za každou radu. Předem Díky.

 

#2 před rokem

Ondřej Mirtes
Moderator
Registrovaný: 8. 1. 2009
Příspěvky: 1621

Re: PHP – mazání dat z databáze

Příště použij formátování kódu.

Těžko říct, jestli tam nemáš někde chybu s podobou odkazu. Ta podmínka na konci by měla vypadat takto:

if ($_GET['akce'] == 'smazat' && isset($_GET['id']))

V kódu máš několik bezpečnostních děr. Především bije do očí ta SQL injection (úpravou parametru id v adrese lze promazat celou databázi). Dál také neescapuješ výstup pomocí htmlspecialchars() (XSS zranitelnost), takto obyčejné odkazy na mazání dat jsou náchylné na CSRF.

Doporučuji ti nastudovat a začít používat nějaký framework, který tyto běžné problémy řeší za tebe a především budeš mít díky němu přehlednější kód. Podívej se např. na Nette.

Editoval Ondřej Mirtes (16. 3. 2011 19:55)

 

#3 před rokem

SwF
Člen
Registrovaný: 16. 3. 2011
Příspěvky: 2

Re: PHP – mazání dat z databáze

Díky za rady, vím že je to děs, ale php mám v ruce prakticky týden. Šlo mi jen o to udělat si na web API kde budu mít výpis dat z dtb editaci, mazání, a vytvoření nového záznamu. Jinak s tou upravenou podmínkou mi to též nejde, takže bych to viděl, že to celý předělám.

 

Zápatí