» »

debug PHP

debug PHP

gufy123 ::

Zdravo!

Iščem nasvet, kako se lotit debugiranja php-ja.
Imam neko stran, kjer imam prikazane slike, zraven opise, te slike pa se lahko s pomočjo JS sortira. Ob submit-u se pošljejo imena slik, opisi, sortirana imena slik (+ ostali podatki) v neko funkcijo, ki naj bi v bazi posortirala komentarje teh slik (v tabeli komentarjev je potrebno spremenit id-je slik, na katere se komentarji nanašajo). Funkcija ne deluje pravilno, pa mi nikakor ne uspe ugotovit zakaj. Errorjev sem se znebil, tako da je koda "valid", le rezultat ni pravilen.
Izpisovanje v datoteke, error_log, var_dump in podobne mi (še) niso pomagale do rezultata.

Kako se vi lotevate takih problemov?



Matej

technolog ::

Kaj druzga kot izpisovanje vmesnih rezultatov nekam še nisem potreboval. Niti ne vem če obstaja kaj takega.

DeeJay ::

Jaz osebno izpisujem arraye (print_r) ali variable med sekcijami kode, da nekako pridem do dela, ki povzroča težave.
print_r($array); exit();

echo $variable; exit();


če pa postaš kako kodo, pa mogoče skupej pridemo do problema.

se mi je že zgodilo, da sem porabil skor cel dan za iskanje napake, zakaj za hudiča mi ne nastavi sessiona.... ko sm na koncu pogruntal, da sm pozabil na začetku klicati session_start()....

misek ::

Jaz večkrat uporabim KLogger.

maastermedia ::

http://www.php.net/manual/en/debugger-a...

V php-ju to vsakdo malo po svoje rešuje. Neke ultimativne enoznačne celovite rešitve ni. Večina frameworkov ima debuggiranje že notri vgrajeno preko beleženja v log datoteke in podobno. Je pa v sklopu te tematike večjega pomena testiranje in pisanje testov.

Poglej si na hitro, kako ima to symfony2 rešeno s pomočjo phpunit-a:
http://symfony.com/doc/current/book/tes...

gufy123 ::

za vse slike, ki jih vrne post (oz. so v bazi)
{
	$id=$_POST['id'.$k]; //id slike
	$src=$_POST['src'.$k]; //ime sortirane slike
	$desc=strip_tag_img_href($_POST['comment'.$k]); //opis slike
	uredi_sliko($id,$src,$desc); // v tabeli slik spremenim ime in opis slike na določenem id-ju, do tukaj vse OK
	$osrc=$_POST['osrc'.$k]; //dobim prvotno ime slike, pred sortiranjem
	if ($osrc==$src) //če sta sortirana in nesortirana vrednost enaki
	{
		$edit_comment['id'][$k]=0;   //zapiši brezvezne vrednosti, verjetno nepotrebno ampak zarad testa je boljš tako
		$edit_comment['src'][$k]="";
		$edit_comment['osrc'][$k]="";
	}
	else
	{
		$l=999999+$k; //določim neko veliko številko
		$edit_comment['id'][$k]=$l; //id slike, na katero se nanaša komentar dobi začasen unikaten id
		$edit_comment['src'][$k]=$src; //sortirano ime slike
		$edit_comment['osrc'][$k]=$osrc; //nesortirano (prvotno) ime slike
		mysql_query("update TABELA_KOMENTARJI set ID_image='$l' where ID_image in (select ID from `TABELA_SLIKE` where Src='$osrc');");
	}
}

for ($j=1; $j<=$i;$j++) //enako število korakov kot v prejšnji zanki
{
	if (!$edit_comment['id'][$j]==0)  //če različno od brezvezne vrednosti
	{
		$idimage=$edit_comment['id'][$j]; //dobim začasen enolični identifikator
		$src=$edit_comment['src'][$j]; //dobim ime sortirane slike
		mysql_query("update TABELA_KOMENTARJI set ID_image=(select ID from `TABELA_SLIKE` where Src='$src') where ID_image='$idimage'");
	}
}



Ta "update" komentarjev mi ne vrne pravih rezultatov. Se mi zdi, da je največji problem, če premikam slike iz začetka ali konca seznama. Včasih celo združi komentarje večih slik k eni, kar se mi zdi precej čudno, ker koda tega ne bi smela dopuščat.

Ima kdo kakšno idejo?

HardFu ::

Nalozi si kak PHP IDE, recimo PDT, ali pa Komodo IDE, tam notri zloadas cel projekt, potem pa na vrstico, ki jo zelis preveriti, postavis t.i. breakpointe, kjer se procesiranje kode ustavi, da lahko pogledas spremenljivke (in kup drugih stvari). V vsakem primeru priporocam Komodo, saj pride z modulom xdebug za php, ki ponavadi deluje brez problemov, kar za ostale iz izkusenj ne morem reci.
http://codeable.io


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[PHP]Zajem podatkov iz baze

Oddelek: Programiranje
353773 (3410) cobrica
»

PHP sortiranje Arraya

Oddelek: Programiranje
81147 (1002) keworkian
»

HTML začetnik in težava pri vstavljanju slik

Oddelek: Izdelava spletišč
152460 (2276) net4me
»

[SQL in PHP] Preprost PHP koledarček, ki je povezan z MySQL bazo

Oddelek: Programiranje
91820 (1582) R33D3M33R
»

[java] funkcija ekvivalentna print_r v PHP

Oddelek: Programiranje
161586 (1349) sverde21

Več podobnih tem