PHP problem kod zbrajanja stringova preko varijabli

Radi:

generirajSkripte('pages/','developingStyles/','develop');
generirajSkripte('pages/','developingStyles/fonts/','fonts');

Radi:

//SVE varijable odgovaraju gornjim stringovima
generirajSkripte('pages/',$Pages[0].'/',$ScriptNames[0]);
generirajSkripte('pages/',$Pages[0].'/fonts/',$ScriptNames[1]);

Ne radi:

generirajSkripte('pages/',$Pages[0].'/',$ScriptNames[0]);
generirajSkripte('pages/',$Pages[0].'/'.$Pages[1].'/',$ScriptNames[1]);

Varijabla $Pages[1]==‘fonts’ 101%

Zašto pobogu ova zadnja varijanta nebi radila??

Isprika na duplanju teme, ovdje sam ipak uspio fokusirati na najuži uzrok problema, iako su posljedice ovoga fascinantno meni nedokučive.
Znači zbog ove male promjene inputa (što nebi po meni niti trebao biti drugačiji input)… no zbog ovakve promjene inputa se unutar funkcije “generirajSkripte()” izvrši code koji se nalazi unutar uvjeta koji se niti ne izvršava!
Ništa se unutar tog uvjeta ne izvršava osim jedne problematične linije…a da stvar bude još luđa, ta jedna linija odradi čudo posla, a ništa slično od toga posla onomu što bi ona trebala biti.

Ali zanemarimo totalno lude posljedice…kakav je ovo uzrok??
Sumnjam da ovaj “slash” kod zbrajanja varijabli zeza…mada kad ispisujem parametre koji stižu u funkciju generirajSkripte(), svi izgledaju točno…

Pretpostavljam da funkcija “generirajSkripte()” traži 3 string varijable.
Dakle, u pravilu bi trebalo pozivati tu funkciju sa:
generirajSkriptu(“string1”, “string2”, “string3”);

Obratiti pažnju na navodnike.

U ovom pozivu kojeg ti radiš, to bi izgledalo ovako (ako varijable prenesemo u njihovu vrijednost i direktno unesemo u poziv funkcije):

generirajSkripte(‘pages/’ , nekiPage/fonts/ , fonts);

Obrati pažnju na navodnike.
Nema ih u drugoj varijabli kod poziva funkcije.

Pokušaj ovo:
generirajSkripte(“pages/”, “’”.$Pages[0]."/".$Pages[1]."/’","’".$ScriptNames[1]."’");

Nope nope, ti si sad prosljedio parametar “‘nekiPage/fonts’” (<-mali navodnici unutar velikih)
…i kao rezultat toga sam dobio folder: 'nekiPage (navodnik završi u imenu folderea ako ideš tim putem!) …a još veće belaje se pojave na mjestima sastavljanja pathova, jer path koji se sastavlja ima na zadnjoj poziciji navodnik umjesto slash.

U pravu si, dodao je navodnike kao sadrzaj varijable.
A da probaš sa:

generirajSkriptu(‘pages/’, addslashes($Pages[0].’/’.$Pages[1].’/’), $ScriptNames[1]);

Evo probao, i dalje zeza po istom. Ma ovo je ludnica od problema…nisam još debugirao cijeli dan između dvije linije codea :D.

Mislim, mogao bi ja ovo sigurno zaobići nekako…ali sad me već živo muči što je posrijedi…

Neznam jesi il vidio paralelnu temu gdje sam napisao što sam našao? …da je bug uzrokovan nekim riječima koje se pojavljuju u prilično udaljenim includanim HTML scriptama.

Uglavnom, tražio sam dalje zašto ga muče te HTML scripte…pošto je i to sve posljedica nečega. Našao sam da je problem zato što definiram varijable iz razbijenog urla.

Znači, ako iste vrijednosti dam varijablama ručno, onda sve radi. Ako razbijem url preko slasha, pa iz toga postavim vrijednosti varijablama…onda ne radi. Zato i imamo gornju situaciju da neće iz varijabli, hoće ako se parametar ručno prosljedi.

Sad je moje pitanje, kako bi još mogao pokušati razbiti url? …a da nije explode by slash…


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Profit Monkey