Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> linki na stronie, czy naprawdę muszę wstawiać tyle case...
tujek
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2004

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


Witam!
Jest sobie strona www oparta ładnie na divach, wszystko śmiga i buczy, ale interesuje mnie pewne ułatwienie sprawy. Bo teraz to wygląda tak:

  1. <? 
  2.  switch($_GET['show']){
  3.  
  4.  case news:
  5.  include 'tresc/news.txt';
  6.  break;
  7.  
  8.  case organizacja:
  9.  include 'tresc/organizacja.txt';
  10.  break;
  11.  
  12.  case pracownie:
  13.  include 'tresc/pracownie.txt';
  14.  break;
  15.  
  16. ....
  17.  
  18.  case informacja:
  19.  include 'tresc/informacja.txt';
  20.  break; 
  21.  
  22.  default:
  23.  include 'tresc/news.txt';
  24.  break;
  25.  
  26.  }
  27.  ?>


same linki natomiast wyglądają tak:

  1. <?php
  2. <li><a href="index.php?show=news">Aktualności</a></li>
  3. ?>


Przy małej ilości linków nie ma sprawy, ale jak dojedzie do kilku setek?. Robi się pełno tego typu fragmentów kodu
  1. <?php
  2. case informacja:
  3.  include 'tresc/informacja.txt';
  4.  break;
  5. ?>


Czy jest jakiś sposób obejścia sprawy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Tak, konstruuj nazwę działu w sposób dynamiczny na podstawie $_GET['show'].
np.
  1. <?php
  2. $action='sciezka/do/'.$_GET['show'].'.php';
  3. include($action);
  4. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post
tujek
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2004

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


Chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Dzięki wielkie! Stawiam Pomógł (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A taki epytanie jeszcze przysżłościowe. W przypadku wielu działów, czy wystarczy dać coś takiego:
  1. <?php
  2. $action='tresc/'.$_GET['show'].'.txt';
  3. $action1='tresc1/'.$_GET['show'].'.txt';
  4. include($action);
  5. include($action1)
  6. ?>


czy to zły tok myślenia?

I jak ustawić dokument domyślny? Do tej pory odpowiadał za to taki kod:
  1. <?php
  2. default:
  3.  include 'tresc/news.txt';
  4.  break;
  5. ?>


teraz niestety wywala błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował tujek 11.03.2008, 09:36:09
Go to the top of the page
+Quote Post
woj_tas
post
Post #4





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Cytat(tujek @ 11.03.2008, 09:20:53 ) *
I jak ustawić dokument domyślny? Do tej pory odpowiadał za to taki kod:
  1. <?php
  2. default:
  3.  include 'tresc/news.txt';
  4.  break;
  5. ?>


teraz niestety wywala błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


  1. <?php
  2. $show = isset($_GET['show']) ? addslashes($_GET['show']) : 'news';
  3. $action='tresc/'.$show.'.txt';
  4. include($action);
  5. ?>
Go to the top of the page
+Quote Post
tujek
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2004

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


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Nawet zabezpieczone przed atakiem z tego co mi google podpowiedziało o addslashes (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Ktoś ma pomysł na więcej katalogów jeszcze? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
bartg
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Wybierasz katalog:
  1. <?php
  2. $show = isset($_GET['show']) ? addslashes($_GET['show']) : 'news';
  3. $folder = isset($_GET['f']) ? addslashes($_GET['f']) : 'tresc';
  4. $action= $folder.'/'.$show.'.txt';
  5. include($action);
  6. ?>


Kilka plików:
  1. <?php
  2. $show = isset($_GET['show']) ? addslashes($_GET['show']) : 'news';
  3. $folder = isset($_GET['f']) ? addslashes($_GET['f']) : 'tresc';
  4. $action= $folder.'/'.$show.'.txt';
  5. include($action);
  6. $show = isset($_GET['show1']) ? addslashes($_GET['show1']) : 'news';
  7. $folder = isset($_GET['f1']) ? addslashes($_GET['f1']) : 'tresc';
  8. $action= $folder.'/'.$show.'.txt';
  9. include($action);
  10. ?>

Nie wiem o co ci dokładnie chodzi. Mógłbyś wyjaśnic co znaczy kilka katalogów?

Ten post edytował bartg 11.03.2008, 17:44:50
Go to the top of the page
+Quote Post
tujek
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2004

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


Cytat(bartg @ 11.03.2008, 16:41:57 ) *
Nie wiem o co ci dokładnie chodzi. Mógłbyś wyjaśnic co znaczy kilka katalogów?



Dla porzykładu:

katalog głowny
|
|_katalog1
|
|_katalog2
| |
| |_katalog2a
| |
| |_katalog2b
|
|_pliczek.txt


Coś takiego (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Chodzi o to, by skanowane były wszystkie katalogi, znalezione wszystkie txt.

Ten post edytował tujek 11.03.2008, 20:55:12
Go to the top of the page
+Quote Post
carbolymer
post
Post #8





Grupa: Zarejestrowani
Postów: 102
Pomógł: 12
Dołączył: 27.01.2007
Skąd: north              Poziom: 158                     Tytuł: Miszcz

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


  1. <?php
  2. //lista ścieżek do możliwych plików
  3. $aPaths = array('.', 'katalog1', 'katalog2', 'katalog2/katalog2a','katalog2/katalog2b');
  4.  
  5. $sShow = isset($_GET['show']) ? addslashes($_GET['show']) : 'news';
  6. foreach($aPaths as $sPath)
  7. {
  8. if(file_exists('./'.$sPath.'/'.$sShow.'.txt'))
  9. {
  10. //tutaj trzeba lekkiej modyfikacji co do layoutu
  11. include('./'.$sPath.'/'.$sShow.'.txt');
  12. }
  13. }
  14. ?>
Go to the top of the page
+Quote Post
tujek
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2004

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


Działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Klikam pomógł (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


"- //tutaj trzeba lekkiej modyfikacji co do layoutu" nic się nie zmieniło, coś tu się przestawia?
Go to the top of the page
+Quote Post
carbolymer
post
Post #10





Grupa: Zarejestrowani
Postów: 102
Pomógł: 12
Dołączył: 27.01.2007
Skąd: north              Poziom: 158                     Tytuł: Miszcz

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


Tylko kosmetyka, jeżeli taki sposób wyświetlania ci nie odpowiada to w tym miejscu możesz jakieś modyfikacje wprowadzić. Jeżeli działa to nie musisz ruszać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 14:40