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

Zaawansowany system przyjaznych adresow

Object Storage Arubacloud
0 głosów
375 wizyt
pytanie zadane 14 czerwca 2019 w PHP przez Paproch Użytkownik (700 p.)
Witam,

Walczę z dosyć duzym projektem, który jest czymś nowym dla mnie i wcześniej tego nie robiłem. Mianowicie strona będzie dawała możliwość dodawania przez użytkowników swoich podstron. Dane będą zapisywane w bazie danych i następnie na podstawie tych danych będzie generowany nowy plik.

I teraz w zależności od tego jak użytkownik nazwie podstronę będzie generowana na tej podstawie nazwa pliku.

Chciałbym wiedzieć czy bez użycia frameworka idzie zrobić automatycznie przyjazne linki? Np. Użytkownik utworzył takie coś https://mojadomena.pl/tresuztkownika01.html a chciałbym np. https://mojadomena.pl/tresc-uzytkownika

W małych stronach stosowałam. httaccess na sztywno przypisując nazwy

1 odpowiedź

+1 głos
odpowiedź 14 czerwca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 14 czerwca 2019 przez Paproch
 
Najlepsza
Nie wiem co dokładnie robisz, ale konieczne jest generowanie podstron do plików HTML? Bez specjalnego celu nie widzę sensu, aby to robić. Możesz po prostu wyświetlać te podstrony dynamicznie pobierając dane z bazy za każdym razem i prostymi regexami w .htaccess zrobisz przepisywanie adresu, w PHP odczytasz jaką podstronę trzeba pokazać, podstawisz i wyświetlisz - bez istnienia faktycznego pliku o takim adresie.

Jeśli miałoby chodzić o konkretny przykład to nie za bardzo rozumiem jak chcesz to robić automatycznie. Możesz użyć regexów, ale one muszą mieć jakiś punkt zaczepienia, aby dopasować dany ciąg do zamiany. Możesz np. napisać że wyłapie wszystkie stringi rozdzielone myślnikami i połączy je w jedno, ale skąd miałby wziąć to 01? To będzie na sztywno zawsze 01? Po prostu poczytaj o wyrażeniach regularnych i pomyśl jak zrobić adresy, aby mogły one wyłapać poszczególne fragmenty, którymi chcesz operować.
komentarz 14 czerwca 2019 przez Paproch Użytkownik (700 p.)
No ok, to tylko jednego nie rozumiem. Bo załóżmy że jest ten odnośnik1 w plik_pierwszy.php, to jak to podlinkowac go do danych z bazy? Bo plan miałem taki, że do a hrefa kierującego do plik_drugi.php dokleje Get z wartoscia=odnosnik1, a w plik_drugi.php odbiorę to i po tej nazwie wyciągnę z bazy resztę pasujących rekordów i powstawiam dane w szablon. Ale chyba mam wrażenie że jest lepszy sposób którego nie znam :)
komentarz 14 czerwca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Nie, to jest dobry sposób. Przecież dokładnie to opisałem w przykładzie z postami powyżej. Można to przesyłać metodą POST, ale wtedy nie da się jako normalny link, tylko formularz, więc tu to nie ma sensu. Dobrze przesłać to metodą GET, czyli tak jak pokazujesz. Z tym że od początku temat zaczął się od przyjaznych adresów, więc wokół tego ciągle się kręcę. Jeżeli chcesz ich użyć możesz zrobić odnośniki do /odnosnik1 i /odnosnik2 i w .htaccess ustawić, aby to przekierowywał na plik_drugi.php?wartosc=odnosnik1 (czy inna odczytana wartość). W PHP normalnie to odczytasz, będzie widoczne jakby tego początkowego przepisania w ogóle nie było.

A lepszym sposobem jest zrobienie tego routingiem w aplikacji, tak jak opisałem wcześniej. Aby nie wymyślać koła na nowo wygodniej skorzystać z jakiejś biblioteki/frameworka.
komentarz 14 czerwca 2019 przez Paproch Użytkownik (700 p.)
No to chyba powoli zaczyna mi się to układać w głowie :) dziękuję Ci bardzo za podpowiedzi. Tylko jakbyś jeszcze mógł podpowiedzieć jakiej libki szukać, jeżeli masz coś sprawdzonego? Bo jeszcze chwilę wstrzymam się z frameworkiem, ale na pewno za niego się wezmę.
komentarz 14 czerwca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)

Pod sam routing nie mam, ale po szybkim szukaniu widać, że to jest nawet popularne i aktualne: https://github.com/nikic/FastRoute - nie wiem jak wygląda w praktyce, ale na początek pewnie wystarczy. Ja do tej pory zawsze routing łączyłem z całym frameworkiem, jeśli coś bardzo małego to polecam Slima, jak odrobinę większego to Symfony, które w podstawowej wersji jest też dość małe (resztę można łatwo doinstalowywać). Tyle że to wszystko (nawet ta pierwsza biblioteka) opiera się o programowaniu obiektowym, wypadałoby w miarę sensownie ogarniać podstawy PHP i obiektówkę.

1
komentarz 14 czerwca 2019 przez Paproch Użytkownik (700 p.)

Super, wielkie dzięki. To już mniej więcej wiem co z czym :) mam nadzieję że sobie poradzę i przekuje porażkę w sukces smiley wątek można uznać za zamknięty smiley

Podobne pytania

0 głosów
1 odpowiedź 223 wizyt
pytanie zadane 4 listopada 2015 w PHP przez Radekoslaw123 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 380 wizyt
pytanie zadane 22 maja 2022 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
1 odpowiedź 348 wizyt
pytanie zadane 27 stycznia 2021 w PHP przez Maciek06 Użytkownik (680 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...