Autor | Zpráva | ||
---|---|---|---|
Hitny 14 Profil * |
#1 · Zasláno: 5. 2. 2013, 16:38:24
Dobrý den, mám stránku na které jsou články a můžou se na ní editovat mám tam například mazání i editaci které mi text daného článku vypíše do editoru. Problém nastává když chci odeslat upravený článek zpět do tabulky. Potřeboval by jsem nějaký script který mi najde id právě upravovaného článku abych ho mohl přepsat. Děkuji za každou radu.
|
||
ninja Profil |
Na stránce s formuláře pro editaci stránky si vložíty i (skryté) políčko s id článku.
|
||
Hitny 14 Profil * |
#3 · Zasláno: 5. 2. 2013, 17:25:21
Do toho políčka se mi to musí vypsat nějakým scriptem nebo jak se idndostane do políčka?
|
||
CrazyC0de Profil |
#4 · Zasláno: 5. 2. 2013, 19:36:11
Normálně, stačí při výpisu vytahovat i id, a pak udělat stránku smaz.php - a při každém vypsání se vypíše <a href="smaz.php?id=".$id."">, tím pádem pak budeš vytahovat id přes GET, a jednoduše pak updatuješ UPDATE clanky SET obsah='$obsah' WHERE id='$id'
|
||
ninja Profil |
#5 · Zasláno: 5. 2. 2013, 19:44:56
CrazyC0de: CrazyC0de chtěl samozřejmě napsat, že se to bude odesílat POST požadavkem. <a href="smaz.php?id=".$id.""> je bezpečnostní a UX prasárna.
|
||
Someone Profil |
#6 · Zasláno: 5. 2. 2013, 19:53:44
ninja proč myslíš, že to tak chtěl CrazyC0de napsat? Správně ošetřený GET vstup může být bezpečnější než neošetřený POST, je jedno jakou metodou se to posílá. Tím pádem mi <a href="smaz.php?id=".$id.""> nepřijde nějak nebezpečné (samozřejmě pokud je správně ošetřeno).
|
||
CrazyC0de Profil |
#7 · Zasláno: 5. 2. 2013, 21:51:29
Ninja - v čem by to nebylo bezpečné, pokud by to správně ošetřil, id je číslo, takže is_numeric, a ještě k tomu to mohl vytahovat jako htmlspecialchars($_GET....)..
|
||
pcmanik Profil |
#8 · Zasláno: 5. 2. 2013, 22:14:59
CrazyC0de:
Htmlspecialchars sluzi na zabezpečenie výstupu a nie vstupu. |
||
CrazyC0de Profil |
#9 · Zasláno: 5. 2. 2013, 22:27:45
Ale když ti někdo do toho id hodí "mysql_query("UPDATE users SET hodnost=5 WHERE ....")"
Tak se to provede, pokud však vytáhneme htmlspecialchars. tak ne... |
||
Someone Profil |
#10 · Zasláno: 5. 2. 2013, 22:32:31
CrazyC0de:
To co uvádíš je nesmysl. |
||
Hitny 14 Profil * |
#11 · Zasláno: 5. 2. 2013, 22:35:33
To jste mi to moc nepřiblížili jsem začáteční :)
|
||
Someone Profil |
#12 · Zasláno: 5. 2. 2013, 23:06:15
Hitny 14:
když vypisuješ informace o článku, který chceš upravovit tak to uděláš asi takto: $sql = mysql_query("SELECT * FROM clanky WHERE id = " . (int)$_GET['id_upravovaneho_clanku']); while ($radek = mysql_fetch_assoc($sql)) { echo ' <form method="POST"> Nadpis: <input type="text" name="nadpis_clanku" value="' . htmlspecialchars($row['nadpis']) . '"><br> Obsah: <textarea name="obsah">' . $row['obsah'] . '</textarea> <input type="hidden" name="id_clanku" value="' . (int)$row['id'] . '"> <input type="submit" name="ulozit" value="Uložit"> </form> '; } všimni si zvýrazněného, tam si do hidden inputu uložíš id právě upravovaného článku a při ukládání to bude vypadat asi takto: mysql_query("UPDATE clanky blablabla WHERE id = " . (int)$_POST['id_clanku']) |
||
Hitny 14 Profil * |
#13 · Zasláno: 5. 2. 2013, 23:10:26
Vytvořil sem políčko:
<input name="id" type="hidden" value="<?php echo $row["id"] ?>"> <?php include 'config.php'; if(isset($_POST['save'])) { $nadpis = ($_POST['nadpis']); $text = ($_POST['content']); $id = ($_POST['id']); //$text=str_replace("\n","<br>",$text); $vloz ="UPDATE tabulka_acko SET nadpis = '".$nadpis."' text = '".$text."' WHERE id = '".$id."'; $result=mysql_query($vloz); echo '<script type="text/javascript" for="window" event="onLoad()"> <!-- window.location.href="aktualizace_a.php?edit=ok" // --> </script>'; } ?> |
||
Someone Profil |
#14 · Zasláno: 5. 2. 2013, 23:23:53
ten vzor je SET nadpis = 'neco', text = 'neco' atd.. chybí ti tam čárka jinak nezapomeň ošetřit ten vstup:
$id = (int)$_POST['id']; $nadpis = mysql_real_escape_string($_POST['nadpis']); atd. |
||
Hitny 14 Profil * |
#15 · Zasláno: 5. 2. 2013, 23:39:44 · Upravil/a: Hitny 14
Děkuji čárku sem doplnil i ošetřil vstup ale data se stále nezmění =(
Děkuji vše funguje chybu už sem našel měl sem tam špatně zadanej název tabulky přepracovanost asi =D |
||
Časová prodleva: 11 let
|
0