• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zalecany układ plików - php i twig

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
327 wizyt
pytanie zadane 16 lutego 2020 w PHP przez MAXIM7 Obywatel (1,990 p.)

Cześć wszystkim. Mam stronę składającą się z kilkunastu podstron. Na każdej podstronie są stałe elementy: nawigacja oraz stopka. Używam Twiga, a mój główny szablon wygląda tak:

<!DOCTYPE html>
<html lang="pl">
	<head>
		{% block header %} {% endblock header %}
	</head>

	<body>
		{% include "nav.html" %}
		
		{% block content %} {% endblock content %}

		{% include "footer.html" %}

		<script src="log.js"></script>
	</body>
</html>

Każda z moich podstron zawiera plik .php oraz plik .html. W plikach .html zawarte są kody stron przeznaczone do wstawienia między poszczególnymi includami w głównym szablonie. Pliki .php w większości wyglądają tak:

<?php
    require_once 'lib/Twig/Autoloader.php';
    Twig_Autoloader::register();

    $loader = new Twig_Loader_Filesystem('temp');
    $twig = new Twig_Environment($loader);

    echo $twig->render('home.html');
?>

W nawigacji mam opcje "zaloguj się" i "zarejestruj się". Po kliknięciu przycisku "zarejestruj się" otwiera się okno zawierające formularz rejestracji (odpowiada za to kod js zawarty w pliku log.js; display:none; -> display: block;). Tam znajduje się kilka inputów do podania hasła, loginu itp. oraz przycisk zatwierdzający po kliknięciu, którego wykonuje się kod w rejestracja.php (wykonuje to za pomocą atrybutu action="register.php" wewnątrz znaczników formularza).

Chciałbym, aby po wykonaniu wszystkich działań w rejestracja.php (sprawdzenie poprawności inputów, wstawienie danych do bazy danych) otwierała się ponownie podstrona, na której został kliknięty przycisk "zarejestruj się". Jedna z osób na forum podpowiedziała mi już jak to zrobić, mianowicie powinienem mieć kod .php:

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

który zapisuje url aktualnej strony w sesji. Dzięki temu mógłbym użyć funkcji:

header('Location: '.$_SESSION["origURL"]);

Problem jest w tym, że kod ten musiałbym umieścić na każdej podstronie i najwyraźniej jest u mnie problem ze strukturą plików. Powinien być jeden plik wejściowy php.

Jak mogę to osiągnąć? Czy chodzi o to, żebym stworzył, np. plik main.php, który bym podpinał do każdego pliku .php dla każdej podstrony za pomocą require_once()?

Macie może jakiś schemat, jak prawidłowo tworzyć strukturę plików w .php?

1 odpowiedź

+1 głos
odpowiedź 19 lutego 2020 przez Ehlert Ekspert (214,530 p.)
wybrane 20 lutego 2020 przez MAXIM7
 
Najlepsza
Żeby mieć jeden plik wejściowy dla aplikacji to warto mieć namespace'y ogarnięte i autoload. Zainstaluj sobie podstawową wersję Symfony i zobacz jak tam to jest rozwiązane. Najlepiej to nie twórz własnych rozwiązań tego typu tylko zacznij korzystać właśnie z Symfony, Laravela, albo Lumena.

Podobne pytania

0 głosów
1 odpowiedź 628 wizyt
pytanie zadane 18 lutego 2020 w PHP przez MAXIM7 Obywatel (1,990 p.)
0 głosów
1 odpowiedź 291 wizyt
pytanie zadane 2 stycznia 2020 w PHP przez MAXIM7 Obywatel (1,990 p.)
0 głosów
2 odpowiedzi 276 wizyt
pytanie zadane 27 lipca 2016 w PHP przez niezalogowany

93,188 zapytań

142,204 odpowiedzi

322,027 komentarzy

62,516 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2704p. - Tomasz Bielak
  5. 2678p. - Łukasz Siedlecki
  6. 2666p. - rucin93
  7. 2627p. - CC PL
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 2127p. - Michał Telesz
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...