PHP - prosim o kontrolu uz si nevim rady

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Dj´ Frodo
Začátečník
Začátečník
Uživatelský avatar
Registrován: 11. kvě 2005
Bydliště: Mnichovo Hradiště
Kontaktovat uživatele:

PHP - prosim o kontrolu uz si nevim rady

Příspěvek od Dj´ Frodo »

Zdravycko!!! delam o uz nejakou chvili ale stimhle sem se jeste nesetkal. podivejte se prosim na tento kod jestli tam ennajdete enjakou chybku proste ja uz nefim. cumim do toho uz hodinu a ne a ne na nic prijit. proste mi to v db nic nezmeni a vsechny nazvy tabulek sedi a sou poradku.

Kód: Vybrat vše

if(isset($_POST["update"]))
{
  $n_id = $_SESSION["id_user"];
  $n_login = $_POST["n_login"];
  $n_heslo = $_POST["n_heslo"];
  $n_jmeno = $_POST["n_jmeno"];
  $n_email = $_POST["n_email"];
  
  $sql = "update users set jmeno = '$n_jmeno', login = '$n_login', heslo = '$n_heslo', e-mail = '$n_email' where id = $n_id";
  $result = mysql_query($sql);
  if (!$result) {
  alert2("Uživatelské údaje nebyly upraveny!");
  }else {
  alert("Uživatelské údaje byly úspěšně opraveny.");}
}
PC: CPU: AMD Sempron64bit 2600+ (1,6Ghz@2Ghz) MB: MSI K8N Neo GPU: Ati Radeon 9200 128Mb RAM: 256Mb DDR 333Mhz HDD: WD-20Gb, Seagate Baracunda 80Gb OS: Windows XP prof.
matajon
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. lis 2005
Bydliště: Dobruška
Kontaktovat uživatele:

Příspěvek od matajon »

1) Alespon pri debuggingu vypisuj SQL Errory -

Kód: Vybrat vše

echo mysql_error();
takze u tebe napriklad

Kód: Vybrat vše

$result = mysql_query($sql) or die(mysql_error();)
protoze si myslim ze chyba bude v tom "where id = $n_id" ... mely by tam byt apostrofy

2) jestli v tom nebude zadny error, tak si zkontroluj jestli ta vetev kodu v podmince IF probehne, dej nekam do te vetve kodu treba echo 'backora'; aby jsi videl jestli se ten kod opravdu vykona

3) z hlediska bezpectnosti neni vubec dobre vkladat do SQL dotazu primo data od uzivatele, koledujes si o nejaky utok pres SQL Injection ..... pravidlo "nikdy never uzivatelskemu vstupu"
Post powered by Microsoft® Windows Vista™ Business
No trees or animals were killed during sending this message
Lamicz
Začátečník
Začátečník
Uživatelský avatar
Registrován: 30. kvě 2005
Bydliště: In a galaxy far away...
Kontaktovat uživatele:

Příspěvek od Lamicz »

Ukaz jeste kod zdrojoveho formulare v HTML, mam dojem, ze chyba bude logicka, ne syntakticka ;)
:: DESKA :: Asus A8V-XE (VIA K8T890) :: CPU :: AMD Athlon 64 3700+ :: VGA :: ATI Asus GF7600 512MB - passive solution :: RAM :: 4x 256MB Samsung :: HDD :: 80GB Maxtor PATA ::
Dj´ Frodo
Začátečník
Začátečník
Uživatelský avatar
Registrován: 11. kvě 2005
Bydliště: Mnichovo Hradiště
Kontaktovat uživatele:

Příspěvek od Dj´ Frodo »

matajon píše:1) Alespon pri debuggingu vypisuj SQL Errory -

Kód: Vybrat vše

echo mysql_error();
takze u tebe napriklad

Kód: Vybrat vše

$result = mysql_query($sql) or die(mysql_error();)
protoze si myslim ze chyba bude v tom "where id = $n_id" ... mely by tam byt apostrofy

2) jestli v tom nebude zadny error, tak si zkontroluj jestli ta vetev kodu v podmince IF probehne, dej nekam do te vetve kodu treba echo 'backora'; aby jsi videl jestli se ten kod opravdu vykona. jinak to id v apostofech nepomaha to uz sem zkousel.

3) z hlediska bezpectnosti neni vubec dobre vkladat do SQL dotazu primo data od uzivatele, koledujes si o nejaky utok pres SQL Injection ..... pravidlo "nikdy never uzivatelskemu vstupu"
ok s tim erorem to zkusim ale if bezi!. kontrolu uz sem delal
Lamicz píše:Ukaz jeste kod zdrojoveho formulare v HTML, mam dojem, ze chyba bude logicka, ne syntakticka ;)
no formular mam taky dobe ale ejstli cces tak ti ho klidne hodim.

Kód: Vybrat vše

  <form method="post" action="index.php?page=users_edit">

  <table align="center" style="width: 70%" cellspacing="0" cellpadding="0">
    <tr>
      <td>        
        <b>Pozice:</b> 
      </td>
      <td><b>
        <?php
        $prava = $_SESSION["prava"];
        
        if ($prava == "1") {
          $pozice = "Admin";
        } else {
        if ($prava == "2") {
          $pozice = "Administrátor";
        } else {
          $pozice = "Člen týmu";
        }
        }
        echo $pozice;
        ?></b>
      </td>
    </tr>
    <tr>
      <td>
        <b>Login:</b> 
      </td>
      <td>
        <input type="text" name="n_login" size="40" value="<?php echo $row["login"];?>"/>
      </td>
    </tr>
    <tr>
      <td>        
        <b>Heslo:</b>
      </td>
      <td>
        <input type="text" name="n_heslo" size="40" value="<?php echo $row["heslo"];?>"/>
      </td>
    </tr>
    <tr>
      <td>        
        <b>Zobrazované jméno:</b> 
      </td>
      <td>
        <input type="text" name="n_jmeno" size="40" value="<?php echo $row["jmeno"];?>"/>
      </td>
    </tr>
    <tr>
      <td>        
        <b>Email:</b> 
      </td>
      <td>
        <input type="text" name="n_email" size="40" value="<?php echo $row["e-mail"];?>"/>
      </td>
    </tr>
    <tr>
      <td colspan="2">        
    <input type="submit" name="update" value="Upravit"  onclick="return confirm('Opravdu chcete změnit vaše údaje???')"/>
      </td>
    </tr>    
  </table>
  </form>
PC: CPU: AMD Sempron64bit 2600+ (1,6Ghz@2Ghz) MB: MSI K8N Neo GPU: Ati Radeon 9200 128Mb RAM: 256Mb DDR 333Mhz HDD: WD-20Gb, Seagate Baracunda 80Gb OS: Windows XP prof.
Dj´ Frodo
Začátečník
Začátečník
Uživatelský avatar
Registrován: 11. kvě 2005
Bydliště: Mnichovo Hradiště
Kontaktovat uživatele:

Příspěvek od Dj´ Frodo »

tak stim erorem to vubec nefunguje hlásí to

Kód: Vybrat vše

Parse error: parse error in C:\apachefriends\xampp\htdocs\alkyone\tym\users_edit.php on line 20
PC: CPU: AMD Sempron64bit 2600+ (1,6Ghz@2Ghz) MB: MSI K8N Neo GPU: Ati Radeon 9200 128Mb RAM: 256Mb DDR 333Mhz HDD: WD-20Gb, Seagate Baracunda 80Gb OS: Windows XP prof.
matajon
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. lis 2005
Bydliště: Dobruška
Kontaktovat uživatele:

Příspěvek od matajon »

Dj´ Frodo píše:tak stim erorem to vubec nefunguje hlásí to

Kód: Vybrat vše

Parse error: parse error in C:\apachefriends\xampp\htdocs\alkyone\tym\users_edit.php on line 20
no tak bez toho stredniku :D

Kód: Vybrat vše

$result = mysql_query($sql) or die(mysql_error());
Naposledy upravil(a) matajon dne sob 11. lis 2006, 10:50, celkem upraveno 1 x.
Post powered by Microsoft® Windows Vista™ Business
No trees or animals were killed during sending this message
Lamicz
Začátečník
Začátečník
Uživatelský avatar
Registrován: 30. kvě 2005
Bydliště: In a galaxy far away...
Kontaktovat uživatele:

Příspěvek od Lamicz »

No, ten form vypada dobre. kdyz se nic nedeje, tak nejpve zkontroluj, zda se spravne inicializovala ta SESSION $n_id. nech si ji vypsat. Protoze jinak je to jasny, tim ve WHERE by byla prazdna promenna.
Kdyz je to v poradku, tak pujdem dal ;)
:: DESKA :: Asus A8V-XE (VIA K8T890) :: CPU :: AMD Athlon 64 3700+ :: VGA :: ATI Asus GF7600 512MB - passive solution :: RAM :: 4x 256MB Samsung :: HDD :: 80GB Maxtor PATA ::
Dj´ Frodo
Začátečník
Začátečník
Uživatelský avatar
Registrován: 11. kvě 2005
Bydliště: Mnichovo Hradiště
Kontaktovat uživatele:

Příspěvek od Dj´ Frodo »

ja rikal ze je to vsechno v poradku jen tomu proste vadilo ze v tabulce ma sloupec nazev e-mail staci dat pric tu pomlcku a uz to lita!! takze vam dekuju za rady a priste uz snad nebudu tak blbej!! :D :D :D
PC: CPU: AMD Sempron64bit 2600+ (1,6Ghz@2Ghz) MB: MSI K8N Neo GPU: Ati Radeon 9200 128Mb RAM: 256Mb DDR 333Mhz HDD: WD-20Gb, Seagate Baracunda 80Gb OS: Windows XP prof.
Odpovědět

Zpět na „Programování a web“