Autor Zpráva
Nookyn
Profil
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
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
Nookyn
Nahraď obrázok správnym formátom, lebo ti to niekto zmaže.
Neuložil si to ako png formát.
Nookyn
Profil
hotovo, ale už bych taky uvítal nějakou radu... :'-(
Joker
Profil
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>

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:

0