Autor | Zpráva | ||
---|---|---|---|
XARK Profil * |
#1 · Zasláno: 16. 2. 2009, 23:12:07
Potřeboval bych poradit, pomoci UPDATE chci aktualizovat tabulku, nevypise mi to zadnou chybovu hlasku ale do databaze se nic neulozi
Kod: if ($akce == 'update' ) { $id = $_POST['id']; $seo_url = $_POST['seo_url']; $nazev = $_POST['nazev']; $menu = $_POST['menu']; $uvodni = $_POST['uvodni']; $obsah = $_POST['obsah']; $vysledek1 = mysql_query( "UPDATE web_stranky SET seo_url='$seo_url', nazev='$nazev', menu='$menu', uvodni='$uvodni', obsah='$obsah' WHERE web_stranky.id='$id' ", $db_spojeni); { echo '<p>Editace stránky ',$radek['nazev'],' úspěšně proběhla.</p>'; } if (!$vysledek1) { echo 'Poslání příkazu SQL se nepodařilo'; echo '<br>'; echo 'popis chyby: ', mysql_error($db_spojeni) ; exit(); } } |
||
Majkl578 Profil |
#2 · Zasláno: 16. 2. 2009, 23:18:06
toto je jako co?
{ echo '<p>Editace stránky ',$radek['nazev'],' úspěšně proběhla.</p>'; } mimochodem, je to náchylné k SQL injection. jinak, kód dávej do příslušného tagu, kdo se v tom má takhle vyznat. |
||
dRaGen Profil |
#3 · Zasláno: 17. 2. 2009, 00:04:35
Majkl578
Nemusí to bejt náchylný na SQL injection, pokud si někde prochází celé pole $_POST a upravuje v něm hodnoty pomocí htmlspecialchars a addslashes |
||
Mr.S1lent.cz Profil * |
#4 · Zasláno: 17. 2. 2009, 01:15:07
mozna bych to zkusil napsat takhle:
f ($akce == 'update' ) { $id = $_POST['id']; $seo_url = $_POST['seo_url']; $nazev = $_POST['nazev']; $menu = $_POST['menu']; $uvodni = $_POST['uvodni']; $obsah = $_POST['obsah']; $db_spojeni = mysql_query("$server_db", "$user_db", "$pass_db") or die("Nepodarilo se spojeni s databazi"); $db_select = mysql_select_db("$db") or die("Nepodaril se vyber databaze"); $dotaz_exist = mysql_query("SELECT * FROM 'prislusna tabulka' WHERE web_stranky.id ='$id'"); $exist = mysql_num_rows($dotaz_exist); if($exist=="1") { $dotaz = mysql_querry( ten tvuj update bez toho $db_spojeni) or die("akutalizace probehla neuspesne"); } else { echo "aktualizase neprobehla uspesne, radek tabulky s prislusnym id chyby!"; } take by me zajimalo, co zname zapis "WHERE web_stranky.id='$id'" - takhle blbe zapsane "id" jsem jeste nevidel, ja osobne bych si do sql dotazu pri vytvareni tabulky netroufl vubec psat "tecku". v praxi nepouzivam nic jineho nez prach(s)proste "id" jinak k tomu, co radil dRaGen - pokud mas nastavenou directivu magic_quotes na "on" a ukladas data do db pres to tvoje addsplashes, tak napr uvozovky budou v db viditelne, protoze escapovani probehlo dvakrat. tuto directvu nenastavis ve scriptu fci ini_set, protoze se vyhodnocuje jeste pred provedenim scriptu :-) proto bych radil jeste k tomu na zacatek scriptu hodit kontrolu, jak je magic_quotec nastaven, aby se podle toho escapovani provedlo uspesne :-) |
||
dRaGen Profil |
#5 · Zasláno: 17. 2. 2009, 01:36:15
Mr.S1lent.cz
Jistě že, nelze použít samostatné addslashes, pouze sem nastínil ten problém :-) function gpc_addslashes($str) { //Pokud je vyplá direktivita magic_quotes tak použij addslashes return (get_magic_quotes_gpc() ? $str : addslashes($str)); } |
||
XARK Profil * |
Mr.S1lent.cz[b]
no prepsal jsem to takhle, ale ono to asi nemuze najit prislusny radek nebo se to tam aspon neulozi, hodim sem cely kod, snad mi nekdo pomuze Kód: session_register('url'); session_register('akce'); $url = $_GET['url']; $akce = $_GET['akce']; $db_spojeni = mysql_connect('server' , 'jmeno' , 'heslo' ); if (!$db_spojeni) { echo 'Připojení se nepodařilo'; echo '<br>'; echo 'Popis chyby: ', mysql_connect_error() ; exit(); } $db = mysql_select_db ('prislusna_tabulka', $db_spojeni); if (!$db) { echo 'Nepodařilo e připojit k databázi'; echo '<br>'; echo 'Popis chyby: ', mysql_error($db) ; exit(); } $cestina = mysql_query( "SET NAMES 'cp1250'",$db_spojeni ); if (!$cestina) { echo 'Poslání SQL dotazu se npodařilo'; echo '<br>'; echo 'popis chyby: ', mysql_error($db_spojeni); exit(); } $vysledek = mysql_query( "SELECT id, seo_url, nazev, menu, obsah, uvodni FROM web_stranky " ,$db_spojeni ); if (!$vysledek) { echo 'Poslání příkazu SQL se nepodařilo'; echo '<br>'; echo 'popis chyby: ', mysql_error($db_spojeni) ; exit(); } while ($radek = mysql_fetch_array($vysledek)) { if ($url == $radek['seo_url']) { echo '<div class="h2"><h2><img src=a.gif alt=\"' ,$radek['nazev'], '\"> ' ,$radek['nazev'], '</h2></div>'; //tohle bude schovane, ale prihlasovani zatim neni hotovy echo '<form name=obsah action=index.php?url=',$radek['seo_url'],'&akce=update method=POST> <table class=content><tr><td class=td-obsah> Odkaz: <input type=text name=seo_url value=\'',$radek['seo_url'],'\' size=18 maxlength=50 ><br>(bez diakritiky a mezer)</td> <td class=td-o>Zobrazí se v menu: </td><td class=td-o><select name=menu value=\'',$radek['menu'],'\' size=2 ><option value=\'ano\'>ano</option><option value=\'ne\'>ne</option></select></td></tr> <tr><td class=td-obsah>Název: <input type=text name=nazev value=\'',$radek['nazev'],'\' size=18 maxlength=50 ></td> <td class=td-o>Je úvodní: </td><td class=td-o> <select name=uvodni value=\'',$radek['uvodni'],'\' size=2 ><option value=\'ano\'>ano</option><option value=\'ne\'>ne</option></select></td></tr></table> <table class=content><tr><td class=td-obsah2>Obsah stránky<br><textarea name=obsah rows=9 cols=47 wrap=soft>',$radek['obsah'],'</textarea></tr></td> <tr><td class=td-obsah2><input type=image name=obrazek src=button.gif></tr></td></table>'; //toto uz schovane neni echo '<p class=center >' ,$radek['obsah'], '</p>'; mysql_free_result($vysledek); if ($db_spojeni) mysql_close($db_spojeni); tady mam problem s tim UPDATEM Kód: if ($akce == 'update' ) { $id = $_POST['id']; $seo_url = $_POST['seo_url']; $nazev = $_POST['nazev']; $menu = $_POST['menu']; $uvodni = $_POST['uvodni']; $obsah = $_POST['obsah']; $db_spojeni = mysql_connect("mysql.wz.cz", "xark", "xxxx") or die("Nepodarilo se spojeni s databazi"); $db_select = mysql_select_db('xark', $db_spojeni) or die("Nepodaril se vyber databaze"); $dotaz_exist = mysql_query("SELECT * FROM web_stranky "); $radek = mysql_num_rows($dotaz_exist); if( $radek == $radek['seo_url']) { $dotaz = mysql_querry( "UPDATE web_stranky SET seo_url='$seo_url', nazev='$nazev', menu='$menu', uvodni='$uvodni', obsah='$obsah' WHERE web_stranky.id='$id' ") or die("akutalizace probehla neuspesne"); } else { echo 'aktualizace neprobehla uspesne, radek tabulky s prislusnym id chyby!'; } } |
||
Kajman_ Profil * |
#7 · Zasláno: 17. 2. 2009, 16:37:26
Co je tohle za podmínku? Myslíte, že může být vůbec někdy splněna?
if( $radek == $radek['seo_url']) |
||
Časová prodleva: 15 let
|
0