Autor | Zpráva | ||
---|---|---|---|
Lobo Profil * |
#1 · Zasláno: 6. 4. 2013, 18:07:58
if (!isset($_GET['id2'])): $sql_blog="select * from tab_blog"; $res = mysql_query($sql_blog) or die (mysql_error()." Chyba! Nelze načíst data."); while ($zaznam = mysql_fetch_array($res)): echo "<span class=\"nazev\"><a href=\"?id2=".$zaznam["id"]."\">".$zaznam["nazev"]."</a></span> "; echo " | <span class=\"odstranit\">x <a href=\"./administrace.php?SmazatClanek=".$zaznam["id"]."\">odstranit</a></span>"; echo " | <span class=\"editovat\"> <a href=\"./administrace.php?EditovatClanek=".$zaznam["id"]."\">editovat</a></span><br/>"; endwhile; if (isset($_GET['SmazatClanek'])): $sql_smazat="delete from tab_blog where id=".$_GET['SmazatClanek']; $res = mysql_query($sql_smazat) or die ("Chyba! Nelze provést smazání dat."); if (!$res): echo "Chyba! Záznam se nepodařilo smazat.\nDotaz: <em>$sql</em>"; else: echo "<h3>Záznam smazán !</h3><p>← <a href=\"./administrace.php\">Ok</a></p>"; endif; endif; if (isset($_GET['EditovatClanek'])): $sql_blog_detail="select from tab_blog where id=".$_GET['EditovatClanek']; $res = mysql_query($sql_blog_detail) or die ("Chyba! Nelze provést editaci dat."); if (!$res): echo "Chyba! Záznam se nepodařilo editovat.\nDotaz: <em>$sql_blog_detail</em>"; else: echo "<form>"; echo "<textarea id=clanek name=clanek value=\"".$zaznam["clanek"]."\" rows=0 cols=0></textarea><br />"; echo "</form>"; endif; endif; Mam problem s tím skriptem EditovatClanek ..porad mi to vraci "Chyba! Nelze provést editaci dat." a pritom SmazatClanek funguje vpohode a skripty jsou prakticky totozne..takze databaze musi fungovat spravne |
||
juriad Profil |
#2 · Zasláno: 6. 4. 2013, 18:17:29
Právě že jsou příliš podobné. Řádek 21 musí být jiný, nejspíš něco jako:
$sql_blog_detail="update tab_blog set text='"."TEXT_CLANKU"."' where id=".$_GET['EditovatClanek']; Zdá se mi nějaká podivné řešení celého skriptu. Napřed vypíšeš seznam všech a potom mažeš, edituješ; uvažoval jsi, co se stane při refreshi? A těch or die se určitě zbav.
|
||
Virtus Profil |
chybí ti tam co chceš vybrat, pro doplnění, proč to umře:
$sql_blog_detail="select * from tab_blog where id=".$_GET['EditovatClanek']; |
||
Lobo Profil * |
#4 · Zasláno: 6. 4. 2013, 18:35:31 · Upravil/a: Lobo
jééšiš díky :) ten delete prikaz me zmatl ze on to vybirat nemusi
joo vidim ze tam jsou jeste chyby ale nemohl jsem pokracovat v debugovani dokud jsem neprisel na toto |
||
Enko Profil * |
#5 · Zasláno: 7. 4. 2013, 00:15:09
Lobo:
Tvůj kód je zneužitelný pravděpodobně na XSS a určitě na SQL Injection. Doporučuju ošetřit vstupy do DB například mysql_real_escape_string() nebo (int), atp... A všechny výstupy na stránku upravovat proti nevhodným html tagům. Ušetříš si tím do budoucna spoustu starostí ;) |
||
Lobo Profil * |
#6 · Zasláno: 7. 4. 2013, 19:23:02
Tam kde pouzivam prihlasovani uzivatelu, tak funkci mysql_real_escape_string() pouzivam, ale je to nutne i tady? A cosi jsem precetl o XSS a budu na to myslet :), ale zrovna v tomdle pripade pouzivam k uprave clanku tiny_mce, kde ty html tagy povolene byt musi, aby to fungovalo.
|
||
Enko Profil * |
#7 · Zasláno: 7. 4. 2013, 20:46:11
Lobo:
Co se týče SQL Injection, ošetřuj veškeré vstupy do DB. A pokud používáš Tiny_MCE na všech vstupech, tak by to mělo být OK. |
||
Časová prodleva: 11 let
|
0