Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pogrešno upisuje u bazu, a ja ne znam kako da testiram kod i otkrijem grešku

  • 4 odgovora
  • 2.220 pregleda

Najnovija ↓

Pogrešno upisuje u bazu, a ja ne znam kako da testiram kod i otkrijem grešku 26.04.2010. u 00:23 · pre 201 mesec
izmenjeno 2 puta, poslednji put Goran Rakić 26.04.2010. u 00:42
  1. Goran Rakić26.04.2010. u 00:42zapis iz teksta poruke
  2. Goran Rakić26.04.2010. u 00:38zapis iz teksta poruke
#1
Pre par meseci sam uradio ovu scriptu za jedan sajt i sada sam hteo da je iskoristim na nekom drugom i nece nesto da radi.

Problem je to sto kada unesem vrednost u polje NASLOV u formi i text sadrzaj u textareu on u bazu kao naslov upisuje sadrzaj?? Nezam zasto proverio sam vise puta i nemogu da nadjem gresku...

Baza se sastoji od nekoliko polja u ovom sucaju sta ja koristim tabelu sadrzaj i polja ID, SADRZAJ, TEXT.
Imam na sajtu polje za naslov
<input type="text" name="naslov"> i <textarea name="text">
Kada na primer unesem u polje naslov " NASLOV1 " i u polje za text "TEKST1 " i potvrdim podaci se posalju u bazu ali vrednos textarea se ubacuje u obe kolone???
Neznam zasto jesam nesto pogresio proverio sam SQL UPDATE svi podaci su dobri...
Umesto da iz polje naslov smesti u bazu u polje naslov i tako za text a ne text da smesta i u naslov??

Ajde pogledajte ovaj kod mozda nadjete gresku....

Code (php):
 <?php

      if (isset($_GET['id']) && is_numeric($_GET['id'])) $id = $_GET['id'];
      elseif(isset($_POST['id']) && is_numeric($_POST['id'])) $id = $_POST['id'];
      else die("greska");

      if (isset($_POST['submitted'])) {

            errors = array();

            if (empty($_POST['naslov'])) $errors[] = 'Zaboravili Ste Da Unesete Naslov Teksta.';
            else $naslov = $_POST['tekst'];

            if (empty($_POST['tekst'])) $errors[] = 'Zaboravili Ste Da Unesete Tekst Poruke';
            else $tekst = $_POST['tekst'];

            if (empty($errors)) {
                  $query = "UPDATE sadrzaj SET naslov='$naslov', tekst='$tekst' WHERE id=$id";
                  if($result = mysql_query($query)) echo 'Changes have been saved.';
                  else echo 'greska';
            }
            else foreach ($errors as $msg) echo " - $msg<br/>\n";

      }
      else {
            $query = "SELECT naslov, tekst, id FROM sadrzaj WHERE id=$id";
            ... prikaži tekst ...
      }
?>
Potpis
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
Re: Mozete da pogledate ovaj kod sto sam radio... 26.04.2010. u 00:31 · pre 201 mesec
izmenjeno 1 put, poslednji put Goran Rakić 26.04.2010. u 00:44
  1. Goran Rakić26.04.2010. u 00:44zapis iz teksta poruke
#2
Code (php):

      $naslov = $_POST['tekst'];
 


treba $_POST['naslov']. Duguješ mi piće.

Nauči da testiraš kod. Običan var_dump($_POST) bi ti za početak rekao da su podaci uspešno stigli, a onda var_dump($naslov) bi ti rekao da ova promenljiva nije dobro inicijalizovana.

Nauči da lepo formatiraš (uvlačiš) kod i da na forum objaviš samo odgovarajući deo koda tako što izbaciš sve što nije relevantno (HTML, if-ove koji nemaju veze sa problemom itd.). Potrudi se da uložiš vreme u oblikovanje poruke i opisivanje problema. Sažeto, jasno i poštujući pravopis.

Vodi računa da u ovom kodu nisi koristio nikakvu zaštitu od SQL ubrizgavanja. Vodi računa da nisi koristio nikakvu zaštitu od ubrizgavanja neželjenog JavaScript i HTML koda. Ako stranu koristiš samo ti za postavljanje vesti, to je ok, ali ako je skripta šire dostupna, to može biti opasan problem.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Pogrešno upisuje u bazu, a ja ne znam kako da testiram kod i otkrijem grešku 26.04.2010. u 00:50 · pre 201 mesec #3
Vidi stvarno jeste ja sam sat vremena znaci gledao trazio gresku i nije mi to palo za oko.. Dugujem ti 5 pica bro...
Ajde zaradi i veceru :D

Daj neki link ili kljucne reci za zastitu pri upisu u bazi to za javascript sto si pominjao...
Ovo koristim u admin panelu kada kliknem na neki naslov vesti i otvara mi edit stranu..
Potpis
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
Re: Pogrešno upisuje u bazu, a ja ne znam kako da testiram kod i otkrijem grešku 26.04.2010. u 01:00 · pre 201 mesec #4
Ako to koristiš samo ti, nema problema (nećeš ti sam hakovati svoj sajt).

Ako koristiš isti kod da mogu i posetioci da unose tekstove, komentare,... onda si ranjiv.

http://phpsec.org/projects/guide/2.html#2.3
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Pogrešno upisuje u bazu, a ja ne znam kako da testiram kod i otkrijem grešku 26.04.2010. u 01:07 · pre 201 mesec #5
Ne ovo samo ja koristim ali verujem da cemi ovo dobro doci da znam za u buduce kada budem radio nesto gde ce korisnici sami postavljati... Ok hvala ti puno pa da castim kad se vidimo
Potpis
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme