| 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: 16 let
|
|||
0