| FONForum http://www.fonforum.org/ |
|
| F1 oko PHPa? http://www.fonforum.org/viewtopic.php?f=8&t=11233 |
Stranica 1 od 1 |
| Autoru: | Shone Zlo [ 23.11.2007. 11:54:41 ] |
| Tema posta: | F1 oko PHPa? |
Kod: <?php
$mysql_id = mysql_connect('localhost', 'guest', ''); if(!$mysql_id){ die('nema konekcije sa bazom: ' . mysql_error()); } mysql_select_db('shonetov_sajt'); if($_POST["nick_field"] == " "){ $message = 'Neophodno je popuniti sva polja da bi se dodao komentar'; } else if ($_POST["comment_area"] == " ") { $message = 'Neophodno je popuniti sva polja da bi se dodao komentar'; } else { $message = 'Komentar je uspesno dodat'; // $nick = $_POST["nick_field"]; // $comm = $_POST["comment_area"]; $query = "INSERT INTO 'knjiga_gostiju' (id, nick, comment) VALUES ('', '$_POST["nick_field"]', '$_POST["comment_area"]')"; mysql_query($query, $mysql_id); mysql_close($mysql_id); } ?> Dakle, kad je kod ovako postavljen dobijam gresku u fazonu "ne prosledjujem mu stringove u VALUE".Ako prvo deklarishem $nick i $comm pa njih prosledjujem u VALUE, onda ne dobijam nikakvu gresku ali u bazu ubacuje "komentare" koji se sastoje samo od brojeva.Ako u nicku ili commentu postoji makad 1 slovo komentar jednostavno ne ulazi u bazu i nemam nikakvu gresku?Jel vidi neko gde je problem? Polja u bazi su: id(int, autoincrement; nick, varchar(20); comment (text)) Kod se isto ponasha i ako iz upita iskljucim polje id Aj ako neko ima ideju sta ovde fali neka rekne
|
|
| Autoru: | kliford [ 23.11.2007. 12:28:07 ] |
| Tema posta: | |
Kod: $query = "INSERT INTO 'knjiga_gostiju' (id, nick, comment) VALUES ('', '$_POST["nick_field"]', '$_POST["comment_area"]')";
A da u $_POST["nesto_nesto"] dodas slashes ispred ", ovako ga bunis jer u celom $query stringu imas dvostruke navodnike, pa u okviru njih jednostruke, pa u okviru njih opet dvostruke... Probaj u IF-ovima da umesto $_POST["asdf"] = " " stavis $_POST["asdf"]=null ili !$_POST["asdf"]... pobaj da za comment, umesto tipa text stavis neki veliki varchar... pfff, ovako, na oko, ne vidim nikakvu gresku (osim onoga sa navodnicima, ali i to si zaobisao uvodjenjem promenljivih $nick i $comm, samo sam ti objasnio u cemu gresis), kad dodjem kuci, probacu da debugujem to tvoje :] Btw, baci i deo koda kojim se preko POST-a salju 'nick' i 'comment', moguce je da je tu greska.. |
|
| Autoru: | Shone Zlo [ 23.11.2007. 12:58:33 ] |
| Tema posta: | |
Evo koda koji radi, naravno bilo je sranja oko navodnika...Btw u cemu je razlika izmedju 'nestonesto' i "nestonesto" ?
Kod: <?php
$mysql_id = mysql_connect('localhost', 'guest', ''); if(!$mysql_id){ die('nema konekcije sa bazom: ' . mysql_error()); } mysql_select_db('shonetov_sajt'); if($_POST["nick_field"] == ""){ $message = 'Neophodno je popuniti sva polja da bi se dodao komentar'; } else if ($_POST["comment_area"] == "") { $message = 'Neophodno je popuniti sva polja da bi se dodao komentar'; } else { $message = 'Komentar je uspesno dodat'; $query = "INSERT INTO knjiga_gostiju (id, nick, comment)"; $query = $query." VALUES ('', '$_POST[nick_field]', '$_POST[comment_area]')"; mysql_query($query,$mysql_id); mysql_close($mysql_id); } ?> |
|
| Autoru: | salebab [ 23.11.2007. 13:34:23 ] |
| Tema posta: | |
kod ti je podlozan sql injection. Jednostavno, probaj da uneses karakter ' u comment i videces da ces dobiti gresku
radi ovako: Kod: <?php $nick = addslashes($_POST['nick_filed']); $comment = addslashes($_POST['nick_field']); /** * i sada proveravas dal su $nick i $comment prazni. * ako je sve u redu: * - povezi se sa bazom * - upisi podatke u bazu ALI koristeci $nick i $comment a ne $_POST... */ Kada ispisujes podatke iz baze koristi stripslashes() funkciju. A na primeru cu ti pokazati razliku izmedju ' i " Kod: /* primer za ' */ $broj = 52; print 'broj: $broj '; // na ekranu ce se ispisati: // broj: $broj Kod: /* primer za " */
$broj = 52; print "broj: $broj "; // na ekranu ce se ispisati: // broj: 52 Nadam se da si razumeo....
|
|
| Autoru: | Shone Zlo [ 23.11.2007. 18:30:26 ] |
| Tema posta: | |
tnx za pointere
|
|
| Stranica 1 od 1 | Sva vremena su u UTC + 1 sat |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|