Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP - $_GET[] i htaccess
patrix007
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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.
Go to the top of the page
+Quote Post
shycat
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


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

Ten post edytował shycat 4.03.2011, 00:20:45


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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).
Go to the top of the page
+Quote Post
shycat
post
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


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

Ten post edytował shycat 4.03.2011, 18:38:10


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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

Ten post edytował patrix007 4.03.2011, 18:42:16
Go to the top of the page
+Quote Post
shycat
post
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


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


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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).

Ten post edytował patrix007 4.03.2011, 18:51:03
Go to the top of the page
+Quote Post
shycat
post
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


hm, dziwne... powinno dzialac... pochwal sie zawartoscia swojego pliku .htaccess wink.gif moze tam jest jakis blad


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #9





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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).

Ten post edytował patrix007 4.03.2011, 19:00:43
Go to the top of the page
+Quote Post
shycat
post
Post #10





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


moze sprawdz tak:
Kod
^/([a-zA-z0-9]*)/?$ index.php?r=$1 [L]


Ten post edytował shycat 4.03.2011, 19:04:45


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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


Ten post edytował patrix007 4.03.2011, 19:11:29
Go to the top of the page
+Quote Post
shycat
post
Post #12





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


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 )

Ten post edytował shycat 4.03.2011, 19:19:21


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #13





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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


Skutkuje błędem "500 Internal Server Error".


Ten post edytował patrix007 4.03.2011, 19:19:54
Go to the top of the page
+Quote Post
Fifi209
post
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Odsyłam do lektury w której zostało to opisane:
http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
shycat
post
Post #15





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


Zapomnialem o kropce wink.gif

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


--------------------
Pomogłem? Kilknij "Pomógł"
Go to the top of the page
+Quote Post
patrix007
post
Post #16





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


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ę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:17