Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]link a href $_SESSION require
Forum PHP.pl > Forum > Przedszkole
PeterMartinez
Cześć. Jestem tu nowy. Dotychczas starałem sobie radzić samemu.. Pokrótce opiszę o co chodzi. Z rok temu zrobiłem stronę w XHTML. Umieściłem na serwerze itd. Teraz chciałbym ją trochę zautomatyzować i o co mi chodziło najbardziej, to zmniejszyć zawartość powtarzającego się kodu. Co podstrona kod taki sam lub podobny z różnicą main content. Chciałbym aby stona wczytywała np: menu składające się z jednego skryptu, tak samo nagłówek, czy inne elementy typu licznik odwiedzin czy timer, aby występowały tylko raz jako wczytany skrypt. Zmieniałby się jedynie main content strony. Otóż wszystko już ogarnąłem za pomocą funkcji require. To jednak tyczy się tylko głównej strony która jest jakby stałą strony. Teraz chciałbym aby linkami a href można było wczytywać do tej "stałej strony" main content. To by znacznie przyspieszyło działanie całości i zaoszczędziło miejsce.

W głowie miałem plan aby (tak jak było wcześniej Ahref) menu wczytywało podstrony tak i teraz chciałbym aby a href wczytywało tylko main content do "stałej strony".

Mam nadzieje że wyrażam się jasno i nie mieszam za bardzo. facepalmxd.gif

Używałem już metody takiej że:

Istnieje strona index.php która otwiera sesję i wymaga plików skryptów podstron typu require "main_content.php" i np: main_menu.php itd wczytywanych jeden po drugim.

1) W znaczniku A herf skryptu main_manu.php wpisywałem ścieżkę np: <a href="index.pl?page=pages/kontakt.php" który powinien odnosić się do zmiennej sesyjnej (a przynajmniej tak mi się zdaje) ohno-smiley.gif zmienna sesyjna $_SESSION['page'] powinna odebrać go w stronie głównej index.php przekazując wartość pages/kontakt.php do funkcji require. Strona powinna się przeładować i odczytać zmienną $_SESSION['page'] przypisać ją do funkcji a ta powinna wczytać zawartość podstrony w odpowiednim miejscu main_content.php.

Tak to pokrótce miało wyglądać. Jednak nie odnosi to oczekiwanego rezultatu. Jeżeli przypiszę wartości zmiennej $_SESSION['PAGE'] na wstępie strony strona wczytuje podstronę. Jednak klikając w link a href wyrzuca jedynie błąd, że nie może odnaleźć ścieżki do wcześniejszej ustalonej z góry lokacji.

Czy ktoś zna temat i mógłby jakoś naprowadzić.

pozdr
viking
Ale po co ustawiasz te dane w sesji? Inna sprawa że pewnie robisz coś takiego: pobierz zmienną z get i zrób jej require co jest prostą drogą do ataku.


Taki prosty kodzik wygenerowany przez AI.

  1.  
  2. <?php
  3. $page = $_GET['page'] ?? 'home';
  4.  
  5. // Czyść zmienną z potencjalnie niebezpiecznych znaków
  6. $page = preg_replace('/[^a-zA-Z0-9_-]/', '', $page);
  7.  
  8.  
  9. // Bezpieczne mapowanie - pełna kontrola nad ścieżkami
  10. $pages = [
  11. 'home' => 'pages/home.php',
  12. 'about' => 'pages/about.php',
  13. 'contact' => 'pages/contact.php',
  14. 'services' => 'pages/services.php'
  15. ];
  16.  
  17. if (isset($pages[$page])) {
  18. $file = $pages[$page];
  19. if (file_exists($file) && is_readable($file)) {
  20. include $file;
  21. } else {
  22. include 'pages/404.php';
  23. }
  24. } else {
  25. include 'pages/404.php';
  26. }
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.