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

Zaawansowany system przyjaznych adresow

0 głosów
88 wizyt
pytanie zadane 14 czerwca w PHP, Symfony, Zend przez Paproch Początkujący (420 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 przez Arkadiusz Waluk Ekspert (249,210 p.)
wybrane 14 czerwca 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 przez Paproch Początkujący (420 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 przez Arkadiusz Waluk Ekspert (249,210 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 przez Paproch Początkujący (420 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 przez Arkadiusz Waluk Ekspert (249,210 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 przez Paproch Początkujący (420 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ź 139 wizyt
0 głosów
0 odpowiedzi 41 wizyt
0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 23 lipca 2018 w PHP, Symfony, Zend przez Maikel11 Początkujący (450 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

65,640 zapytań

112,265 odpowiedzi

236,876 komentarzy

46,639 pasjonatów

Przeglądających: 204
Pasjonatów: 15 Gości: 189

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...