Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z GET i mod rewrite
Forum PHP.pl > Forum > Przedszkole
northwest
Witam serdecznie,
Mam taki plik .htaccess :
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. #RewriteBase /
  4. RewriteCond %{HTTP_HOST} ^http://127.0.0.1/domena
  5. RewriteRule ^(.*)$ <a href="http://127.0.0.1/domena/$1" target="_blank">http://127.0.0.1/domena/$1</a> [R=301,L]
  6.  
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. RewriteRule ([^,]*),([^,]*).html index.php?gt_id=lista_uzytkownikow&dane=$2&modrw [NC]
  10.  
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteCond %{REQUEST_FILENAME} !-d
  13. RewriteRule ([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&k4=$5&k5=$6&modrw [NC]
  14.  
  15. RewriteCond %{REQUEST_FILENAME} !-f
  16. RewriteCond %{REQUEST_FILENAME} !-d
  17. RewriteRule ([^,]*),([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&k4=$5&modrw [NC]
  18. RewriteCond %{REQUEST_FILENAME} !-f
  19. RewriteCond %{REQUEST_FILENAME} !-d
  20. RewriteRule ([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&modrw [NC]
  21. RewriteCond %{REQUEST_FILENAME} !-f
  22. RewriteCond %{REQUEST_FILENAME} !-d
  23. RewriteRule ([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&modrw [NC]
  24. RewriteCond %{REQUEST_FILENAME} !-f
  25. RewriteCond %{REQUEST_FILENAME} !-d
  26. RewriteRule ([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&modrw [NC]
  27. RewriteCond %{REQUEST_FILENAME} !-f
  28. RewriteCond %{REQUEST_FILENAME} !-d
  29. RewriteRule ([^,]*).html index.php?gt_id=$1&modrw [NC]


Linki wyglądają tak: domena/admin_edycja.html - czyli oki.

Robię formularz:
  1. <form action="lista_uzytkownikow.html" method="get">
  2. <select name="dane">
  3. <option value="1">op1</option> <option value="2">op2</option> <option value="3">op3</option> <option value="4">op4</option> </select>
  4. <input type="submit">
  5. </form>

po wysłaniu takiego formularza dostaję URL: lista_uzytkownikow.html?dane=1
zamiast: lista_uzytkownikow,1.html

PHP nie widzi zmiennej dane (próbuję wydrukować je za pomocą print_r($_GET)) :/

Wie ktoś może co zrobiłem nie tak? dlaczego w PHP nie widać tych zmiennych?


Z góry dzięki za pomoc,
Northwest
CuteOne
Podszkól się w pisaniu .htaccess smile.gif tu masz prosty kurs: http://sf.jogger.pl/2007/05/02/mod-rewrite-w-przykladach/

ps.
"RewriteRule ^(.*)$ <a href="http://127.0.0.1/domena/$1" target="_blank">http://127.0.0.1/domena/$1</a> [R=301,L]"
takie cuś w ogóle działa? - pytam bo nigdy w życiu nie widziałem aby można było podstawiać pod adresy html ...
kalmaceta
pomijając sprawdzanie .htaccess'a, Twoje reguły (te w miarę wyglądające na poprawne) zmieniają przyjazne linki na parametryczne, natomiast formularz wysłany metodą get nie przekazuje do serwera przyjaznego linku tylko parametryczny, więc żadna reguła nie pasuje tutaj. Rozwiązania:

1. [Najlepsza] Zostaw to tak jak jest.
2. [Dobra] Użyj metody post.
3. [Zła] Napisz regułę w .htaccess Redirect [301] dal formularzowego url'a na przyjazny link, i go wyłap. / dodatkowe sprawdzanie łańcucha, dodatkowe żądanie
4. [Bardzo zła] W JS onsubmit buduj na podstawie danych odpowiedni action. / bez JS nie działa
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.