Pravilen PHP, kako daleč ?
 
HeXeR 6. jul 2007 11:07:05 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#1

Noh, malo sem razmišljal, pa me zanima kako daleč greste s svojo PHP kodo ?



Do popolnosti ?



namreč, jaz popravim vse, tudi tisto ko je pripomba, ali kar pač je notice, opozorilo ...



edino tole:

Notice: Undefined variable: url_array in /var/www/*.net/strani/aktualno.php on line 9



napaka se pojavi ker imam takole,



podomena.domena.net/nekaj/ v tem primeru je url_array[1] = nekaj, ker poberem cel naslov in potem razbijem ... če pa je podomena.domena.net pa dobim zgornji error, ker naslova ni dalje oddomene, torej, vse naprej oddomene je null.



Potem takem ni prvega zapisa v arrayu, ker ni nobenega. Zato dobim undefined. Zadeva dela, ker primerjam iz IF, na koncu pa pride else, če uporabnik vnese kako sra*je, ali nekaj kar ne obstaja.



Torej dobimvam ta notice kar tako, seveda bi ga odpravil če uporabim isset, vendar se mi zdi brezveze dodajat to vsepovsod. Ker je delovanje enako, oz. celo hitreje, ker je manj kode ? (po mojem razmišljanju).



Lahko pa nastavim arraye na 0 če ne obstajajo, tukaj pa je drugi problem, ker ŠE ne vem kolko bo arrayev, namreč index.php?...blabla sploh nebo, vse spremenljivke bom imel v arrayu :).



Skratka koliko je ta notice pomemben ? Je spremenljivo če ga spregledam ? Kaj bi naredili Vi ?


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
Vini 6. jul 2007 12:07:46 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

ce te tole moti, izklopi E_STRICT...



bi ti pa vseeno priporocal, da odpravis ta opozorila... nedefinirane spremenljivke so lahko vzrok hudih bugov ali pa celo varnostne luknje...


všeč(0) ni všeč(0) spam(0)
 
HeXeR 6. jul 2007 13:07:00 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#3
if (isset($_GET["url"]))
{
$url = str_replace(array("\\", ">", "<", '"', "'"), array("", "", "", "", ""), $_GET["url"]);
$url_array = explode("/", htmlspecialchars($url, ENT_QUOTES));
}

vem da znaki ne pridjo skozi prvo kodo in je htmlspecialchars tam brezveze, ampak vseeno, če se bo kdo zapičil v tole ...



potem pa mam


if ($url_array[1] == "nekaj") { echo "nekaj";} else { echo "tu je error"; }

in če se zgodi else, dobim error.


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
frisby 6. jul 2007 14:07:28 Pridružen od:
6. sep 2006
1625 objav
7 0 0
#4

if (isset($urlarray[1]) && $urlarray[1] == "nekaj") ...



Drugače pa tak na produkcijskem serverju onemogočiš pošiljanje vseh noticov in errorjev browserju.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se