Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP - $_GET[] i htaccess
Forum PHP.pl > Forum > PHP
patrix007
Witam,
znalazłem TEN temat szukając nurtującego mnie problemu, nie mam chwilowo jak sprawdzić
dlatego zapytam tutaj czy da się tak zrobić i czy ten temat jest rozwiązaniem mojego problemu.


Odpalam adres, przykładowo:
  1. http://192.168.0.8/folder/plik.php?r=abcd1234

W skrypcie mam naturalnie:
  1. $zmienna = $_GET['r'];

Wtedy zmienna ta przyjmuje wartość jaką zadałem.

Chciałem ten efekt uzyskać linkiem:
  1. http://192.168.0.8/folder/abcd1234


Jest to możliwe ?
Dzięki za pomoc.
shycat
Najlepiej użyć mod_rewrite (http://www.php.rk.edu.pl/w/p/modrewrite-krotkie-urle/)

odnosnie Twojego przykladu, plik .htaccess może miec nastepujaca zawartosc:


  1. Options FollowSymLinks
  2. RewriteEngine On
  3.  
  4. RewriteRule ^folder/([a-zA-z0-9]*)/?$ folder/plik.php?r=$1 [L]
  5.  
  6. //lub RewriteRule ^folder/([a-zA-z0-9]*)$ folder/plik.php?r=$1 [L]
  7. // zaleznie od tego czy link z "/" na koncu ma dzialac czy tez nie


... to co zostanie podane w linku po strona.pl/folder/ zostanie przeslane do zmiennej 'r'. W powyzszym przykladzie link zadziala tylko wtedy, gdy w linku po /folder/, nie beda podane inne znaki od malych/duzych liter z zestawu a-z oraz cyfr od 0 do 9. Pozdro wink.gif
patrix007
Super! Działa oneeyedsmiley02.png
Dołuje mnie tylko to, że narazie nie wszystko z tego co napisałeś rozumiem (wszystko przez to, że nie potrafię pisać reg expów).
shycat
Nic nie stoi na przeszkodze zeby sie nauczyc wink.gif (LINK)... wyrazenia regularne sa (nie wiedziec czemu) zmora wielu programistow... najlepiej uczyc sie na prostych przykladach, modyfikujac swoja zmienna i parametry funkcji, nastepnie sprawdzajac co ona zwraca (np preg_match) smile.gif
patrix007
Wyniknął problem, wszystko działa ale gdy wywołam linka ze slashem na końcu (tak jak do tego regułkę dodałeś) to na stronie nie wyświetlają mi się obrazki/arkusz css itd. Link bez shasha na końcu działa smile.gif
shycat
No, tez kiedys mialem ten problem wink.gif ... musisz do linkow prowadzacych do obrazkow dodac "/" na poczatku... do css'a tez musisz dodac "/", ale do samego pliku css, w srodku tego pliku nic nie musisz zmieniac wink.gif
patrix007
W dokumencie dałem:
  1. <link rel="stylesheet" type="text/css" href="/style.css" media="all">

Jednak teraz to nie działa na żaden sposób (w linku ze slashem na końcu jak i bez).
shycat
hm, dziwne... powinno dzialac... pochwal sie zawartoscia swojego pliku .htaccess wink.gif moze tam jest jakis blad
patrix007
Tak to wygląda:



Pliki/katalog:




Prawami dostępu do plików się nie sugeruj, to jest tylko roboczy VPC i mam zmapowany zasób pod Win (samba).
shycat
moze sprawdz tak:
Kod
^/([a-zA-z0-9]*)/?$ index.php?r=$1 [L]
patrix007
Niestety z tym slashem po ^ błąd:

Cytat
Not Found

The requested URL /htdocs/1299120003/ was not found on this server.


Tak się zastanawiam czy on nie głupieje i nie szuka tego w stylu:
Cytat
htdocs/1299120003/style.css

zamiast:
Cytat
htdocs/style.css
shycat
Problem jak sadze jest w tej regule... sprawdz dla testu czy css (/styl.css) bedzie dzialal z taka regula

Kod
^(*)/?$ index.php?r=$1 [L]


sprawdz tez jakie dane zawiera zmianna "r" (o ile nie ma bledu wink.gif )
patrix007
Kod:
Kod
RewriteRule ^(*)/?$ index.php?r=$1 [L]


Skutkuje błędem "500 Internal Server Error".
Fifi209
Odsyłam do lektury w której zostało to opisane:
http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html
shycat
Zapomnialem o kropce wink.gif

Kod
RewriteRule ^(.*)/?$ index.php?r=$1 [L]
patrix007
Cytat(shycat @ 4.03.2011, 19:21:40 ) *
Zapomnialem o kropce wink.gif

Kod
RewriteRule ^(.*)/?$ index.php?r=$1 [L]


Poprawiłem, niestety po wywołaniu:
Kod
http://192.168.0.13/htdocs/1299120003/

lub
Kod
http://192.168.0.13/htdocs/1299120003


Zmienna r wygląda teraz tak:
  1. $r == "index.php"



@fifi209
Tak, jeśli nie rozwiążemy tego inaczej zastosuję trick ścieżki bezwzględnej ponieważ mam w zmiennej $url wymaganą ścieżkę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.