Autor | Zpráva | ||
---|---|---|---|
Nookyn Profil |
#1 · Zasláno: 31. 8. 2009, 11:33:44 · Upravil/a: Nookyn
Zdárek, potřebuji pomoct se změnou údajů v DB, budu to potřebovat jako změnu údajů uživatele, dám sem screen a php script...
Problém je, že když změnim údaje, tak se mi vymažou všechna pole... a nevím jak to opravit/kde je chyba. <?php require_once("inc/db.php"); $id = $_SESSION["UserId"]; $data1=mysql_query("select * FROM uzivatele WHERE id='".$id."'"); //vybereme jméno, příjmení, ID z tabulky lidé a seřadíme podle //ID vzestupně (ASC,DESC-sestupně) ?><table><?php //budeme brát záznam po záznamu, a výsledek dáme do pole $data=mysql_fetch_array($data1); echo("<!-- <tr> -->");//každý záznam jeden řádek echo("<!-- <tr><td>ID:</td><td>".$data['id']."</td></tr> -->"); echo("<!-- <tr><td>Už. jméno:</td><td>".$data['jmeno']."</td></tr> -->"); echo("<!-- <tr><td>E-mail:</td><td>".$data['mail']."</td></tr> -->"); echo("<!-- <tr><td>ICQ:</td><td>".$data['icq']."</td></tr> -->"); echo("<!-- <tr><td>Web:</td><td>".$data['web']."</td></tr> -->"); echo("<!-- <tr><td>Věk:</td><td>".$data['vek']."</td></tr> -->"); echo("<!-- </tr> -->"); ?></table><p><? //připojení k db //skript pro změnu obsahu db dáme před výpis, kdybychom ho dali až za výpis, data by se //vypsala, a až poté změnila, takže by to bylo na nic. //pokud je zmáčknuto tlačítko "uprav" if (isset($_POST['uprav'])) { //přidáme lomítka, aby nám tam někdo nepropašoval kus php kodu a nedělalo //to bordel v databázi $jmeno=addslashes($_SESSION['jmeno']); $mail=addslashes($_SESSION['mail']); $icq=addslashes($_SESSION['icq']); $web=addslashes($_SESSION['web']); $vek=addslashes($_SESSION['vek']); mysql_query("UPDATE uzivatele SET jmeno='$jmeno',mail='$mail',icq='$icq',web='$web',vek='$vek' WHERE `id`='$id'"); } $data1=mysql_query("SELECT ID,jmeno,mail,icq,web,vek FROM uzivatele WHERE `id`='$id'"); echo("<table>"); while ($data=mysql_fetch_array($data1)) { //dáme si data do formuláře echo("<form method='POST'>"); //ID dáme ještě do hidden pole, abychom mohli podle něčeho mazat echo("<tr><td><input type='hidden' name='ID' value='".$data['ID']."'> <td><!-- Tvoje ID:</td><td>".$data['ID']." --></td></tr>"); echo("<tr><td> <b><span style='font-size: 12px;'>Už. jméno:</span></b></td><td><span style='font-size: 12px;'>".$data['jmeno']."</span></td></tr>"); echo("<tr><td> <b><span style='font-size: 12px;'>E-mail:</span></b></td><td><input type='text' name='mail' value='".$data['mail']."'></td></tr>"); echo("<tr><td> <b><span style='font-size: 12px;'>ICQ:</span></b></td><td><input type='text' maxlength='9' name='icq' value='".$data['icq']."'></td></tr>"); echo("<tr><td> <b><span style='font-size: 12px;'>Web:</span></b></td><td><input type='text' name='web' value='".$data['web']."'></td></tr>"); echo("<tr><td> <b><span style='font-size: 12px;'>Věk:</span></b></td><td><input type='text' name='vek' value='".$data['vek']."' size='3' maxlength='3'> let</td></tr>"); //a nemůžeme zapomenout an tlačítko, které bude formulář odesílat;) echo("<td><input type='submit' name='uprav' value='Uložit'></td>"); echo("</form>"); } echo("</table>"); ?> |
||
MCKAY Profil |
#2 · Zasláno: 31. 8. 2009, 11:40:04
Nebylo by na škodu hodit sem obrázek který by byl menší (kb) a rozměry by měl odpovidající do tohoto fóra
|
||
_es Profil |
#3 · Zasláno: 31. 8. 2009, 11:48:10 · Upravil/a: _es
Nookyn
Nahraď obrázok správnym formátom, lebo ti to niekto zmaže. Neuložil si to ako png formát. |
||
Nookyn Profil |
#4 · Zasláno: 31. 8. 2009, 11:54:24
hotovo, ale už bych taky uvítal nějakou radu... :'-(
|
||
Joker Profil |
#5 · Zasláno: 31. 8. 2009, 11:59:07
Nookyn:
Ten SQL dotaz tahá data ze $_SESSION místo $_POST. V $_SESSION[...] nejspíš nic není, takže se nastaví prázdné hodnoty. Mimochodem, neškodilo by přidat nějaké validace (takhle nejspíš projde i třeba věk "ahoj" a podobně), věk by mohl být uložený jako číslo, ICQ by taky mohlo být taky číslo a je to zranitelné na XSS při vypisování, například když zadám jméno: "><script>alert("XSS!");</script> |
||
Časová prodleva: 15 let
|
0