Aktywne Wpisy
Mirki co to za powalona akcja xD byłem ostatnio w knajpie coś zjeść. Idąc do lokalu z tego lokalu wychodziła dziewczyna która była bardzo w moim typie. Zamówiłem jedzenie, zanim dostałem to wróciła. Usiadła i czekała na swoje. Dostałem swoje jedzenie i za chwilę wywołali jej zamówienie bo brała na wynos. Plot twist numer jeden zamówiła to samo co ja, menu obszerne bo to chinol. Spojrzała w moją stronę jak odbierała swoje.
śpicie już?
W tamtym wpisie jedna z osób powiedziała mi, że obecnie powinno się to robić tak, że PHP jest tylko i wyłącznie na backendzie jako API, czyli mamy totalną separację frontu od beckendu, więc PHP musi w jakiś sposób wysyłać te dane do frontu i następnie front musi je jakoś odpowiednio przerobić.
Trochę się rozeznałem w temacie i z tego co zrozumiałem, to można to zrobić tak, że np PHP pobiera dane z bazy danych, następnie za pomocą funkcji jsonencode() dane te są "przerabiane" z postaci tablicowej na obiekt JSON (to się chyba nazywa fachowo parsowaniem) i to jest wysyłane jako odpowiedź do frontu. Następnie po stronie frontu można te dane odebrać za pomocą Fetch API i odpowiednio wyświetlić w przeglądarce.
Znalazłem na YT krótki film pokazujący jak to powinno w uproszczeniu mniej więcej wyglądać i chciałbym się teraz zapytać:
1. Czy taki sposób na przesyłanie danych z PHP do HTML jest dobry? Tak jak napisałem, film jest bardzo krótki i wydaje mi się, że pokazuje to w dużym uproszczeniu, jednak bardziej mi chodzi tutaj o to, czy jest to dobry kierunek, żeby przesyłać dane z PHP do frontu?
2. Skoro PHP wysyła te dane w postaci JSON, a z tego co się zorientowałem jest to uniwersalny format danych, to czy te dane można byłoby odebrać za pomocą np aplikacji mobilnej napisanej w Android Studio? Czyli wychodzi na to, że cały backend mamy napisany w PHP, który wysyła dane w jednym, uniwersalnym formacie, i możemy je odbierać w aplikacjach różnego typu, czy to byłaby aplikacja webowa, desktopowa czy mobilna?
3. W tym filmiku zostało pokazane jedynie wyświetlanie danych. Jednak gdybym chciał przesłać dane z frontu do PHP, to mam rozumieć, że za pomocą Fetch API można też te dane wysyłać? I w takiej sytuacji też muszę pobrać te dane z fomularza HTML, następnie sparsować te dane do postaci JSON i wysłać do serwera i dopiero po stronie PHP sparsować je na inny format, prawdopodobnie za pomocą funkcji json_decode() i potem dodać je do bazy danych?
#php #javascript #webdev #naukaprogramowania #api
3. z grubsza tak, poczytaj sobie o metodach http jak GET POST PATCH itd
2. Tak
3. Generalnie tak, nagłówkiem Content Type możesz sterować tym jakim formatem wysyłasz dane. Nie musi być to JSON. Jeśli na backendzie będziesz używał jakiegoś frameworka (np. Symfony) to wówczas wszystko wyciągniesz z obiektu Requesta.
$_POST
do przechwytywania danych przesłanych z formularza:php
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
$data = json_decode(file_get_contents("php://input"));
if (!empty($data->name) && !empty($data->email)) {
// tutaj można przeprowadzić logikę przetwarzania danych, np. walidację,
Jednak jeszcze tylko dopytam, czy ja jako początkujący, gdybym chciał napisać jakąś prostą aplikacje z wykorzystaniem czystego HTML, CSS, JS i PHP (pomijając to, czy opłaca się wszystko dzisiaj pisać bez żadnych frameworków), to czy taki sposób komunikacji między frontem a backiem, jaki opisałem w swoim wpisie, jest w miarę ok, przynajmniej na początek?
Po prostu jak nauczę się PHP to chciałbym sobie porobić
@maciorqa: Dla własnych potrzeb i nauki, oczywiście, że tak.
W miarę rozwoju zapewne pojawią się nowe problemy. Na przykład dane przesyłane w JSON należy "walidować", zabezpieczyć się na ataki SQL Injection i wiele innych typów. Na przykład ktoś w formularzu tekstowym może Ci wpisać ";-- DELETE FROM users;" i jeżeli będziesz miał kod PHP podatny na taki atak, to mogą wyczyścić Twoją bazę danych.
Powiedzmy że mi póki co chodzi tylko o dobrą praktykę, jak połączyć html z phpem i tylko tyle na ten moment chciałem się dowiedzieć. Zdaję sobie też problem o kwestii bezpieczeństwa, ale o tym chciałem poczytać kiedy indziej.
@maciorqa: Tak