| Autor | Zpráva | ||
|---|---|---|---|
| Lucassko Profil * |
#1 · Zasláno: 13. 5. 2012, 14:14:43
Ahoj,
mám problém s SQL: DELETE FROM tabulka WHERE fotka IN (" . implode(',', $_POST['nazevfotky']) . ")ve formuláři mám vybráno více položek (název dokumentů). Po vykonání dotazu se vypíše: Unknown column 'dokument.doc' in 'where clause'.
Pokud ale misto nazvu zvolim ID (což nechci, protože pak soubory fyzicky mažu) tak to funguje. Nevíáte kde by mohl být zakopanej čokl? Díky |
||
| Alphard Profil |
#2 · Zasláno: 13. 5. 2012, 14:44:52
V apostrofech a obecně naprosté ignoraci nějakého escapování a zabezpeční.
|
||
| Lucassko Profil * |
#3 · Zasláno: 13. 5. 2012, 14:53:11
[#2] Alphard
Přiložím tedy celý soubor: if (isset($_POST['delete'])) {
$error_log = array();
if (empty($_POST['nazevsouboru']))
$error_log[] = "Vyberte soubor ke smazání";
if (sizeof($error_log) > 0) {
$result.=_formMessage(2, _eventList($error_log, 'errors'));
} else {
if (mysql_query("DELETE FROM tabulka WHERE fotka IN (" . implode(',', $_POST['nazevsouboru']) . ")")) {
$result.=_formMessage(1, "Záznamy byly vymazány!");
} else {
$result.=_formMessage(3, "Problém na straně SQL!");
echo mysql_error();
}
}
} |
||
| Alphard Profil |
#4 · Zasláno: 13. 5. 2012, 15:55:47
Opravte si to sám, k základní funkčnosti (bez dalšío zabezpeční) stačí obalit řetězce do apostrofů.
|
||
|
Časová prodleva: 14 let
|
|||
0