Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] problem z funkcją $_GET
kamilw
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Witam. Drodzy koledzy mam taki problem:
Chcem żeby adres strony wyglądał tak: www.twojadomena.pl/?type=nazwa folderu&nazwa pliku
ale także żeby działała tylko pierwsza zmienna /?type=nazwa pliku z katalogu głównego

Narazie wykonałem samą pierwszą funkcję czyli działa tylko /?type=nazwa pliku
  1. <?php
  2.  
  3. $id = $_GET['type'];
  4.  
  5. if ($id=='')
  6.  $id = 'main';
  7.  
  8. if (!file_exists("".$id.".html")) {
  9.  echo "bład, brak takiej strony";
  10. } else {
  11.  require("".$id.".html");
  12. }
  13.  
  14. ?>

Jak ktoś by mógł pomóc w zrobieniu drugiej części kodu, to z góry dzięki.

Ten post edytował kamilw 21.03.2007, 15:47:30
Go to the top of the page
+Quote Post
Łukasz O.
post
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

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


adres: www.twojadomena.pl/?type=nazwa_folderu+nazwa_pliku
  1. <?php
  2. list($folder,$plik)=explode($_GET['type'],'+');
  3.  
  4. //otrzymujesz
  5. $folder=nazwa_folderu
  6. $plik=nazwa_pliku
  7. ?>
na szybko nie sprawdzałem, ale powinno być OK


--------------------
"Don't tell me you want a bridge - show me the canyon you want to cross" Giuseppe Delena
Go to the top of the page
+Quote Post
kamilw
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Taki o błąd wyskoczył:
Parse error: syntax error, unexpected T_VARIABLE

Zastosowanie dla przykładu takiej funkcji zobaczycie na http://rignroll.com/.
Go to the top of the page
+Quote Post
Łukasz O.
post
Post #4





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

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


Boże... postaraj się chociaż sprawdzić co jest nie tak:/

  1. <?php
  2. //www.twojadomena.pl/?type=jakis_folder;nazwa_pliku2
  3. list($folder,$plik)=explode(';',$_GET['type']);
  4. //otrzymujesz
  5. print $folder; //jakis_folder
  6. print $plik; //nazwa_pliku2
  7. ?>


Ten post edytował Łukasz O. 21.03.2007, 16:29:43


--------------------
"Don't tell me you want a bridge - show me the canyon you want to cross" Giuseppe Delena
Go to the top of the page
+Quote Post
kamilw
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


działa, jest jedno ale.
jak wejde na ?type=publ_id;publ_id=2
to wyskakuje publ_idpubl_id=2 . A chciałbym zeby wyskoczył plik z folderu publ_id o nazwie publ_id=2.html
Go to the top of the page
+Quote Post
Kamson
post
Post #6





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


  1. <?php
  2. //www.twojadomena.pl/?type=jakis_folder;nazwa_pliku2
  3. list($folder,$plik)=explode(';',$_GET['type']);
  4.  
  5. // sprawdz czy podales folder , jeśli nie to ustawia folder na 'main'
  6. if(!$plik) { 
  7. $plik = $folder;
  8. $folder = 'main';
  9. }
  10.  
  11. if (!file_exists($folder.'/'.$plik.'.html')) {
  12.  print 'bład, brak takiej strony';
  13. } else {
  14.  include($folder.'/'.$plik.'.html');
  15. }
  16.  
  17. ?>



z tym że jeśli nie podajesz nazwy folderu i jest tylko plik na końcu musi być ' ; '

Ten post edytował Kamson 21.03.2007, 18:49:00
Go to the top of the page
+Quote Post
kamilw
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Dzięki, jeszcze taka sprawa żeby zamiast ; było & . Coś źle robię bo jak zmieniam znaki to wyświetla błąd.
Go to the top of the page
+Quote Post
Kamson
post
Post #8





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


nie wiem czy tak da ... bo & jest znakiem końca zmiennej i początku następnej winksmiley.jpg

jeśli zrobisz xx.php?type=xxx&yyy&zzz

to zmiena $_GET['type'] ma wartość tylko 'xxx' zato w tablicy $_GET ?chyba pojawią sie indexy 'yyy' i 'zzz'
Go to the top of the page
+Quote Post
kamilw
post
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Dać się da jakoś. Widziałem takie zastosowanie na dodatek z kilkoma zmiennymi. Kurcze żebym wiedział jak to zrobić...
Go to the top of the page
+Quote Post
Kamson
post
Post #10





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


sprawdzałem i powinno działać winksmiley.jpg

  1. <?
  2. if($_GET) {
  3. $klucze = array_keys($_GET);
  4.  
  5. if(count($klucze) == 1) {
  6. $folder = 'main';
  7. $plik = $_GET['type'];
  8. } elseif(count($klucze) == 2) {
  9. $folder = $_GET['type'];
  10. $plik = $klucze[1];
  11. } else {
  12. exit('błędne zapytanie');
  13. }
  14.  
  15. // ładuje plik
  16. if (!file_exists($folder.'/'.$plik.'.html')) {
  17. print 'bład, brak takiej strony';
  18. } else {
  19. include($folder.'/'.$plik.'.html');
  20. }
  21. }
  22. ?>


Ten post edytował Kamson 23.03.2007, 09:06:20
Go to the top of the page
+Quote Post
kamilw
post
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Dzięki, a jak zrobić żeby działało samo ?type tz ?type=news przekierowywało na index.html w folderze news?
Go to the top of the page
+Quote Post
Kamson
post
Post #12





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


powiedziałeś ze chcesz zeby jak jest samo type to przekierowywało na katalog main ... to w koncu jak chcesz?

  1. <?
  2. if($_GET) {
  3. $klucze = array_keys($_GET);
  4.  
  5. if(count($klucze) == 1) {
  6. $folder = $_GET['type'];
  7. $plik = 'index';
  8. } elseif(count($klucze) == 2) {
  9. $folder = $_GET['type'];
  10. $plik = $klucze[1];
  11. } else {
  12. exit('błędne zapytanie');
  13. }
  14.  
  15. // ładuje plik
  16. if (!file_exists($folder.'/'.$plik.'.html')) {
  17. print 'bład, brak takiej strony';
  18. } else {
  19. include($folder.'/'.$plik.'.html');
  20. }
  21. }
  22. ?>


Ten post edytował Kamson 23.03.2007, 17:19:00
Go to the top of the page
+Quote Post
kamilw
post
Post #13





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


żeby po wpisaniu ?type=costam to wyświetlało plik costam.html nie koniecznie z folderu costam.
Go to the top of the page
+Quote Post
Kamson
post
Post #14





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


ręce mi opadają ....
najpierw chciałeś ze jak jest samo type to ładuje plik z katalogu maim
potem żeby ładować index z katalogu który podajesz w type
a teraz jeszcze co innego... jak sie zdecydujesz to daj znać

Ten post edytował Kamson 23.03.2007, 19:12:34
Go to the top of the page
+Quote Post
kamilw
post
Post #15





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Sorry, pokręciło mi się. Już sobie z tym poradziłem. Teraz mam inny problem.
/?type=publ_id&publ_id=2 Folder publ_id a nazwa pliku publ_id=2 i wyświetla że nie ma takiej strony. Chyba trzeba dodać zmienną jeszcze.
Go to the top of the page
+Quote Post
Ociu
post
Post #16





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Dane się, why not. Jest tylko jedno ale. Nazwy plików, nie mogą się powtarzać. Tak to tworzysz mapę plików, pakujesz ją do tablicy, potem tylko array_key_exists, jeśli istnieje to iclude jak nie to error i świat jest lepszy.

-- Edit
Spóźniłem się.

Ten post edytował Ociu 23.03.2007, 19:16:45
Go to the top of the page
+Quote Post
kamilw
post
Post #17





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


Hmm a możesz to wytłumaczyć na przykładzie czy coś. Bo tak to ja nic nie rozumiem
Go to the top of the page
+Quote Post
Kamson
post
Post #18





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


Cytat(kamilw @ 23.03.2007, 19:15:32 ) *
Sorry, pokręciło mi się. Już sobie z tym poradziłem. Teraz mam inny problem.
/?type=publ_id&publ_id=2 Folder publ_id a nazwa pliku publ_id=2 i wyświetla że nie ma takiej strony. Chyba trzeba dodać zmienną jeszcze.



bo skrypt szuka pliku ' publ_id.html ' tak jak wcześniej prosiłeś żeby robił.... wklej kod może coś poradzimy
Go to the top of the page
+Quote Post
kamilw
post
Post #19





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 21.03.2007

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


kod czego? Index.php to ten co mi podałeś ostatnio. Ja myślę że trzeba dodać zmienną publ_id a nazwę pliku jako 2. Tak mi się zdaje. http://rignroll.com/ Popatrz na linki różnych podstron. Ja muszę zrobić identycznie
Go to the top of the page
+Quote Post
Kamson
post
Post #20





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


  1. <?
  2. if($_GET) {
  3. $klucze = array_keys($_GET);
  4.  
  5. if(count($klucze) == 1) {
  6. $folder = $_GET['type'];
  7. $plik = 'index';
  8. } elseif(count($klucze) == 2) {
  9. $folder = $_GET['type'];
  10. if($_GET[$klucze[1]]) {
  11. $plik = $klucze[1].'='.$_GET[$klucze[1]];
  12. } else {
  13. $plik = $klucze[1];
  14. }
  15. } else {
  16. exit('błędne zapytanie');
  17. }
  18.  
  19. // ładuje plik
  20. if (!file_exists($folder.'/'.$plik.'.html')) {
  21. print 'bład, brak takiej strony';
  22. } else {
  23. include($folder.'/'.$plik.'.html');
  24. }
  25. }
  26. ?>



i teraz chwila objaśnienia :
gdy wpiszesz :
- index.php?type=news ( załaduje plik : news/index.html )
- index.php?type=publ_id&publ_id ( załaduje plik publ_id/publ_id.html )
- index.php?type=publ_id&publ_id=2 ( załaduje plik publ_id/publ_id=2.html )
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 20.08.2025 - 15:10