Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem ze skryptem odpowiedzialnym za "pracę" linków
Forti
post 22.07.2014, 16:45:34
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Czesc!

Mam taki skrypt:

  1. $pages = array(
  2. 'folder1'=>'log/{folder1}.php',
  3. 'folder2'=>'inc/{folder2}.php',
  4. 'folder3'=>'fora/{folder3}.php',
  5. );
  6.  
  7. $errorPage = 'inc/error.php';
  8. $page = 'inc/news.php';
  9.  
  10. foreach($pages as $k=>$v){
  11. if(isset($_GET[$k])){
  12. $page = realpath(str_replace('{'.$k.'}',$_GET[$k],$v));
  13. if(!file_exists($page)){
  14. $page = $errorPage;
  15. }
  16. break;
  17. }
  18. }
  19. include($page);



Problem mam taki, że mam zdefiniowany plik error.php i gdy wpisze:
- www.mojastrona.pl/folder1/error
lub
- www.mojastrona/folder1/gdfgfsdfsdsd

to faktycznie pojawia się plik error, jednak gdy wpisze:
- www.mojastrona.pl/fdsfsdfsdf

to ładuje mi się domyślnie $page = 'inc/news.php';
Mogę to zmienić aby ładowało się error.php domyslnie jednak przy wejsciu na www.mojastrona.pl załaduje mi to error.php, czego nie chcemy. Macie jakiś pomysł jak to przerobić?


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
fate
post 22.07.2014, 18:15:54
Post #2





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


wklej ten kod do pliku ./index.php a nie do ./folder1/index.php pilnujac sciezek


--------------------
Go to the top of the page
+Quote Post
Forti
post 22.07.2014, 18:29:37
Post #3





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Skąd przepuszczenie niby że index.php jest w jakieś innej lokalizacji niż okreslona przez domene www.mojastrona.pl?


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
fate
post 22.07.2014, 18:37:06
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Wybacz strzelam thumbsdownsmileyanim.gif
Skrypt by działał jak chcesz przypuszczam gdybys przeniosl wszystkie podstrony z folder1 do folderu glownego ale rozumiem ze to nie jest rozwiazanie?


--------------------
Go to the top of the page
+Quote Post
Forti
post 22.07.2014, 19:12:36
Post #5





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


nie, ponieważ plików jest sporo - moje autorskie forum, panele uzytkowników, moderatorów, artykuły, newsy itp.. i troche odpada ze względu na estetykę.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
fate
post 23.07.2014, 07:13:46
Post #6





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Sprawdź tak

  1. $folder = './folder1/';
  2.  
  3. $pages = array(
  4. 'folder1'=>'log/{folder1}.php',
  5. 'folder2'=>'inc/{folder2}.php',
  6. 'folder3'=>'fora/{folder3}.php',
  7. );
  8.  
  9. $errorPage = 'inc/error.php';
  10. $page = 'inc/news.php';
  11.  
  12. foreach($pages as $k=>$v){
  13. if(isset($_GET[$k])){
  14. $page = realpath(str_replace('{'.$k.'}',$_GET[$k],$v));
  15. if(!file_exists($folder.$page)){
  16. $page = $errorPage;
  17. }
  18. break;
  19. }
  20. }
  21. include($page);


Ten post edytował fate 23.07.2014, 07:14:21


--------------------
Go to the top of the page
+Quote Post
nospor
post 23.07.2014, 07:24:35
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Najpierw wypadaloby by nam podac jak wygląda $_GET dla roznych sytuacji, np:
www.mojastrona.pl/fdsfsdfsdf
www.mojastrona.pl/folder1/gdfgfsdfsdsd
www.mojastrona.pl

Aby to zrobic wystarczy dac:
print_r($_GET);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Forti
post 23.07.2014, 17:50:24
Post #8





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


np. " www.mojastrona.pl/gege "daje:
Array ( [gege] => ) ?

"www.mojastrona.pl/gege/fefew " daje:
Array ( [gege] => fefew ) ?

a sam adres daje:
Array ( [index.php] => ) ?


Zaraz przetestuje skrypt fate.

edit:

nie stety on jest bezsensu ze względu na zmienną stałą $folder, chyba że źle kombinuje.. ;] bo faktycznie folder1 działa ok, ale jak dam folder2 to errorpage wyskakuje.

Ten post edytował Forti 23.07.2014, 18:08:45


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
nospor
post 23.07.2014, 18:29:47
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i problem z glowy. Skarzyles sie, ze dla glownej masz error.
Wystarczy wiec ze sprawdzisz czy jest index '[index.php]' w $_GET i nie wywalaj wtedy error bo to glowna. Finito


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Forti
post 23.07.2014, 19:05:45
Post #10





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


hm.. w sumie teraz wydaje się proste.. a więc: znam logikę wykonania tego, teraz praktyka ;] idę sie bawic, dziękować!

edit:

w sumie po chwili zastanowienia to i tak nie wiem jak się za to zabrać.. no nic, będę próbować.


edit.2:
ok, rozwiązałem problem:


  1. $pages = array(
  2. 'index.php'=>'inc/news.php',
  3. 'log'=>'log/{log}.php',
  4. 'klan'=>'inc/{klan}.php',
  5. 'forum'=>'fora/{forum}.php',
  6. );
  7.  
  8. $errorPage = 'inc/error.php';
  9.  
  10.  
  11. $page = 'inc/news.php';
  12.  
  13.  
  14. foreach($pages as $k=>$v){
  15. if(isset($_GET[$k])){
  16. $page = realpath(str_replace('{'.$k.'}',$_GET[$k],$v));
  17. print_r($k);
  18. if(!file_exists($page)){
  19. $page = $errorPage;
  20. }
  21. break;
  22. }
  23. else{
  24. $page = $errorPage;
  25. }
  26. }
  27.  
  28. include($page);


;] podziękować

teraz będę walczyć aby wpisać: www.mojastrona/klan/plik-który-istnieje/fdfs również wywalało błąd ;] co na razie nie robi tak.

Ten post edytował Forti 23.07.2014, 19:01:27


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
nospor
post 23.07.2014, 20:00:22
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
teraz będę walczyć aby wpisać: www.mojastrona/klan/plik-który-istnieje/fdfs również wywalało błąd ;] co na razie nie robi tak.
Po raz kolejny: zobacz co masz w $_GET


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:43