[ blaki @ 22.12.2012. 19:40 ] @
Pozdrav svima,

Ako moze pomoc pocetniku. Gde je greska u ovom skriptu?



Evo i rezultat (odmah posle ucitavanja, a podatke u bazu ne ubacuje po stiskanju dugmeta, samo izbrise sadrzaj iz polja)



MySQL je verzija 5 i nesto, webserver Apache2, browser Opera (probano i sa Chrome). Sve instalisano u Linuxu Ubuntu 10.2 preko Synaptica. Pomenuta u kodu, skripta za spajanje spoj.php radi.

Hvala unapred svima.

Pozdrav,
blaki
[ BluesRocker @ 22.12.2012. 21:02 ] @
Za početak, imaš jedan navodnik viška kod echo nešto . mysql_error()
[ Shinhan @ 24.12.2012. 08:53 ] @
Code:

"INSERT INTO vijest (naslov, tekst, datum) VALUES ('$_POST[naslov]', '$_POST[tekst]', '$datum')";


Eh da ovde ima samo jedna greška...

1) Nauči šta je to SQL injection i kako sprečiti
2) Ispravnije je pisati $_POST['naslov'] nego $_POST[naslov]
3) Ako ubacuješ array values u string, koristi jednu od sledećih varijanti:

a)
Code:
 $string = "some text {$_POST['field']} heh"; 

b)
Code:
 $string = "some text ".$_POST['field']." heh"; 

c)
Code:
 $string = 'some text '.$_POST['field'].' heh'; 


Ja preferiram c, ali i a i b mogu odraditi posao.

Pročitaj PHP manual strings obavezno!

Evo i moj kompletan predlog ako baš moraš mysql_ funkcije koristiti:
Code:

$naslov = mysql_real_escape_string($_POST['naslov']);
$tekst = mysql_real_escape_string($_POST['tekst']);
$SQL = 'INSERT INTO vijest (naslov, tekst, datum) VALUES ("'.$naslov.'", "'.$tekst.'", NOW())';


4) Bolje bi bilo koristiti mysqli funkcije i naročito mysqli::prepare. mysql_ funkcije su zastarele.

P.S.
Ništa od ovih problema nema veze sa MySQL nego sa PHP.
[ blaki @ 26.12.2012. 09:05 ] @
Hvala na pomoci, posebno gospodinu Shinhanu. Malo sam proucio sve sto ste napisali, jos se ne snalazim najbolje, jer rekoh tek pocinjem.
Ovo sto sam postavio je bio jedan primer iz pocetnickog uputstva za MySQL, nisam ja to napisao, kamo srece da jesam.

Ali evo, malo po malo, dosao sam na osnovu preporuka i uputstava sa nekih drugih sajtova do jednog resenja koje odlicno radi:



Pozdrav,

blaki.

[ Shinhan @ 26.12.2012. 10:13 ] @
Nadam se da skript koji si napisao nije online. Dobro je da počinješ učenje od jednostavnih koncepta, ne može sve odjednom da se nauči, samo bi hteo da te upozorim da ne uploaduješ na javni internet dok ne naučiš dovoljno da ne budeš laka meta za amaterske "hakere".

Citat:

Ovo sto sam postavio je bio jedan primer iz pocetnickog uputstva za MySQL


Sva početnička uputstava za PHP/MySQL početnike su JAKO stara i loše napisana.

Na žalost, ne postoji "dobar PHP tutorial". Svi početnički tutoriali na koje sam našao su vrlo loše napisani sa strane sigurnosti i čitljivosti koda. Ako želiš da pišeš dobar kod, ovo pitanje na SO ima dosta linkova i govori šire o ovom problemu.

Srećno :)
[ bogdan.kecman @ 30.12.2012. 12:34 ] @
Citat:
Shinhan
Sva početnička uputstava za PHP/MySQL početnike su JAKO stara i loše napisana.


amin!

pritom raznorazni kursevi, knjige, cak i "fakulteti", salju jako pogresnu poruku kako se prave on-line aplikacije. osnovna postavka da "to sto ti ocekujes neki podatak u nekom formatu onome ko podatak unosi, sve i ako nije maliciozan, ne znaci nista" nekako izmice svima njima.. vrhunac koji sam cuo sa jednog domaceg "cenjenog" fakulteta je "koristi prepared statements i to je sve sto treba da znas o sigurnosti"

otoh, jel moze neko da sibne ovo tamo u php posto ovo ima mnogo vise veze sa doticnim nego sa mysql-om
[ agvozden @ 30.12.2012. 13:28 ] @
Meni nikako ne ide u glavu da ljudi ne pravi razliku između html-a i php-a, a još ispada da je mysql sinonim za php i da za ništa drugo ne može da posluži.

kada sam počeo da radim sa php-om, pre toga sam uzep knjigu i učio mesec dana. Tako je bilo ranije i sa Basic-om, Asemblerom... osim za FoxPlus koji sam učio iz Help-a.

Sada ljudi programiraju uz pomoć tutorijala i ništa ne razumeju. Respect svakom, ali mešati html i mysql ... !"#$%"#!$

jeste digresija, ali morao sam da kažem... Savet - kupite O'Reilly knjige, imaju puno iskustva i nećete doći u ćorsokak.
[ plus_minus @ 30.12.2012. 14:01 ] @
^^ A još bolje je, naučiti engleski jezik kako dolikuje, pa onda raspali po googletu ako to što ti treba povodom php-a nema na php.net-u, stack-u, itd.
Uz testiranje u lokalu, sve nedoumice, uz kraći/duži vremenski period uspešno bivaju rešene ako se ide takvom praksom.