[ Q_Line @ 19.07.2006. 13:11 ] @
Pozdrav, opet ja i "pametna pitanja" :)

Ovako, imam nekih ideja ali bas ne znam tacno kako rijesiti slijedeci problem, ako je uopste problem. Dakle, kako samo za root domene ili njen OSNOVNI file prikazati neki sadrzaj (sa print ili echo), a za sve ostale fajlove NE.

Dakle ako ste u:

Code:
http://www.elitesecurity.org/ ili
http://www.elitesecurity.org/index.php ili mozda
http://www.elitesecurity.org/index.htm

da sistem sa echo ili print ispise npr.:

Code:
Ovo je root domene

a da za sve ostale fajlove na domeni ispise neku drugu poruku, npr.:

Code:
Ovo je javni dio domene

i sl.

Dakle, to bi bio mozda neki switch u kodu ili sl. :)

Tnx
[ sale83 @ 19.07.2006. 13:41 ] @
Pa ako sam te ja razumeo to je ovako nesto:

Code:

$defult = array("","index.php","index.html","index.htm","index.php3","defult.htm","index.asp");
//... itd 
$str = str_replace("/","",$_SERVER["REQUEST_URI"]);
if(in_array($str, $defult))  {
echo "ROOT";
} else {
echo "NIJE ROOT";
}





Medjutim najbolje je resenje sa REG EXPRESION :)
A za to ti je Branko strucanjak pa ce ti on verovatno ponuditi neko bolje resenje :)



Poz
sale

[ Q_Line @ 19.07.2006. 14:00 ] @
Tnx, sacekacemo onda BRANKA

:)
[ bzero @ 19.07.2006. 14:20 ] @
Code:

$scriptname = preg_replace('~\.[^\.]*$~', '', basename($_SERVER['SCRIPT_NAME']));
if (strcasecmp($scriptname, 'index') == 0) {
    print "jeste index.xxx";
}
else {
    print "nije";
}


[ sale83 @ 19.07.2006. 14:37 ] @
bzero...

Bez testiranja ja mislim da ce tvoj kod da vrati JESTE i ako je ovo upitanju:

http://www.elitesecurity.org/folder/index.php

[ dee_ @ 19.07.2006. 14:42 ] @
pogledaj koliko se puta '/' ponavlja u adresi...

http://domena.com/nekifajl.bla

dakle, za root ce se ponovit tocno tri puta... za sve ispod roota dolazi jos jedan '/'... znaci, cetvrti....

if ($brojslasheva>3)
nijeroot();
[ bzero @ 19.07.2006. 14:47 ] @
Citat:
sale83: bzero...

Bez testiranja ja mislim da ce tvoj kod da vrati JESTE i ako je ovo upitanju:

http://www.elitesecurity.org/folder/index.php


Jeste, to sam tek posle video, ustvari ovako je za index u root-u:

Code:

$scriptname = preg_replace('~\.[^\.]*$~', '', $_SERVER['SCRIPT_NAME']);
if (strcasecmp($scriptname, '/index') == 0) {
    print "jeste root index.xxx";
}
else {
    print "nije";


[ dee_ @ 19.07.2006. 14:56 ] @
a ako je u igri default.asp? :)
[ Q_Line @ 19.07.2006. 15:04 ] @

U biti, ako mi treba nesto ovako ONDA imam root domene i index.php file i na to cu se ograniciti, ne trebam se zamarati sa .aspx ili .htm/l ekstenzijama kad mi to niti ne treba, a i to se moze srediti error 404 stranicom :)

Tnx ekipa...
[ sale83 @ 19.07.2006. 15:09 ] @
Evo ti jos bolje resenje bez upotrebe REG EXP:


Code:


if (strripos($_SERVER['SCRIPT_NAME'],"/") == 0) {
    echo "ROOT";
}
else {
      echo "NIJE ROOT";
}



Ovaj kod mozes da stavis u index.php bilosta.php index.php3 ma sta ti padne na pamet
uvek ce ti reci da li je u ROOT ili nije ....

Poz
sale
[ Q_Line @ 19.07.2006. 16:06 ] @

Ok, a sta ako je npr. u pitanju:

Code:
index.php?vijest=456


sta ce se pojaviti, ROOT ili NEROOT poruka!? :)
[ sale83 @ 20.07.2006. 00:46 ] @
Nema veze to ako je link index.php?vijest=456

Zato sto cistas nazvi fajla ( scripte)...

Poz
sale
[ Br@nkoR @ 20.07.2006. 09:06 ] @
Citat:
A za to ti je Branko strucanjak pa ce ti on verovatno ponuditi neko bolje resenje

lol

ono što bi moglo npr
Code:

if(preg_match("/^\/?(index|default)\.(php|html?|asp|jsp)$/i", $_SERVER['REQUEST_URI'])) {
  echo 'jeste';
} else {
  echo 'nije';
}


U ovom primeru ne bi trebalo da prolazi query (kao što si postavio u prethodnom primeru).
Ukoliko želiš da prolazi query, možeš koristiti npr. pattern:
Code:
/^\/?(index|default)\.(php|html?|asp|jsp)[^\/]*/i


edit:
sada videh da sam napravio grešku i da neće da rad za http://www.elitesecurity.org/
Code:

#trebalo bi
/^\/?((index|default)\.(php|html?|asp|jsp))?$/i

#odnosno
/^\/?((index|default)\.(php|html?|asp|jsp)[^\/]*)?$/i


[Ovu poruku je menjao Br@nkoR dana 20.07.2006. u 12:58 GMT+1]
[ Br@nkoR @ 20.07.2006. 09:20 ] @
Sada videh zaboravio sam u prvom primeru za fragment, da li i njega vraća $_SERVER['REQUEST_URI']
[ Q_Line @ 20.07.2006. 10:37 ] @

Hvala, testacemo, pa javim :)
[ sale83 @ 20.07.2006. 10:46 ] @

Sa ovim kodom bez obzira da li je kod u index.php, index.php3, nesto.php, upis.php, izbrisi.php .php3 .php4 .php5 ...itd :

Code:

if (strripos($_SERVER['SCRIPT_NAME'],"/") == 0) {
    echo "ROOT";
}
else {
      echo "NIJE ROOT";
}
 


AKo je Link tipa:

http://www.sajt.com/ - rezultat je ROOT
http://www.sajt.com/index.php - rezultat je ROOT
http://www.sajt.com/izbrisi.php - rezultat je ROOT
http://www.sajt.com/index.php3 - rezultat je ROOT
http://www.sajt.com/index.php5 - rezultat je ROOT
http://www.sajt.com/index.php?name=stranica&id=5 - rezultat je ROOT
http://www.sajt.com/izbrisi.php?name=stranica&id=5 - rezultat je ROOT

.... Bez obzira kako se zove scripta uvek ej ROOT ako je u ROOT-u



http://www.sajt.com/nesto/ - rezultat NIJE ROOT
http://www.sajt.com/nesto/index.php - rezultat NIJE ROOT
http://www.sajt.com/nesto/izbrisi.php - rezultat NIJE ROOT
http://www.sajt.com/nesto/index.php3 - rezultat NIJE ROOT
http://www.sajt.com/nesto/index.php5 - rezultat NIJE ROOT
http://www.sajt.com/nesto/index.php?name=stranica&id=5 - rezultat NIJE ROOT
http://www.sajt.com/nesto/izbrisi.php?name=stranica&id=5 - rezultat NIJE ROOT



$_SERVER['REQUEST_URI] ne igra nikakvu ulogu niti moze da utice na kod!!!



Poz
sale
[ Br@nkoR @ 20.07.2006. 11:20 ] @
Ok ja sam drugačije razumeo problem.
Ja sam postavio da prolaze i fajlovi sa nazivom default i index, ukoliko želiš da dodaš/ukloniš neki naziv međusobno ih razdvajaj sa "|", i isto ukoliko želiš da ograničiš samo na određe ekstenzije fajla iz (php|html?|asp|jsp) ukloni/dodaj onu koja ti nije/je potrebna, pri čemu takođe extenzije odvajaš pomoću "|", a "html?" se odnosi zajedno na "html" i "htm".

Ovo gore bi moglo i kao:
Code:

if(preg_match('/^\/?[^\/]*$/i', $_SERVER['SCRIPT_NAME']))
  echo 'true';
else
  echo 'false';

sve zavisi ko šta voli, šta je brže...