Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] [HTML] Jak masowo stworzyć kilkaset podstron z różnymi nazwami i formularz kontaktowy
batmat1903
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batmat1903
post
Post #2





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:

  1. <?php
  2. //Import PHPMailer classes into the global namespace
  3. //These must be at the top of your script, not inside a function
  4. use PHPMailer\PHPMailer\PHPMailer;
  5. use PHPMailer\PHPMailer\SMTP;
  6. use PHPMailer\PHPMailer\Exception;
  7.  
  8. //Create an instance; passing `true` enables exceptions
  9. $mail = new PHPMailer(true);
  10.  
  11. try { <---- tutaj ustawienia SMTP utworzonego maila?
  12. //Server settings
  13. $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
  14. $mail->isSMTP(); //Send using SMTP
  15. $mail->Host = 'smtp.example.com'; //Set the SMTP server to send through
  16. $mail->SMTPAuth = true; //Enable SMTP authentication
  17. $mail->Username = 'user@example.com'; //SMTP username
  18. $mail->Password = 'secret'; //SMTP password
  19. $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption
  20. $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
  21. <----------- koniec ustawień
  22.  
  23. <----------- Czy w sekcji poniżej mogę normalnie wpisać wartości z formularza z "name"? jeżeli input name="name" np. $mail->from($name);
  24. //Recipients
  25. $mail->setFrom('from@example.com', 'Mailer');
  26. $mail->addAddress('joe@example.net', 'Joe User'); //Add a recipient
  27. $mail->addAddress('ellen@example.com'); //Name is optional
  28. $mail->addReplyTo('info@example.com', 'Information');
  29. $mail->addCC('cc@example.com');
  30. $mail->addBCC('bcc@example.com');
  31.  
  32. <------------ Czy w sekcji poniżej mogę normalnie wpisać wartości z formularza z "name"? jeżeli input name="file1" (będę miał 6 pól) np. $mail->attachment1($file1);
  33.  
  34. //Attachments
  35. $mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
  36. $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
  37.  
  38.  
  39. <------------ Tutaj rozumiem jak działa ta sekcja
  40.  
  41. //Content
  42. $mail->isHTML(true); //Set email format to HTML
  43. $mail->Subject = 'Here is the subject';
  44. $mail->Body = 'This is the HTML message body <b>in bold!</b>';
  45. $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
  46.  
  47. <------------ Czy zaraz po $mail->send(); zamiast echo... mogę zastosować takie coś:
  48. <------------ $messageStatus = "Wiadomość została wysłana";
  49. <------------ tak aby została nadana ta wartość, a jeżeli mogę użyć Fetch w JS to po prostu po otrzymaniu poprawnej odpowiedzi wyskoczy komunikat z wiadomością $messageStatus
  50.  
  51. $mail->send();
  52. echo 'Message has been sent';
  53.  
  54.  
  55. <------------ a czy w tej sekcji zamiast echo mogę zastosować ponownie $messageStatus = "Upsss... coś poszło nie tak"
  56.  
  57. } catch (Exception $e) {
  58. echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
  59. }
  60.  
  61.  
  62.  
  63. <------------ Co to odpowiedzi, czy to powinno wyglądać tak?;
  64. <------------ Poniżej już tylko moje wypociny
  65.  
  66. $response = new PHPMailer(true);
  67.  
  68.  
  69. <------------ Tutaj dane nadawcy
  70. $response->name('$name");
  71. itd.....
  72.  
  73. i na końcu:
  74. $response->Send();
  75. tu bez komunikatów, ponieważ będą zbędne, jedynie
  76.  
  77. catch (Exception $e) {
  78. echo "Nie działa";
  79. }
  80.  



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.
Go to the top of the page
+Quote Post

Posty w temacie
- batmat1903   [PHP] [HTML] Jak masowo stworzyć kilkaset podstron z różnymi nazwami i formularz kontaktowy   28.02.2024, 08:38:06
- - trueblue   ad.1 Źle do tego podchodzisz. Powinieneś mieć utwo...   28.02.2024, 08:51:30
- - Salvation   Problem #1. Pytanie ode mnie. Na pewno potrzebujes...   28.02.2024, 08:52:54
- - batmat1903   Dziękuję Wam za odpowiedzi! Do trueblue: Rzec...   28.02.2024, 09:04:13
- - nospor   ad1 tak sie wlasnie robi jak koledzy ci powiedziel...   28.02.2024, 09:32:14
- - batmat1903   Do nospor: Ad.1 Wspaniale!! To rozwiązani...   28.02.2024, 10:20:01
- - nospor   ad2) No tak, wszystkie komenty z kody sa ok. Nadaw...   28.02.2024, 10:30:48
- - trueblue   Podstrony będą się indeksować, ale ze względu na m...   28.02.2024, 10:40:15
- - batmat1903   Wiem, że to są podstawy PHP, ale się dopiero uczę ...   28.02.2024, 10:41:47
- - nospor   T a funkcja move_uploaded_file($_FILES['u...   28.02.2024, 10:44:56
- - batmat1903   Wiem, o tym. Cały czas się szkolę i ćwiczę w tym j...   7.03.2024, 09:28:28
- - trueblue   KodRewriteEngine On RewriteCond %{REQUEST_URI} /...   7.03.2024, 09:50:49
- - batmat1903   Jak zastosowałem Twoje rozwiązanie to cała strona ...   7.03.2024, 09:58:52
- - trueblue   A co jest w pliku post.php?   7.03.2024, 10:13:45
- - nospor   dawno w htaccess nie siedzialem ale masz kilka ble...   7.03.2024, 10:16:57
- - batmat1903   Na ten moment tylko struktura HTML i dorzucony Hea...   7.03.2024, 10:28:12
- - trueblue   Powinno być raczej: KodRewriteRule ^blog/szkola-...   7.03.2024, 10:35:46
- - batmat1903   Faktycznie, masz absolutną rację. Podałeś już wcze...   7.03.2024, 11:01:45
- - trueblue   Kropka oznacza dowolny znak, co równie dobrze możn...   7.03.2024, 12:48:20


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 15:28