Autor Zpráva
Lobo
Profil *
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>&larr; <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
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 *
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 *
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 *
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: