Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Adres strony
Forum PHP.pl > Forum > Przedszkole
daros17
Mam o to taki kod:

  1. $adm = $_GET['adm'];
  2.  
  3. if ($adm=="") {
  4. include ("glowna.php");
  5. }
  6.  
  7. else {
  8.  
  9. if (is_file("$adm.php")) {
  10. include ("$adm.php");
  11. }
  12. }
  13.  


W tej chwili jeśli przechodzę do logowania, rejestracji czy do logowania mam adres taki: test.pl/index.php?adm=logowanie natomiast chciałbym np aby wyglądało to tak: test.pl/logowanie/ lub test.pl/admin,logowanie

jak to wykonać?
outsider
moduł mod_rewrite, który jest dostępny prawie na każdym hostingu - http://www.php.rk.edu.pl/w/p/modrewrite-krotkie-urle/
lub jeśli moduł ten jest niedostępny improwizować, zrobić linki typu index.php?admin,logowanie - ważny jest tutaj znak zapytania '?' po rozszerzeniu pliku.
daros17
Wówczas ten if ma zostać jeśli jest mod_rewrite?

utworzyłem plik .htaccess o takiej zawartości

Options FollowSymLinks
RewriteEngine On
RewriteRule ^admin([^-]+)logowanie([^-]+).php$ index.php?admin=logowanie [L]

w pliku html zmieniłem aby przenosiło do adresu adminlogowanie.php co robię źle?
sazian
plik php pozostawiasz bez zmian
daros17
No ok więc on zostaje

plik html wygląda tak:
  1. <a href="index.php?admin=logowanie">Zaloguj sie</a> |


fragment pliku index.php
  1. $admin = $_GET['admin'];
  2.  
  3. if ($admin=="") {
  4. include ("glowna.php");
  5. }
  6.  
  7. else {
  8.  
  9. if (is_file("$admin.php")) {
  10. include ("$admin.php");
  11. }
  12. }
  13.  


no i .htaccess

Kod
Options FollowSymLinks
RewriteEngine On
RewriteRule ^admin([^-]+)logowanie([^-]+).php$ index.php?admin=logowanie [L]


co jest w tym źle? bo adres się nie zmienia
ciekawskiii
linki tez musisz zmienic na takie, jakie zmianiasz w .htaccess
daros17
Zmieniłem na adminlogowanie.php i po wejściu na stronę wyświetla mi się not found...
outsider
Kod
^admin([^-]+)logowanie([^-]+).php$

adminlogowanie.php - nie pasuje do tego wyrażenia
admin/logowanie.php - nie
admin/logowanie/.php - tak

ten kawałek ([^-]+) mówi o przynajmniej jednym znaku, nie będącym '-', który musi wystąpić. Przyjrzyj się dokładnie temu wyrażeniu, i zrób go bardziej elastycznym, nie tylko dla admin/logowanie ale też np. dla news/12 lub news/edit/12 powiedzmy smile.gif

No i pamiętaj, jak już zmienisz wyrażenie, że nie wchodzisz już na stronę przez test.pl/index.php?adm=logowanie tylko test.pl/adm/logowanie
ciekawskiii
Cytat(daros17 @ 8.11.2010, 21:00:11 ) *
Zmieniłem na adminlogowanie.php i po wejściu na stronę wyświetla mi się not found...

  1. RewriteRule ^admin(.*).php$ index.php?admin=$1 [NC]
- tak chyba powinno byc adminlogowanie.php
daros17
Dzięki o to mi chodziło, jeszcze jedno pytanie


plik index.php wygląda w tej chwili tak:
  1. <?php
  2. $admin = $_GET['admin'];
  3.  
  4. if ($admin=="") {
  5.  
  6. }
  7.  
  8. else {
  9.  
  10. if (is_file("$admin.php")) {
  11. include ("$admin.php");
  12. }
  13. }
  14.  
  15. ?>
  16. <a href="plik/index.php?admin=zamowienia">Zamowienia</a>';
  17. <a href="plik/pracownicy.php">Pracownicy</a> <br>
  18.  
  19. <a href="plik/szukaj.php">Szukaj</a> <br>
  20. <a href="plik/rozliczenia.php">Rozliczenia</a>
  21.  


Chce aby skrypt dodawal na razie do adresu index.php?admin=zamowienia tyle ze ten plik znajduje sie w folderze plik, tak jak zrobilem niestety nie działa, jak to poprawić. Wówczas jak będę tworzył plik .htaccess również podaje nazwę foldeu a następnie np index.php?... itp ?

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.