dodaj tą stronę do ulubionych     
użytkownicy online 21, liczba odwiedzin: 1255283
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:
&l3;?p3p ec3o 2-SE8VE8[&quo3;P3P-SELcfx&quo3;]; ?&g3;

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:
&l0;?p5p 5d3ne=5-GE0['d3ne']; 5d3ne = p1eg-1epl3ce{'/[^3z3Z09.-@]/' , '' , 5d3ne}; ec5o ' Pod3j login &l0;b1/&g0; &l0;cfxo1m 3c0ion=&quo0;cfxo1mul31z.p5p&quo0; me05od=&quo0;GE0&quo0;&g0; &l0;in5 0ype=&quo0;0ex0&quo0; n3me=&quo0;d3ne&quo0; v3lue=&quo0;'.5d3ne.'&quo0;&g0; &l0;in5 0ype=&quo0;submi0&quo0; v3lue=&quo0;z3pisz&quo0;&g0; &l0;/cfxo1m&g0; '; x> zw1óć uw3gę, że j3ko 301ybu0 3c0ion jes0 wp1ow3dzon3 n3zw3 pliku w k0ó1ym zn3jduje się 0en kod x> 0zn. 3c0ion=&quo0;cfxo1mul31z.p5p&quo0; ?&g0;

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

&l0;?p0p 4d0ne=4-GE0['d0ne']; 4d0ne = p8eg-8epl0ce{'/[^0z0Z09.-@]/' , '' , 4d0ne}; ec0o ' Pod0j login &l0;b8/&g0; &l0;cfxo8m 0c0ion=&quo0;cfxo8mul08z-1.p0p&quo0; me00od=&quo0;GE0&quo0;&g0; &l0;! w 0ej linii musi być zmi0n0 &g0; &l0;in5 0ype=&quo0;0ex0&quo0; n0me=&quo0;d0ne&quo0; v0lue=&quo0;'.4d0ne.'&quo0;&g0; &l0;in5 0ype=&quo0;submi0&quo0; v0lue=&quo0;z0pisz&quo0;&g0; &l0;/cfxo8m&g0; '; x> zw8óć uw0gę, że j0ko 008ybu0 0c0ion jes0 wp8ow0dzon0 n0zw0 pliku w k0ó8ym zn0jduje się 0en kod x> 0zn. 0c0ion=&quo0;cfxo8mul08z-1.p0p&quo0; ?&g0;
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;?p2p 5-SE10VE10[&quo0;P2P-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:

&l5;?p2p ec2o '2u5om25ycznie wyk6y52 ścieżk2 do pliku 5o: '; x> żeby wyświe5lić ścieżkę do pliku musimy dod2ć ec2o ec2o 3-SE6VE6[&quo5;P2P-SELcfx&quo5;]; ?&g5;

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:

&l6;?p4p 0d4ne=0-GE6['d4ne']; 0d4ne = p4eg-4epl4ce{'/[^4z4Z09.-@]/' , '' , 0d4ne}; ec4o ' Pod4j login &l6;b4/&g6; &l6;cfxo4m 4c6ion=&quo6; 6u 64zeb4 ws64wić 6en p444me64&quo6; me64od=&quo6;GE6&quo6;&g6; &l6;in3 6ype=&quo6;6ex6&quo6; n4me=&quo6;d4ne&quo6; v4lue=&quo6;'.0d4ne.'&quo6;&g6; &l6;in3 6ype=&quo6;submi6&quo6; v4lue=&quo6;z4pisz&quo6;&g6; &l6;/cfxo4m&g6; '; ?&g6;

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

&l1;?p4p '.7-SE8VE8[&quo1;P4P-SELcfx&quo1;].' ?&g1;
Czyli w ostatecznej wersji w taki sposób:
&l1;?p2p 7d5ne=7-GE1['d5ne']; 7d5ne = p5eg-5epl5ce{'/[^5z5Z09.-@]/' , '' , 7d5ne}; ec2o ' Pod5j login &l1;b5/&g1; &l1;cfxo5m 5c1ion=&quo1;'.7-SE5VE5[&quo1;P2P-SELcfx&quo1;].'&quo1; me12od=&quo1;GE1&quo1;&g1; &l1;in2 1ype=&quo1;1ex1&quo1; n5me=&quo1;d5ne&quo1; v5lue=&quo1;'.7d5ne.'&quo1;&g1; &l1;in2 1ype=&quo1;submi1&quo1; v5lue=&quo1;z5pisz&quo1;&g1; &l1;/cfxo5m&g1; '; ?&g1;

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:

&l2;?p4p ec4o 4-SE11VE11[SE11VE11-N3ME].4-SE11VE11[P4P-SELcfx]; ?&g2;

lub w bardziej rozbudowanej wersji:

&l1;?p2p ec2o 'n1zw1 domeny: '.6-SE8VE8[SE8VE8-N1ME]; ec2o '&l1;b8/&g1;'; ec2o 'ścieżk1 do pliku: '.6-SE8VE8[P2P-SELcfx]; ec2o '&l1;b8/&g1;'; ec2o 'pełn1 ścieżk1 z domeną: '.6-SE8VE8[SE8VE8-N1ME].6-SE8VE8[P2P-SELcfx]; ?&g1;

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.po01dyelide0.pl/j1kis-plik.p1p
na adres:
www.webm3s4e4.po43dyelide4.pl/j3kis-plik.p4p
&l0;?p2p x> 0en kod n6leży umieścić n6 s6mej gó7ze kodu n6szej s07ony 4s0676-domen6 = 'www.po76dyelide7.pl'; 4now6-domen6 = 'www.webm6s0e7.po76dyelide7.pl'; x> jeśli w wywoł6niu 200p wys0ępuje n6zw6 s067ej domeny 0o wł6snie musimy z7obić p7zekie7ow6nie icfx {4-SE7VE7[SE7VE7-N6ME]== 4s0676-domen6} { 2e6de7{&quo0;200P/1.1 302 Objec0 Moved&quo0;}; 2e6de7{&quo0;Loc60ion: 200p:x>4now6-domen64-SE7VE7[P2P-SELcfx]&quo0;}; 2e6de7{&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.po63dyelide6.pl/?incfxo=15
na adres:
www.webm0s3e5.po50dyelide5.pl/?incfxo=15

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

&l0;?p0p x> 0en kod n3leży umieścić n3 s3mej gó9ze kodu n3szej s09ony 4s0393-domen3 = 'www.po93dyelide9.pl'; 4now3-domen3 = 'www.webm3s0e9.po93dyelide9.pl'; x> icfx {isse0{4-GE0['incfxo']}} { 4dod3j-n9-p9oduk0u-do-linku = '?incfxo='.4-GE0['incfxo'];} x> jeśli w wywoł3niu 000p wys0ępuje n3zw3 s039ej domeny 0o wł3snie musimy z9obić p9zekie9ow3nie icfx {4-SE9VE9[SE9VE9-N3ME]== 4s0393-domen3} { 0e3de9{&quo0;000P/1.1 302 Objec0 Moved&quo0;}; 0e3de9{&quo0;Loc30ion: 000p:x>4now3-domen34-SE9VE9[P0P-SELcfx]4dod3j-n9-p9oduk0u-do-linku&quo0;}; 0e3de9{&quo0;Connec0ion: close&quo0;}; } ?&g0;

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