Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [PHP] zmienna w adresie oraz mod_rewrite
!*!
post 16.11.2008, 18:17:20
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


przykładowy adres strony:

Cytat


Jak można zrobić myk, aby w miejscu "cos" możnaby wpisać cokolwiek, ale php odczyta to jako zmienna get, a nie katalog... ? Chciałbym tym sposobem uprocić odszukiwanie danych.

A druga sprawa, jesli katalog ma chmod 0777, w nim są pliki które mają chmod 0644 to katalog można usunąć łacznie z zawartością?

Ten post edytował !*! 16.11.2008, 23:11:06


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
erix
post 16.11.2008, 18:48:53
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak można zrobić myk, aby w miejscu "cos" możnaby wpisać cokolwiek, ale php odczyta to jako zmienna get, a nie katalog... ?

mod_rewrite, było już w chorobę tego...

Cytat
A druga sprawa, jesli katalog ma chmod 0777

Wyguglaj. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
!*!
post 16.11.2008, 23:06:13
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


emm jeśli mam linki:

Kod
index.php?dom=raz
index.php?dom=dwa
index.php?dom=trzy


to w .htaccess ustawiam:

Kod
RewriteEngine On
RewriteRule ^(raz)$ /?raz=$1
RewriteRule ^(dwa)$ /?dwa=$1
RewriteRule ^(trzy)$ /?trzy=$1


?

ok, ale czasami bywa tak że mam link:

Kod
index.php?dom=raz&willa=dwa&poziomy=cztery&basen=tak


ale może zdarzyć się tak że kilku zmiennych w adresie nie będzie, jak wtedy zapisać to poprawnie?

Ten post edytował !*! 16.11.2008, 23:06:35


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
hiszpanespaniol
post 16.11.2008, 23:16:57
Post #4





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


chyba namieszałeś z mod rewrite.

linki powiny być w tej postaci, jak pisałes na początku, czyli

  1. /willa
  2.  
  3. czyli w html robisz:
  4.  
  5. <a href="/willa">willa</a>


i z tak zbudowanym htaccess jak podałeś odwołasz się do index.php z takim GET'em: raz=raz albo dwa=dwa

zamiast "raz" w nawiasie daj "willa" czy cokolwiek

Ten post edytował hiszpanespaniol 16.11.2008, 23:18:03


--------------------
Go to the top of the page
+Quote Post
!*!
post 16.11.2008, 23:21:24
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Racja mój błąd, wyżej powinno być:

Kod
RewriteEngine On
RewriteRule ^(raz)$ /?dom=$1
RewriteRule ^(dwa)$ /?dom=$1
RewriteRule ^(trzy)$ /?dom=$1


wtedy adres wyglada np. tak:

Kod
http://adres.com/trzy


i odczytuje:

Kod
http://adres.com/index.php?dom=trzy

Jednak co zrobić w przypadku większej ilości GETów? które nie zawsze pojawiają się w adresie? A i czy muszę zamienić te linki w kodzie strony? Nie można tego jakoś zamienić automatycznie w php?

Ten post edytował !*! 16.11.2008, 23:23:27


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
hiszpanespaniol
post 16.11.2008, 23:54:55
Post #6





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


z wyrażeń regularnych nie jestem dobry, niech się wypowie ktoś kto sie zn na nich. ale jest mozliwość taka jak chcesz. znak zapytania "mówi" ze coś co jest przed nim nie musi wystapić.

co do większej ilości GETów, ustal sobie ich porządek że np zawsze pierwszy GET to ogólne info o domu, drugi, to zdjęcia, trzeci cena. w PHP if(isset($_GET['cena'])) i tyle. jednak kolejność musi być zachowana. ewentualnie możesz zrobić taki myk który omija ten problem, że zeby wyświetlić cenę musisz 3 GETy podać, mianowicie tworzysz takie linki: /cena/domnr3 i wtedy pierwszy GET odpowiada za akcję, drugi za dom którego ona dotyczy.

linki musisz przerobić ręcznie


--------------------
Go to the top of the page
+Quote Post
!*!
post 17.11.2008, 00:31:14
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


ehh

powiedzmy ze link wyglada tak:

Kod
http://localhost/index.php?d3q7832h87=home


d3q7832h87 - to ciąg liczb generowanych losowo

chciałbym to zamienić na

Kod
http://localhost/bleble,d3q7832h87,home


Jendak nie wiem jak

Kod
RewriteRule ^(bleble)$ /index.php?


i jak dopisć do tego zmienną ? %{$zmienna_generujaca_losowy_ciag_znakow}

Ten post edytował !*! 17.11.2008, 00:31:47


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
hiszpanespaniol
post 17.11.2008, 00:38:01
Post #8





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


znowu mieszasz w mod rewrite.
mod_rewrite działa na chłopski/mój rozum mniej-więcej tak:
jeśli w urlu znajdę to co jest w pierwszej części rewriterule i istnieje plik który jest w drugiej części, to przepisuję link.
A Ty piszeszcoś czego nie może odczytać.
najlepiej przeczytaj kurs mod_rewrite bo tu Ci nikt nie będzie tłumaczył skoro są kursy od tego napisane fachowo i okomentowane od stóp do głów.

na dodatek podałeś przykład linka w którym nazwa (nie wartość) zmiennej GET jest generowana losowo, to już poezja jest całkowita.

edit:
nawet jeśli losową nazwę zmiennej GET przechowasz w sesji zeby później w nią trafić zczytując GET, to i tak sesja php nie działa w .htaccess więc nici z tego

Ten post edytował hiszpanespaniol 17.11.2008, 00:46:30


--------------------
Go to the top of the page
+Quote Post
!*!
post 17.11.2008, 01:09:26
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


tak, zmienna jest w sesji... heh czyli, jeśli w adresie mam taką zmienną do mod_rewrite staje się bezużyteczny?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
hiszpanespaniol
post 17.11.2008, 01:24:24
Post #10





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


według mnie główną zaletą rewrite jest to, że można ukryć nazwy zmienych i to, że adresy są przyjazne. z takim podejściem do mod_rewrite jakie pokazałeś, rzeczywiście jest on bezużyteczny. nie ma tu uszczypliwości w mojej wypowiedzi, po prostu zaszła pomyłka w rozumieniu mod_rewrite winksmiley.jpg

edit:
a ja siedziałem i myslałem jak pomóc

Ten post edytował hiszpanespaniol 17.11.2008, 01:24:59


--------------------
Go to the top of the page
+Quote Post
!*!
post 17.11.2008, 01:32:33
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Doceniam smile.gif

Nie zależy mi na przyjaznych urlach, ale nie chce mieć też 50 zmiennych z wartościami winksmiley.jpg generacja nazwy geta losowego jest formą zabezpieczenia przed zabawą z linkiem.

Zastanawiam się teraz jak te linki pozamieniać na jakieś sensowene z poziomu php....

Ten post edytował !*! 17.11.2008, 01:33:10


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
hiszpanespaniol
post 17.11.2008, 02:18:10
Post #12





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


pamiętaj też o tym, że wyszukiwarki tego nie zindeksują. bot mając "wyłączone" ciasteczka nie przekaże numeru sesji do serwera i dzięki temu nigdy nie trafi ze zmienną GET. ta strona momentalnie zniknie z google bo każde jej wywołanie będzie pierwszym wywołaniem tworzącym sesje, ale bez jej zapisania w ciasteczku. teraz żegnam bo na ósmą do pracy :/


--------------------
Go to the top of the page
+Quote Post
!*!
post 17.11.2008, 09:12:22
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


właśnie na indeksowaniu przez bota tej strony mi nie zależy, przeciwnie winksmiley.jpg główna strona tam gdzie jest index może być zaindeksowana bez problemu, a strona z GETem zmiennym należy do innego pliku, więc indeksowanie jej nie obejmie.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
tiraeth
post 17.11.2008, 09:14:38
Post #14





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Potrafisz korzystać z wyszukiwarki?

http://www.googlesyndicatedsearch.com/u/fo...ch=forum.php.pl

Zamykam.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 20:14