Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] $_GET - Używane w index.php dla include'ów stron.
Forum PHP.pl > Forum > PHP
Hazes
Witam. Mam na stronie taki kod:

  1. <?php
  2. if(empty($_GET) || $_GET['page'] == "home") {
  3. include('strony/home.php');
  4. } else if($_GET['page'] == "rezerwacja") {
  5. include('strony/rezerwacja.php');
  6. } else if($_GET['page'] == "galeria") {
  7. include('strony/galeria.php');
  8. } else if($_GET['page'] == "kontakt") {
  9. include('strony/kontakt.php');
  10. } else if($_GET['page'] == "aktualnosci") {
  11. include('strony/aktualnosci.php');
  12. } else {
  13. echo '<div class="gallery_noalbum"><img src="/images/no.png" /><br />Strona nie istnieje! - #404<br /><a href="?">Wróć do strony głównej</a></div>';
  14. }
  15.  
  16. ?>


Jednak gdy w adresie wpiszę np. ?test (index.php?test) wyskakuje mi ostatni warunek oraz takie ostrzeżenia:





Ktoś może pokierować mnie jakiego warunku tutaj mi brakuje?

Pozdrawiam,
Hazes.
rad11
Musisz sprawdzać czy page jest ustawione czyli lektura isset a jak chcesz pobrać test to
  1. if(isset($_GET['test'])){
  2.  
  3. var_dump($_GET['test']);
  4.  
  5. }
Hazes
Cytat(rad11 @ 12.03.2016, 07:46:52 ) *
Musisz sprawdzać czy page jest ustawione czyli lektura isset a jak chcesz pobrać test to
  1. if(isset($_GET['test'])){
  2.  
  3. var_dump($_GET['test']);
  4.  
  5. }


Dzięki, zrobiłem coś takiego:

  1. <?php
  2. if(isset($_GET['page'])) {
  3.  
  4. if($_GET['page'] == "home") {
  5. include('strony/home.php');
  6. } else if($_GET['page'] == "rezerwacja") {
  7. include('strony/rezerwacja.php');
  8. } else if($_GET['page'] == "galeria") {
  9. include('strony/galeria.php');
  10. } else if($_GET['page'] == "kontakt") {
  11. include('strony/kontakt.php');
  12. } else if($_GET['page'] == "aktualnosci") {
  13. include('strony/aktualnosci.php');
  14. } else {
  15. /* JEŚLI $_GET['page'] jest źle ustawione. */
  16. echo '<div class="gallery_noalbum"><img src="/images/no.png" /><br />Strona nie istnieje! - #404<br /><a href="?">Wróć do strony głównej</a></div>';
  17. }
  18.  
  19. } else if(!isset($_GET) || empty($_GET)) {
  20. include('strony/home.php');
  21. } else {
  22. echo '<div class="gallery_noalbum"><img src="/images/no.png" /><br />Strona nie istnieje! - #404<br /><a href="?">Wróć do strony głównej</a></div>';
  23. }
  24. ?>


I działa, tylko chciałbym zapytać czy kod jest napisany poprawnie?
rad11
Lepiej tak chyba:
  1. $pages = array(
  2. 'home'
  3. );
  4. if(isset($_GET['page'])){
  5.  
  6. if(in_array($_GET['page'], $pages)){
  7. include 'strony/' . $_GET['page'] . '.php';
  8. }
  9.  
  10.  
  11.  
  12. }
  13.  

I reszta tak jak masz.
kapslokk
Cytat(rad11 @ 12.03.2016, 20:57:12 ) *
Lepiej tak chyba:
  1.  
  2. if(isset($_GET['page'])){
  3.  
  4. include 'strony/' . $_GET['page'] . '.php';
  5.  
  6. }
  7.  

I reszta tak jak masz.

O LFI słyszałeś?
rad11
Słyszał i co z tego ? Pytanie autora nie dotyczyła LFI i bezpieczeństwa. Tylko czy kod jest napisany poprawnie.
kapslokk
To z tego, że pisząc "Lepiej tak chyba" nauczysz chłopaka złych nawyków i później będzie tak robił.
rad11
Nie martw się o czyjąś przyszłość bo ten ktoś napewno sam o nią zadba jak będzie chciał.
kapslokk
To zupełnie tak, jakbyś komuś powiedział, że wklejanie danych prosto z POST'a/GET'a do zapytań jest spoko itp. itd. Rozwiązanie które podałeś, było nawet gorsze od rozwiązania podanego przez autora tematu, zwróciłem uwagę na to, że jest tam bug, umożliwiający LFI, a Ty spinasz dupę tak, jakbyś faktycznie miał racje. Każdemu zdarzają się bugi. Sztuka się po prostu do tego przyznać.
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.