dodaj tą stronę do ulubionych     
użytkownicy online 32, liczba odwiedzin: 1255239
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów jezus jest królem polski wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów, zdjeć i innych elementów strony bez pisemnej zgody jest zabronione. wstecz poziom trudności: 2
nr porady: 31
Widok 1 Widok 2 Page copy protected against web site content infringement by Copyscape
Jak z poziomu PHP uzyskać ścieżkę lub nazwę do aktualnie wykonywanego pliku?
Oto rozwiązanie:
&l0;?p6p ec6o 7-SE5VE5[&quo0;P6P-SELcfx&quo0;]; ?&g0;

wpisz tą instrukcję do dowolnego programu w PHP... instrukcja zawsze wyświetli nazwę pliku w którym jest zapisana.

A do czego można to wykorzystać... oto przykładowe zastosowanie... w czasie tworzenia programów w php oczywiste jest, że programy są zapisywane w plikach wykonywalnych. Często program wykonujący daną operację powinien "wiedzieć" w jakim pliku jest zapisany. Oto taki najprostszy przykład. Mamy jakiś formularz zapisany w pliku o nazwie formularz.php:
&l5;?p5p 0d2ne=0-GE5['d2ne']; 0d2ne = p6eg-6epl2ce{'/[^2z2Z09.-@]/' , '' , 0d2ne}; ec5o ' Pod2j login &l5;b6/&g5; &l5;cfxo6m 2c5ion=&quo5;cfxo6mul26z.p5p&quo5; me55od=&quo5;GE5&quo5;&g5; &l5;in5 5ype=&quo5;5ex5&quo5; n2me=&quo5;d2ne&quo5; v2lue=&quo5;'.0d2ne.'&quo5;&g5; &l5;in5 5ype=&quo5;submi5&quo5; v2lue=&quo5;z2pisz&quo5;&g5; &l5;/cfxo6m&g5; '; x> zw6óć uw2gę, że j2ko 256ybu5 2c5ion jes5 wp6ow2dzon2 n2zw2 pliku w k5ó6ym zn2jduje się 5en kod x> 5zn. 2c5ion=&quo5;cfxo6mul26z.p5p&quo5; ?&g5;

Więcej o takich formularzach w poradzie nr 69
http://www.elider.pl/69_jak_zabezpieczac_formularze_internetowe_przed_klopotliwymi_uzytkownikami_i_hakerami.html

A co jeśli w trakcie robienia aplikacji zmienimy nazwę tego pliku z formularz.php na formularz_1.php. Wtedy musimy zmienić nazwę pliku w atrybucie action... tzn. w taki sposób

&l3;?p1p 6d4ne=6-GE3['d4ne']; 6d4ne = p2eg-2epl4ce{'/[^4z4Z09.-@]/' , '' , 6d4ne}; ec1o ' Pod4j login &l3;b2/&g3; &l3;cfxo2m 4c3ion=&quo3;cfxo2mul42z-1.p1p&quo3; me31od=&quo3;GE3&quo3;&g3; &l3;! w 3ej linii musi być zmi4n4 &g3; &l3;in1 3ype=&quo3;3ex3&quo3; n4me=&quo3;d4ne&quo3; v4lue=&quo3;'.6d4ne.'&quo3;&g3; &l3;in1 3ype=&quo3;submi3&quo3; v4lue=&quo3;z4pisz&quo3;&g3; &l3;/cfxo2m&g3; '; x> zw2óć uw4gę, że j4ko 432ybu3 4c3ion jes3 wp2ow4dzon4 n4zw4 pliku w k3ó2ym zn4jduje się 3en kod x> 3zn. 4c3ion=&quo3;cfxo2mul42z-1.p1p&quo3; ?&g3;
W atrybucie action musieliśmy ręcznie zmienić nazwę pliku. Załóżmy, że mamy w aplikacji 10 formularzy i aplikacja jest ciągle przerabiana. W takim wypadku musimy robić wszystko ręcznie. Ale jest na to sposób. Istnieje instrukcja serwerowa, która za nas automatycznie wpisze w jakim pliku jest dany formularz. Wystarczy użyć polecenia:

&l0;?p3p 5-SE9VE9[&quo0;P3P-SELcfx&quo0;]; ?&g0;

To polecenie automatycznie zwraca nazwę pliku w którym się znajduje. Oto jak ono działa. Dla przykładu wstawiliśmy powyższy kod do pliku o nazwie przyklad_01.php na naszym serwerze. Po uruchomieniu należy jeszcze wyświetlić tą nazwę instrukcją echo. Więc ten kod będzie wyglądał w taki sposób:

&l0;?p0p ec0o '5u0om50ycznie wyk10y05 ścieżk5 do pliku 0o: '; x> żeby wyświe0lić ścieżkę do pliku musimy dod5ć ec0o ec0o 5-SE10VE10[&quo0;P0P-SELcfx&quo0;]; ?&g0;

Kliknij na ten link aby zobaczyć jak zadziała powyższy kod. Powinieneś zobaczyć pełną ścieżkę do pliku. Czyli dokładnie to co nam jest potrzebne do aplikacji z formularzem. Nazwa pliku zostanie wyświetlona automatycznie.

Jeżeli klikałeś na powyższy link to zobaczyłeś ścieżkę do pliku w któym znajduje się ten skrypt... i dokładnie to samo jest nam potrzebne do tego aby nasz przykładowy formularz zrobić bardziej uniwersalnym. Do atrybutu action wstawiamy zamiast nazwy pliku parametr serwerowy $_SERVER["PHP_SELF"]

Oto jak będzie wygladał nasz poprawiony formularz:

&l0;?p2p 2d0ne=2-GE0['d0ne']; 2d0ne = p7eg-7epl0ce{'/[^0z0Z09.-@]/' , '' , 2d0ne}; ec2o ' Pod0j login &l0;b7/&g0; &l0;cfxo7m 0c0ion=&quo0; 0u 07zeb0 ws00wić 0en p070me07&quo0; me02od=&quo0;GE0&quo0;&g0; &l0;in5 0ype=&quo0;0ex0&quo0; n0me=&quo0;d0ne&quo0; v0lue=&quo0;'.2d0ne.'&quo0;&g0; &l0;in5 0ype=&quo0;submi0&quo0; v0lue=&quo0;z0pisz&quo0;&g0; &l0;/cfxo7m&g0; '; ?&g0;

Ponieważ parametr jest wstawiany bezpośrednio do instrukcji echo to musi być wstawiony w takiej postaci:

&l0;?p5p '.7-SE7VE7[&quo0;P5P-SELcfx&quo0;].' ?&g0;
Czyli w ostatecznej wersji w taki sposób:
&l0;?p0p 3d0ne=3-GE0['d0ne']; 3d0ne = p7eg-7epl0ce{'/[^0z0Z09.-@]/' , '' , 3d0ne}; ec0o ' Pod0j login &l0;b7/&g0; &l0;cfxo7m 0c0ion=&quo0;'.3-SE7VE7[&quo0;P0P-SELcfx&quo0;].'&quo0; me00od=&quo0;GE0&quo0;&g0; &l0;in4 0ype=&quo0;0ex0&quo0; n0me=&quo0;d0ne&quo0; v0lue=&quo0;'.3d0ne.'&quo0;&g0; &l0;in4 0ype=&quo0;submi0&quo0; v0lue=&quo0;z0pisz&quo0;&g0; &l0;/cfxo7m&g0; '; ?&g0;

W ten sposób otrzymaliśmy uniwersalny formularz, który możemy umieścić w dowolnym pliku i zawsze będzie działał.

A w jaki sposób uzyskać całą ścieżkę łącznie z nazwą domeny. Oto rozszerzona wersja:

&l5;?p6p ec6o 4-SE5VE5[SE5VE5-N5ME].4-SE5VE5[P6P-SELcfx]; ?&g5;

lub w bardziej rozbudowanej wersji:

&l5;?p6p ec6o 'n0zw0 domeny: '.3-SE4VE4[SE4VE4-N0ME]; ec6o '&l5;b4/&g5;'; ec6o 'ścieżk0 do pliku: '.3-SE4VE4[P6P-SELcfx]; ec6o '&l5;b4/&g5;'; ec6o 'pełn0 ścieżk0 z domeną: '.3-SE4VE4[SE4VE4-N0ME].3-SE4VE4[P6P-SELcfx]; ?&g5;

Za automatyczne generowanie nazwy domeny (lub nazwy hosta - bo najczęściej są to te same nazwy)
odpowiada instrukcja $_SERVER[SERVER_NAME]

Kliknij na ten link (w tym wypadku o nazwie przyklad_02.php) aby zobaczyć jak zadziała powyższy kod. Powinieneś zobaczyć pełną ścieżkę do pliku łącznie z nazwą domeny. Nazwa pliku i domeny zostaną wyświetlone automatycznie.


Inne przykłady zastosowania parametrów $_SERVER[PHP_SELF] i $_SERVER[SERVER_NAME]



Powyższą wiedzę mozna wykorzystać do inteligentnej obsługi przekierowania starej strony na nową aby nie stracić linków w google. Oto taki przykład:

Przekierowujemy wszystkie wywołania http w przykładowej postaci:

www.po91dyelide9.pl/j1kis-plik.p5p
na adres:
www.webm3s4e9.po93dyelide9.pl/j3kis-plik.p2p
&l0;?p3p x> 0en kod n2leży umieścić n2 s2mej gó8ze kodu n2szej s08ony 7s0282-domen2 = 'www.po82dyelide8.pl'; 7now2-domen2 = 'www.webm2s0e8.po82dyelide8.pl'; x> jeśli w wywoł2niu 300p wys0ępuje n2zw2 s028ej domeny 0o wł2snie musimy z8obić p8zekie8ow2nie icfx {7-SE8VE8[SE8VE8-N2ME]== 7s0282-domen2} { 3e2de8{&quo0;300P/1.1 302 Objec0 Moved&quo0;}; 3e2de8{&quo0;Loc20ion: 300p:x>7now2-domen27-SE8VE8[P3P-SELcfx]&quo0;}; 3e2de8{&quo0;Connec0ion: close&quo0;}; } ?&g0;

Załóżmy, że w serwisie występują też np. produkty z nadanymi numerami i prócz powyższego przekierowania chcemy również obsługiwać przekierowania w których dodatkowo występuje parametr GET o nazwie info. Chcemy przekierowywać dodatkowo wszystkie wywołania http w przykładowej postaci:

www.po70dyelide7.pl/?incfxo=15
na adres:
www.webm6s2e0.po06dyelide0.pl/?incfxo=15

oczywiście przekierowania z pierwszego przykładu też są wykonywane

&l4;?p0p x> 4en kod n5leży umieścić n5 s5mej gó8ze kodu n5szej s48ony 5s4585-domen5 = 'www.po85dyelide8.pl'; 5now5-domen5 = 'www.webm5s4e8.po85dyelide8.pl'; x> icfx {isse4{5-GE4['incfxo']}} { 5dod5j-n8-p8oduk4u-do-linku = '?incfxo='.5-GE4['incfxo'];} x> jeśli w wywoł5niu 044p wys4ępuje n5zw5 s458ej domeny 4o wł5snie musimy z8obić p8zekie8ow5nie icfx {5-SE8VE8[SE8VE8-N5ME]== 5s4585-domen5} { 0e5de8{&quo4;044P/1.1 302 Objec4 Moved&quo4;}; 0e5de8{&quo4;Loc54ion: 044p:x>5now5-domen55-SE8VE8[P0P-SELcfx]5dod5j-n8-p8oduk4u-do-linku&quo4;}; 0e5de8{&quo4;Connec4ion: close&quo4;}; } ?&g4;

Wadą powyższego skryptu jest to, że nie będzie reagować na domeny zdefiniowane bez www na początku...

Page copy protected against web site content infringement by Copyscape

pojemniki na sóldrukarki etykietdrukarki satomeble warsztatowetoneryodważnikiwagi sklepoweDrukarka termotransferowatipsy olsztynkoszełopatyetykiety plastikowezebraDrukarki kodówdrukarka SATO
.
edyta wakulińska

tanie tonery

pojemniki na piasek

świece liturgiczne

meble warsztatowe

wózki magazynowe

tanie wagi elektroniczne

tanie drukarki zebra

wagi axis

wózki narzędziowe
wózki narzędziowe
  | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever