PHP mysql_real_escape_string i xampp

Sad nez jel netko vec raspravljao o ovome prije, pa se ispricavam ako je bilo rijeci.
Uglavnom radi se o cudnom problemu, danas sam napokon nakon duzeg vremena razvijanja administracije za jednu veliku bazu clanova neke organizacije podigao na svoju masinu da testiram i eto ogromnih problema. Bilo šta da sam htio spremiti u bazu jednostavno je spremalo prazna polja, ali na kompu u xamppu je sve radilo odlicno. Prvo sam mislio da je problem sto na masini koristim prilagodjen mysql samo za MariDB vrste tablica i to debugao, problem nije to i onda sam u nevjerici presao na debuganje skripte, ali misleci nema sanse da je to problem…

Problem je u mysql_real_escape_string jer je samo obrisao vrijednost stringa, otisao sam na manual php-a i vidio svu bit problema, tu funkciju mogu koristiti tek nakon otvaranja konekcije s bazom, ali nije mi onda jasno kako u xamppu ne moram imat otvorenu konekciju s bazom da bi funckija radilo normalno.

Sad sam izgubio dobra 2 sata jer sam prvo mislio da je problem s mysql-om, a ispada da php drugacije radi pod xamppom, a drugacije linux masini…

jel netko imao slican problem?
zna li netko kako da namjestim xampp da radi jednako s php-om kao i na linuxu da mi se ovake stvari ne događaju?

pa možda imaš drugačije verzije php-a?
najbolje ti je instalirat sve posebno , posebno apache2 , mysql , php …itd

U opisu funkcije piše da ne treba imati otvorenu vezu s bazom. Naime, ako veza nije zadana kao parametar, koristi se posljednje otvorena. A ako ne postoji posljednje otvorena, onda funkcija sama otvori vezu kao pozivom “mysql_connect” bez parametara.

Problem je jedno od ovoga:

  • u okolini u kojoj ti funkcija radi bude otvorena veza (negdje, neka veza) prije poziva funkcije ili

  • php.ini sadrži takve defaultne parametre za spajanje na bazu da implicitni mysql_connect uspijeva.

U okolini u kojoj ti funkcija ne radi niti jedno od gornjeg dvoje ne uspije i funkcija propadne.

Provjera:

  • u okolini u kojoj funkcija radi provjeri da li se negdje i nekako koristi MySQL i prije upotrebe funkcije;

  • ako se ne koristi, onda s ini_get() dohvati i ispiši defaultne parametre za mysql_connect iz php.ini datoteke (v. deklaraciju funkcije mysql_connect za popis parametara); potom se pokušaj spojiti na MySQL koristeći te parametre da provjeriš da se stvarno može spojiti s istima.

Ispravak:

  • u okolini u kojoj stvar ne radi ili osiguraj da se jednom ranije otvori veza prema MySQL-u ili upiši u php.ini defaultne vrijednosti nekog spoja.

[hr][/hr]

U svakom bi slučaju trebao funkciju koristiti s eksplicitnim linkom jer time kontroliraš slovni skup unutar kojeg se vrši escaping.

Moguće da ti xamppom sam otvara konekciju prema bazi.
Probaj na lokalnoj mašini prije pozivanja mysql_real_escape_string provjeriti dali je konkecija otvorena ili ne.

[quote=“gorrc”]Moguće da ti xamppom sam otvara konekciju prema bazi.
Probaj na lokalnoj mašini prije pozivanja mysql_real_escape_string provjeriti dali je konkecija otvorena ili ne.[/quote]

lako moguce, instalirao sam i wamp, ista stvar, ne moram otvarat konekciju prije…

zanimljiva stvar je da u inicijalizaciji standardnih includeova koje sam pozvao kod vaznijih dijelova provjeravam ima li odredjena osoba ovlasti, zatim zavtvaram konekciju i onda kasnije escape string iz $_POST podata ali sam novu konekciju tek kasnije pozivao(MySQL sam napravio kao objekt) i na linuxu pod apache serverom nece da radi.

Morat cu samo biti oprezan kod toga, probao sam iskopirat postavke sa linux server, sve one koje nisu usko vezane za path i jednostavno ista stvar, xampp i wamp nekako drze konekciiju otvorenom dok se skripta ne izvrsi u cijelosti - debugao sam…

@Horki - iste su verzije 5.3.10


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja