A što kad nađem bug u PHPu :s

Kao prvo, imam error reporting.
Kao drugo, da nemam deklariranu dies funkciju, vrištao bi error reporting
Kao treće, imam deklariranu dies funkciju
Kao četvrto, JELI TO DEBUGING verzija u kojoj se bug također pojavljivao? Jesam li lijepo zamolio da mi se neda više objašanjavati šta je u kojoj funkciji kad sam sve do zadnjeg slova ogolio za debuging? Dali je teško to više shvatiti? Bezobrazno je toliko podcjenjivati sugvorinika…

Isto tako sa ovim da ispišem parametre koje prosljeđujem? Pa dali se lijepo vidi što prosljeđujem. Jesam li lijepo rekao da sam to već sto puta iskontrolirao, i da točno ono što prosljeđujem, da mi stiže i unutar funkcije.
Jel nije dosta što sam dan i pol to debugirao, da bi još dan i pol objašnjavao što stiže onima koji ne vjeruju. Stiže to što sam rekao i točka…i ništa drugo niti ne prosljeđujem u funkciju…niti sam išta drugo tamo uspio zateći!!!

Uspio sam samo zateći da je preskočena echo funkcija, kad mkdir odradi kreiranje foldera prema src-u iz udaljenog HTML IMG taga…i to za vrijeme dok if uvjet nebi smio propuštati. U to isto vrijeme ako bilježim parametre iznad if uvjeta, svi su uredni…ali ništa ne mogu bilježiti unutar uvjeta, jer echo se ponaša mrtvo u skladu sa FALSE stanjem uvjeta.

Moram priznati da si nezgodan za primiti pomoc. :smiley:
Jesi li siguran da pri vrsenju concatenating-a imas prave vrijednosti, tj, da su ukljuceni right slash-ovi?
Konkretno mislim na ovu (i slicne) liniju:

$file=fopen($pageFolderName.$path.$scriptName."_m.php", "w");

Echo toga daje dobar path do skripte?

P.S. Isprika što sam bezorazan i isfrustriran bespotrenim podpitanjima, ali naporno je već ovo objašnjavati.

Tko god želi doći ispitati vlastitim očima, uvjeriti se da PHP može pošandrcat u određenim okolnostima, neko dodje i uvjeri se. Ja ću ga još počastiti pičem, a častim i večerom ako pronađe bilo što što je dovoljno no-sense od mene zadano.
Lokacija je blizina jarunskog placa, slobodno tko god poželi! Možda sam ovdje već previše isfrustriran uzaludnim pitanjima, ali zapravo ći biti full friendly nastrojen ako netko zaista želi saznati u čem je ovdje problem :wink:

Mi cesto navikli koristiti github ili bitbucket, pa ne bilo ti zapovjedjeno… :smile:

To mu ja cijelo vrijeme pricam da nam ispise on uporno to nece da uradi i postavlja nekakve funkcije i pise o img tagovima koji nemaju blage veze sa mozgom.

Pa makePath() je o tome pazio. Ali u svrhu debuginga sam ga odbacio…i to sve ručno pazio da bude dobro. I naravno da je to dobro…nebi takav propust ostavio.

ALI primjeti i ovo:

  1. takav propust nebi uzrokovao da se generira folder sa skroz nekim trećim imenom
  2. takav propust nebi uzrokovao da se preskoči echo linija
  3. takav propust ne može btii u debuging verziji, jer sam to sve ogolio u debuging verziji, (nema te linije uopće tamo!) a i sam si mogao pogledati točno kako izgledaju varijable za debuging verziju, jer sam sve to iznio i vidi se kako su povezane.
  4. Frustrira me to što nitko ne vjeruje što se ovdje faking desilo, a svi postavljaju neka totalno nelogična pitanja koja nemaju veze s vezom. Jedino @snisson je možda na tragu biti problema. Iako, čak da je…to je onda tako aljkavo od strane PHPa da takva nijansa u inputu razbuca code na način na koji se razbucao…

U ovoj imas slash na kraju prvog parametra,

u ovoj nemas slash na kraju prvog parametra

ovdje takodjer nemas slash na kraju

Pa naravno da nemaju blage veze s mozgom…isto kao što nema da je preskočena echo linija, a mkdir odradi nakon nje.
I ne moraš vjerovati da sam naletio na situaciju koja nema blage veze s mozgom…tvoj problem.
Neću stavljati ovaj projekt na public, ali probat ću simulirati istu situaciju u nekom odvojenom programčiću…pa ću to onda sherat. Nadam se da ću uspjeti simulirati…jer možda osim udaljenog src-a IMG-ovog taga, ima još faktora koji su doveli do ovoga…

Tako je, a u debuging funkciji od generirajSkripte imam rtrim($path, ‘/’)
…tak da je svejedno jel taj desni slash zalutao ili nije…

if(!file_exists(rtrim($pageFolderName.$path,’/’)))
if(!mkdir(rtrim($pageFolderName.$path,’/’),0777,true)){die(‘failed to create…’);}

…i tragaš totalno u krivim vodama. Nema tu kruva…sve da je i fulan taj slash, bili se dešavalo to što se dešava???

…a vjeruj mi da sam u svim kombinacijama i probao mkdir() da ostavim taj desni slash…i svašta nešto. Ovo što si sad iskopao je samo tako nespretno malo ostalo napisano, ali to sve rtrim liječi…tak da je to zaista nebitno.

Ovo je moj URL: http://localhost/css/index.php/test/1/2/3

$UrlParts = getUrlParams(getURL(),$Config['rootDomain']);

ovo mi izbaci

Array ( [0] => test [1] => 1 [2] => 2 [3] => 3 )

$PageNames=array();
$ScriptNames=array();

    for($x=0;x<count($UrlParts);$x++)
    {
        $PageNames[$x]=($val=="") ? 'main': $val;
        $ScriptNames[$x]= urlToScriptName($PageNames[$x]);
    }
    
    print_r($PageNames);
    echo "<br />";
    print_r($ScriptNames);

ovo mi ne izbaci nista odnosno izbaci mi ovu gresku

Notice: Use of undefined constant x - assumed 'x' in C:\inetpub\wwwroot\css\index.php on line 104

Notice: Undefined variable: val in C:\inetpub\wwwroot\css\index.php on line 106

Fatal error: Call to undefined function urlToScriptName() in C:\inetpub\wwwroot\css\index.php on line 107
for( $x=0; x < count($UrlParts); $x++)
        {
            $PageNames[$x]=($val=="") ? 'main': $val;
            $ScriptNames[$x]= urlToScriptName($PageNames[$x]);
        }

U ovoj petlji ti je srednja varijabla x nije definiranaa i misli da je konstanta,
ovako bi trebalo biti OK.

for( $x=0; $x < count($UrlParts); $x++)
        {
            $PageNames[$x]=($val=="") ? 'main': $val;
            $ScriptNames[$x]= urlToScriptName($PageNames[$x]);
        }

sad mi za dalje treba ona funkcija urlToScriptName

Srry…napravio sam tipfeler u prijepisu. Jer izvorno imam foreach funkciju…i radim još svašta nešto unutar toga foreacha. A kako je ovdje taj višak nepotreban, htio sam to lijepše izraziti sa for petljom (umjesto foreach), pa mi je tako ostao $val iz foreach petlje…kojeg očito samo treba zamjeniti sa $UrlParts[$x]

Results of the file_exists() are cached, so try using clearstatcache(). If that not helped, recheck names - they might be similar, but not same.

Nisam bas siguran ni za ovo fwrite($file, "<?php \n\n\n\n\n?>");

Stavi apostrofe.

Los ti je ovo kod pravo, uopste, i ideja je suluda.

Ajde više shvati da toga ničega nema u debuging varijanti funkcije!! MOLIM TE!!!

…sve da i jeste prisutno, totalno nebi imalo veze sa ičim…

Pa daj nam tu foreach petlju.

I ako je tebi nesto ocito nama nije, jebote pokusavamo ti pomoci, a ti uporno po svom i ko nas jebe. Mozda je bas tamo negdje bug gdje si ti 100% uvjeren da nije.

@creatifcode, a imaj na umu da sam krenuo dalje sa kodom…s alternativnim pristupom. Tako da sam morao selektivno čupati code kakav je bio (a dobro se sjećam svega) …samo što može uletiti tako neka glupa greška u prijepisu kao što je ova sa zamjenom foreach petlje u for petlju…a nisam $val prilagodio za for petlju…

Što se tiče ovoga sa stackoverflowa, vidiš …to je zanimljivo. Samo da je problem u tome…bojim se da mi onda nebi radila niti alternativna metoda.
…i svašta drugoga od čudnog ponašanja se svejedno nebi trebalo pojaviti…

fali mi funkcija urlToScriptName, neda mi da dalje radim bez te funkcije.

Hehe, covjek prekucava kod i pravi neke lijeve varijante tvrdeci kako je kod koji je stvarno na projektu ispravan 100%, a u isto vrijeme umnja na php bug :D. Pa niko ti nece pronaci problem kad ne pejstujes ono sto ti se trazi vec nakucavas nesto bezveze i ne radis ono sto ti se kaze u vezi sa debagiranje,

2 Likeova

Da, ali ja sam krenuo dalje sa kodom…i sad ti vraćam što je bilo ranije. No neke su stvari zaista nebitne…kao to recimo. Šteta što mi toliko ne vjeruješ…a i sebi toliko ne vjeruješ…jer što bi to moralo biti u tom foreachu, da kasnije bude to što je xd. Ali dobro…sumnje nikad dosta.

Samo sam ja to sve bio prečačkao uzduž i poprijeko. Full precizno sam izolirao uzroke problema, pa mi je jasno da nisu bili tamo!!!. Bitniji je onda dio kako razbijam URL.
Ali što se i toga tiče, probao sam ga razbiti i sa codeom koji si ti gore stavio…pa je problem bio isti.

A što se tiče rekonstrukcije codea, budem ja vratio code u stanje bugiranja, pa ću sve copy-paste. Ali to sad nemogu, jer velim…otišao sam ja dalje sa codeom.