Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Czy to dobre rozwiązanie
baszar
post 10.03.2013, 19:21:37
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


Siemka, czy ten kod jest ok? Zrobiłem go sam i nie jestem pewien ;d

  1. include('top.php');
  2.  
  3. $site = $_GET['site'];
  4. if(!file_exists($site.".php")) $site = "news";
  5. if(!isset($site)) $site="news";
  6.  
  7.  
  8. @include(''.$site.'.php');
  9.  
  10. include('stopka.php');



Chodzi mi o linki np index.php?site=register itd

i jeśli nie ma pliku o nazwie podanej w site to wyświetla news.

Ok jest? Może jest jakieś lepsze rozwiązanie?

Ten post edytował baszar 10.03.2013, 19:23:10
Go to the top of the page
+Quote Post
!*!
post 10.03.2013, 19:27:16
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie.

- wywal @ z kodu.
- nie wczytuj plików bezpośrednio z GET, użyj switch + ich nazw
- jak już coś wczytujesz z GET, to poza sprawdzeniem czy plik istnieje, użyj basename, aby nie możnabyło wpisać dowolnej ścieżki i pliku
- użyj wyszukiwarki bo już nie jeden taki skrypt tu był.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
markonix
post 10.03.2013, 19:31:31
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. @include(''.$site.'.php');

Niepotrzebne cudzysłowy.
  1. include($site .'.php');


--------------------
Go to the top of the page
+Quote Post
baszar
post 10.03.2013, 19:35:13
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


A jeśli tego nie zrobie to coś grozi stronie?

Możesz mi pokazać jak to zrobić w switch bo ja dopiero się ucze i nie wiem za bardzo jak to zrobic?

Ten post edytował baszar 10.03.2013, 19:39:45
Go to the top of the page
+Quote Post
!*!
post 10.03.2013, 19:41:38
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
A jeśli tego nie zrobie to coś grozi stronie?

Poza wczytaniem każdego pliku jaki jest na serwerze? To nie.

  1. switch($_GET)
  2. {
  3. case 'stronaA':
  4. include 'a.php';
  5. break
  6. case 'stronaB':
  7. include 'b.php';
  8. break
  9. }


Ten post edytował !*! 10.03.2013, 19:42:23


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
baszar
post 10.03.2013, 19:59:01
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


Ok

Mój kod teraz wygląda tak:

  1. switch($_GET['site'])
  2. {
  3. case 'register':
  4. include 'rejestracja.php';
  5. break;
  6. case 'test':
  7. include 'test.php';
  8. break;
  9. case 'news':
  10. include 'test.php';
  11. break;
  12. }


Ale jak zrobić, że jeżeli nie ma pliku podanego w site to przerzuca na plik news?

Ten post edytował baszar 10.03.2013, 20:00:41
Go to the top of the page
+Quote Post
!*!
post 10.03.2013, 20:01:21
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A przeczytałeś manual? switch ma deklaracje default.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
baszar
post 10.03.2013, 20:15:55
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


Sorka tylko przejrzałem ;/

A teraz powiedź mi jak użyć tego basename bo nie wiem, próbowałem i nic mi nie wychodzi
Go to the top of the page
+Quote Post
!*!
post 10.03.2013, 20:18:32
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Tak jak opisali w manualu. Pokaż jak to zastosowałeś.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
baszar
post 10.03.2013, 21:13:05
Post #10





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


TAK

  1. $site = $_GET['site'];
  2. $site1 = basename($site);
  3.  
  4.  
  5. switch($site1)
  6. {
  7. case 'register':
  8. include 'rejestracja.php';
  9. break;
  10. case 'test':
  11. include 'test.php';
  12. break;
  13. case 'news':
  14. include 'news.php';
  15. break;
  16. default;
  17. case 'news':
  18. include 'news.php';
  19. break;
  20. }
Go to the top of the page
+Quote Post
fiszol
post 10.03.2013, 21:22:37
Post #11





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Nie tak.
  1. $site = $_GET['site'];
  2. switch($site1) {
  3. case 'register':
  4. $strona = basename('rejestracja.php');
  5. include $strona;
  6. break;
  7. //itd, w basename wskazujesz na plik wiec jesli strony masz w folderze strony
  8. //to bedzie basename('strony/strona.php');
  9. //defaulta tez miales zle, tak powinno byc
  10. default;
  11. include 'news.php';
  12. break;
  13. }


--------------------
\o/
Go to the top of the page
+Quote Post
baszar
post 10.03.2013, 21:24:59
Post #12





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.03.2013

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


Ok wielkie dzięki jeszcze nie mam takiego pojęcia o tym dopiero zaczynam ;d!
Go to the top of the page
+Quote Post
!*!
post 10.03.2013, 21:29:11
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


fiszol - po co mu basename do pliku który sam sobie zdeklarował? Tego się używa do odczytywania np. ścieżki z GET, gdy odbieramy coś od użytkownika.

Ten post edytował !*! 10.03.2013, 21:29:35


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
fiszol
post 10.03.2013, 21:34:44
Post #14





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Urwana nocka zbiera swoje żniwo.


--------------------
\o/
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: 12.06.2024 - 02:57