[PHP] [HTML] Jak masowo stworzyć kilkaset podstron z różnymi nazwami i formularz kontaktowy |
[PHP] [HTML] Jak masowo stworzyć kilkaset podstron z różnymi nazwami i formularz kontaktowy |
28.02.2024, 08:38:06
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Witam
Szukałem w Google rozwiązania po polsku oraz angielsku. Zapewne rozwiązanie mojego problemu jest, ale nie potrafię go znaleźć. Zaznaczę jeszcze, że w PHP jestem bardzo początkujący i dopiero się uczę. 1. Sytuacja wygląda tak: Chciałbym utworzyć około 900 plików *.php o konkretnych nazwach z podstawioną zmienną z listy (listę mogę mieć w dowolnym formacie - to nie problem). Nazwa pliku będzie wyglądała tak: (to oczywiście przykład) szkola-warszawa.php ; szkola-wroclaw.php ; szkola-stalowa-wola.php ; czyli wzór wygląda tak: szkola-$zmienna.php Natomiast zawartość na każdej stronie będzie taka sama, czyli HTML z odpowiednimi zmiennymi w PHP. Te zmienne będą generowane z innego pliku i tutaj nie mam większych problemów, tak samo potrafię wyciągnąć wyciągnąć nazwę miejscowości z już utworzonego pliku, tak aby odpowiednio na każdej stronie zachodziły zmiany. Nie mam zielonego pojęcia jak ugryźć ten temat. 2. Drugim moim problemem, jest to, że chciałbym utworzyć formularz kontaktowy z możliwością wysyłania załączników (6szt). Nie do końca rozumiem PHPMailer, tak więc próbowałem stworzyć prosty formularz korzystając z metody POST i wiadomości dochodzą bez problemu na moją skrzynkę jednak nie dochodzą załączniki. Czy jest jakaś możliwość, aby nie korzystając z PHPMailer stworzyć taki formularz? Ew. czy jest ktoś w prosty sposób nakierować mnie jak to zrobić w PHPMailer, ponieważ na ten moment nie mogę zrozumieć działania PHPMailer - a też nie chcę bezwiednie kopiować rozwiązań z internetu. Formularz po wysłaniu przez użytkownika powinien przesłać na moją pocztę wiadomość z załącznikami oraz wcześniej przygotowana odpowiedź do nadawcy z podziękowaniem. Bardzo prosiłbym o pomoc w tych kwestiach, ponieważ w tym temacie ciężko mi cokolwiek znaleźć (zapewne dlatego, że źle szukam). Siedzę nad tym już kilka dni i wszystko co napiszę ląduje w koszu. |
|
|
28.02.2024, 08:51:30
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
ad.1 Źle do tego podchodzisz. Powinieneś mieć utworzoną regułę w .htaccess, która kieruje wszystkie żądania szkola-xxxx.php na jeden plik (na plik php). Tam sprawdzasz z jaką miejscowością masz do czynienia i na podstawie tej wartości generujesz zmieniony wynik w HTML. W przypadku kiedy ktoś wpisał adres z niechcianą nazwą miejscowości, to generujesz ogólny HTML lub przekierowujesz użytkownika gdzie indziej. Warto by było przetrzymywać gdzieś (tablica w php lub w bazie danych) listę obsługiwanych miejscowości.
-------------------- |
|
|
28.02.2024, 08:52:54
Post
#3
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Problem #1.
Pytanie ode mnie. Na pewno potrzebujesz mieć fizycznie utworzone 900 (prawie) identycznych plików? Problem można rozwiązać prostym routingiem i plików będzie znacznie mniej. Problem #2. Możesz skorzystać z "gotowca". Nie musisz w pełni implementować formularza po swojej stronie. Możesz skorzystać z: https://formspree.io/. A tutaj info jak wdrożyć załączniki: https://help.formspree.io/hc/en-us/articles...88-File-uploads Pozostanie jedynie ogranie "wiadomości-podziękowania". PS. Czego nie rozumiesz z dokumentacji PHPMailera? Ten post edytował Salvation 28.02.2024, 09:00:53 |
|
|
28.02.2024, 09:04:13
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Dziękuję Wam za odpowiedzi!
Do trueblue: Rzeczywiście, jest do dużo prostsze rozwiązanie niż tworzenie tylu plików, tylko pytanie jak na to zareaguje Google z indeksowaniem, podejrzewam, że nie zaliczy tych stron, a tutaj chodzi o pozycjonowanie na daną miejscowość. Z drugiej jednak strony czy nie będzie to duplikat wtedy... Treści będą zmienne, ale przy tak ogromnej liczbie i tak się sporo powtórzy. Muszę jedynie odnaleźć informacje jak to wpłynie na indeksowanie, bo jeżeli okaże się to ok, to z przyjemnością wykorzystam. Do Salvation: Jak powyżej, chodzi mi o pozycjonowanie strony pod konkretne miejscowości, więc nie do końca wiem czy potrzebuję. Na logikę wydaje mi się, że tak - spróbuję doedukować się na szybko w tym temacie. Co do PHPMailer, to chciałbym wysyłać wiadomości bez wpisywanie ustawień SMTP. Próbowałem na różne sposoby to omijać i niestety nic nie działało. Gdzieś w internecie znalazłem informację, że aby wysłać dodatkową wiadomość podziękowania należy utworzyć nową instancję, tą także wcześniej tworzyłem, ale skoro i tak wiadomości nie dochodzą, no to nie mam jak sprawdzić. Chyba, że nie ma możliwości pominięcia serwera SMTP. Jeżeli piszę niejasno, to przepraszam, jednak w tym temacie na chwilę obecną jestem jak dziecko we mgle - cały czas staram się uczyć(głównie z dokumentacji) i powoli prę do przodu, jednak niestety powoli. |
|
|
28.02.2024, 09:32:14
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
ad1 tak sie wlasnie robi jak koledzy ci powiedzieli. Zamast robic milion plikow szkola-warszawa.php, szkola-wroclaw.php itd to robisz dynamiczny rotuing, ala
/szkola-warszawa, /szkola-wroclaw itd i taki routing jest przekierowywany do jednego pliku szkola.php Google nadal widzie twoje warszawa, wroclaw itd i wszystko sie indeksuje jak ma sie indeksowac ad2 Co to znaczy bez SMTP? Czy to znaczy ze masz serwer pocztowy skonfigurowany na serwerze i nie potrzebujesz SMTP? Jesli tak to prosze, tu masz przyklad gdzie PHPMailer korzysta z konfigurowanego mail() https://github.com/PHPMailer/PHPMailer/blob...mples/mail.phps -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
28.02.2024, 10:20:01
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Do nospor:
Ad.1 Wspaniale!! To rozwiązanie jest po prostu idealne dla mnie, tak więc dzięki za potwierdzenie o indeksowaniu. Ad.2 Czyli prościej mówiąc, muszę stworzyć maila na swoim hostingu (np. kontakt@domena.pl), pobrać dane smtp do tego konta i po prostu je wrzucić w konfigurację PHPMailer. Teraz to tak rozumiem. Jeżeli tak jest to dalej nasuwają się pytania. Czy na tego maila mogę także odbierać wiadomości oraz normalnie posługiwać się nim jako głównej skrzynki? Poniżej podam przykład, czy o takie coś chodzi:
Mam nadzieję, że w jakimkolwiek stopniu będzie to zrozumiałem, ponieważ jeżeli to ma być tak skonstruowane, no to w sumie problem rozwiązany. |
|
|
28.02.2024, 10:30:48
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
ad2) No tak, wszystkie komenty z kody sa ok. Nadawca/name moze pochodzic skad chcesz. Czy to form, czy to dostawca z pizzy. To nie ma znaczenia. Co podasz to pojdzie
Tak, zalczniki tak samo i cala reszta. Ale zalaczik musisz wpiero uploadowac na serwer, ale to zakladam wiesz jak zrobic? to samo echo mozesz zastopic wpisanie do zmiennej i tp. No to sa podstawy php -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
28.02.2024, 10:40:15
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Podstrony będą się indeksować, ale ze względu na małą różnorodność treści możesz być wyrzucony z indeksu Google za Duplicate Content. Nie ma to znaczenia czy miałbyś 900 odrębnych plików czy jeden generujący różną zawartość.
-------------------- |
|
|
28.02.2024, 10:41:47
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Wiem, że to są podstawy PHP, ale się dopiero uczę tego języka. Więc moja wiedza jest na ten moment mocno ograniczona i sprowadza się do podmiany zmiennych na stronach... Tak więc jeszcze dużo przede mną.
Co do wrzucenia plików na serwer to nie mam pojęcia jak to zrobić. Znalazłem w dokumentacji: https://github.com/PHPMailer/PHPMailer/blob...ile_upload.phps Jednak próbuję rozgryźć gdzie w tym kodzie jest funkcja odpowiedzialna za wrzucenie plików. Zdaję sobie sprawę, że muszę utworzyć osobny katalog do trzymania tych plików, jednak nie mam pojęcia jak stworzyć funkcję, która będzie najpierw pobierała te pliki, zapisywała na serwerze a następnie wysyłała na wskazany email. |
|
|
28.02.2024, 10:44:56
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
T a funkcja
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) kopiuje plik z formularza do twojego katalogu do ktorego wrzucasz pliki uzytkownikow. To jest naprawde proste. Wiec moze zamiast od razu brac sie nie wiadomo za co, to poprostu przeledz wpierw przez tydzien/dwa podstawy php. Bo troche mija sie z celem tlumaczenie kazdej linijki kodu w paro linijkowym przykladzie. Mowie to bez zlosliwosci -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
7.03.2024, 09:28:28
Post
#11
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Wiem, o tym. Cały czas się szkolę i ćwiczę w tym języku. Pewnie jeszcze trochę czasu minie zanim wszystko w pełni zrozumiem...
Jednak bardzo dziękuję wszystkim za pomoc, pomysły i nakierowanie!! Jestem niesamowicie wdzięczny i już wiem na czym stoję i co mogę dalej robić. Co do PHPMail to z pewnością przerobię wszystkie przykłady, tak aby go w pełni zrozumieć. Dzięki wszystkim raz jeszcze! Hej, Jeszcze raz dziękuję za poprzednią pomoc. Nadrobiłem nieco zaległości i już formularz bez problemu działa. I nawet rozumiem już co się tam dzieje. Jednak utknąłem na dalszym etapie. Na pliku .htaccess Mam w głównym katalogu plik post.php, w którym napiszę reguły dotyczące wczytywanych treści. Chcę go oprzeć na zasadzie odczytania adresu URL (dla przykładu https://mojadomena.pl/blog/szkola-warszawa) i dla "szkola-warszawa" wyświetli się odpowiedni tekst poprzez zastosowanie warunków - to bez problemu zrobię. Jednak mam problem z napisanie reguły w .htaccess, szukam wszędzie (i znając życie odpowiedź już widziałem - jednak nie potrafię jej dostrzec) Chciałbym aby po wejściu na stronę https://mojadomena.pl/blog/szkola-warszawa została wczytana strona https://mojadomena.pl/post.php?szkola-warszawa tak aby nazwa w pasku adresu się nie zmieniła.
Napisałem coś takiego, ale jak łatwo można się domyślić to nie działa wcale. Czy mógłby mnie ktoś chociaż nakierować albo pomóc rozwiązać ten problem? |
|
|
7.03.2024, 09:50:49
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Kod RewriteEngine On
RewriteCond %{REQUEST_URI} /blog/([a-z0-9\-]+)$ [QSA,NC] RewriteRule ^(.*)$ post.php?id=%1 -------------------- |
|
|
7.03.2024, 09:58:52
Post
#13
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Jak zastosowałem Twoje rozwiązanie to cała strona padła (błąd 500) poza tymi regułami w pliku .htaccess nie mam nic
|
|
|
7.03.2024, 10:13:45
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A co jest w pliku post.php?
-------------------- |
|
|
7.03.2024, 10:16:57
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
dawno w htaccess nie siedzialem ale masz kilka bledow logicznych. niby chcesz przekierowywac szkola-warszawa, ale w warunku nie uwzglednils myslnika.
niby chcesz to przekierowac na post.php?szkola-warszawa ale w warunku przekierowujesz na post.php?id=szkola-warszawa itd itd Generalnie powinienies to przekierowywac na post.php?id=warszawa. po grzyba dodawac stala koncowke szkola do przekierowania? czyli cos takiego: RewriteRule ^blog/szkola-([0-9a-zA-z]+)/?$ post.php?id=$1[L] a potem w post.php pod $_GET['id'] powinna byc warszawa -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
7.03.2024, 10:28:12
Post
#16
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Na ten moment tylko struktura HTML i dorzucony Header i Footer (poprzez include).
Z tym, że cała strona przestała funkcjonować. nospor - to przekierowanie działa dokładnie tak jak chciałem Dzięki wielkie za kolejną pomoc! Mam jeszcze tylko pytanie Czy pod takie przekierowanie mogę na przykład dodać listę? np. warszawa poznan wroclaw itp tak, żeby cała reszta miast wywalała 404? |
|
|
7.03.2024, 10:35:46
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Powinno być raczej:
Kod RewriteRule ^blog/szkola-([0-9a-zA-Z]+)/?$ post.php?id=$1[L] lub Kod RewriteRule ^blog/szkola-([0-9a-z]+)/?$ post.php?id=$1[L,NC] Jeśli chodzi o listę niechcianych miejscowości, wspomniałem Ci o tym w poście nr #2. -------------------- |
|
|
7.03.2024, 11:01:45
Post
#18
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 28.02.2024 Ostrzeżenie: (0%) |
Faktycznie, masz absolutną rację. Podałeś już wcześniej mi tą informację. Już wiem co mam robić.
Bardzo Wam dziękuję za pomoc i poświęcony czas. Pozdrawiam serdecznie A jest możliwość aby nie było ograniczeń następnych myslników? bo na ten moment szkola-warszawa działa, a szkola-zielona-gora już nie, czy jest możliwość aby działało to z jakąkolwiek frazą po szkola- ? niezależnie od liczby myślników Już rozwiązane. Dodałem "." przed plusem Ten post edytował batmat1903 7.03.2024, 11:09:27 |
|
|
7.03.2024, 12:48:20
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 782 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Kropka oznacza dowolny znak, co równie dobrze można sprowadzić do: (.+)
A tak z myślnikiem: ([0-9a-zA-Z\-]+) -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 25.09.2024 - 09:06 |