Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wordpress, jak to rozwiązać ?
Forum PHP.pl > Forum > Przedszkole
Ravik
Witam,

Mam pewien problem, za nic w świecie nie mogę wymyślić jak mam to rozwiązać. Otóż mam formularz kontaktowy w PHP, którego kod przechowuję w pliku kontakt.php, za przesłanie danych do formularza odpowiada prosty formularz (który jest w oddzielnym pliku).

Chcę umieścić formularz kontaktowy na stronie statycznej i również chcę aby były wyświetlane wiadomości typu "Twoja wiadomość została wysłana" itp. Wordpress umożliwia wstawienie kodu HTML do strony statycznej jak i również PHP (specjalna wtyczka), jednak nie obsługuje formularzy (dlaczego?).

Jak mogę to rozwiązać ? (nie chcę wtyczki formularza kontaktowego do WP). Chcę żeby na każdej podstronie statycznej w wordpressie, mógł umieścić formularz kontaktowy z innym adresem email (na który wiadomość jest wysyłana)

Dla formalności kod:

Formularz html:

  1. <strong>Formularz kontaktowy:</strong>
  2.  
  3. <form method="post"><label for="imie">Twoje Imię:</label>
  4.  
  5. <input id="imie" maxlength="50" name="imie" size="30" type="text" /><br style="clear: both;" />
  6.  
  7. <label for="email">Twój Adres E-mail:</label>
  8.  
  9. <input id="email" maxlength="50" name="email" size="30" type="text" /><br style="clear: both;" />
  10.  
  11. <label for="msg">Twoja Wiadomość:</label>
  12.  
  13. <textarea id="msg" cols="35" rows="8" name="msg"></textarea>
  14. <br style="clear: both;" />
  15.  
  16. <input name="wyslij" type="submit" value="Wyślij" /></form>


kontakt.php

  1. <?php
  2. if (isset($_POST['wyslij']))
  3. {
  4. $true_aders = explode ('@', $_POST['email']);
  5. if (isset($true_aders[0]) AND isset($true_aders[1]))
  6. {
  7. $to = "email@asd.pl";
  8. $from = $_POST['email'];
  9. $imie = $_POST['imie'];
  10. $headers = "MIME-Version: 1.0\r\n".
  11. "Content-type: text/html; charset=iso-8859-2\r\n".
  12. "From: <".$from.">\r\n";
  13. $message = "
  14. <html>
  15. <body>
  16. <table>
  17. <tr><td>Wiadomość od:</td><td>".$_POST['email']."</td></tr>
  18. <tr><td>Adres zwrotny:</td><td>".$from."</td></tr>
  19. <tr><td>Imię:</td><td>".$_POST['imie']."</td></tr>
  20. <tr><td>Treść:</td><td>".$_POST['msg']."</td></tr>
  21. </body>
  22. </html>";
  23.  
  24. $response = @mail($to, "Pytanie wysłane ze strony\r\n", $message, $headers);
  25. if($response)
  26. {
  27. $mess = 'Twoja wiadomość została wysłana.';
  28.  
  29. }
  30. else
  31. {
  32. $mess = 'Wiadomość nie mogła zostać wysłana';
  33. }
  34.  
  35. }
  36. else $mess = 'Wpisz poprawny adres email.';
  37. }
  38. ?>
  39.  
lepmajster
Cytat(Ravik @ 23.05.2010, 15:32:57 ) *
Witam,

Mam pewien problem, za nic w świecie nie mogę wymyślić jak mam to rozwiązać. Otóż mam formularz kontaktowy w PHP, którego kod przechowuję w pliku kontakt.php, za przesłanie danych do formularza odpowiada prosty formularz (który jest w oddzielnym pliku).

Chcę umieścić formularz kontaktowy na stronie statycznej i również chcę aby były wyświetlane wiadomości typu "Twoja wiadomość została wysłana" itp. Wordpress umożliwia wstawienie kodu HTML do strony statycznej jak i również PHP (specjalna wtyczka), jednak nie obsługuje formularzy (dlaczego?).

Jak mogę to rozwiązać ? (nie chcę wtyczki formularza kontaktowego do WP). Chcę żeby na każdej podstronie statycznej w wordpressie, mógł umieścić formularz kontaktowy z innym adresem email (na który wiadomość jest wysyłana)

Dla formalności kod:

Formularz html:

  1. <strong>Formularz kontaktowy:</strong>
  2.  
  3. <form method="post"><label for="imie">Twoje Imię:</label>
  4.  
  5. <input id="imie" maxlength="50" name="imie" size="30" type="text" /><br style="clear: both;" />
  6.  
  7. <label for="email">Twój Adres E-mail:</label>
  8.  
  9. <input id="email" maxlength="50" name="email" size="30" type="text" /><br style="clear: both;" />
  10.  
  11. <label for="msg">Twoja Wiadomość:</label>
  12.  
  13. <textarea id="msg" cols="35" rows="8" name="msg"></textarea>
  14. <br style="clear: both;" />
  15.  
  16. <input name="wyslij" type="submit" value="Wyślij" /></form>


kontakt.php

  1. <?php
  2. if (isset($_POST['wyslij']))
  3. {
  4. $true_aders = explode ('@', $_POST['email']);
  5. if (isset($true_aders[0]) AND isset($true_aders[1]))
  6. {
  7. $to = "email@asd.pl";
  8. $from = $_POST['email'];
  9. $imie = $_POST['imie'];
  10. $headers = "MIME-Version: 1.0\r\n".
  11. "Content-type: text/html; charset=iso-8859-2\r\n".
  12. "From: <".$from.">\r\n";
  13. $message = "
  14. <html>
  15. <body>
  16. <table>
  17. <tr><td>Wiadomość od:</td><td>".$_POST['email']."</td></tr>
  18. <tr><td>Adres zwrotny:</td><td>".$from."</td></tr>
  19. <tr><td>Imię:</td><td>".$_POST['imie']."</td></tr>
  20. <tr><td>Treść:</td><td>".$_POST['msg']."</td></tr>
  21. </body>
  22. </html>";
  23.  
  24. $response = @mail($to, "Pytanie wysłane ze strony\r\n", $message, $headers);
  25. if($response)
  26. {
  27. $mess = 'Twoja wiadomość została wysłana.';
  28.  
  29. }
  30. else
  31. {
  32. $mess = 'Wiadomość nie mogła zostać wysłana';
  33. }
  34.  
  35. }
  36. else $mess = 'Wpisz poprawny adres email.';
  37. }
  38. ?>
  39.  

Bedziesz mial z tym sporo problemow, wiem po sobie.
Kiedys probowalem zrobic swoj system logowania w wp i nie wyszlo, bo wordpress ma swoje funkcje, ktore czyszcza wszystko co POST GET SESSION itp.
Czytalem na jakims forum, ktora to funkcja i nawet ja usunalem, niestety nadal byly czyszczone sad.gif
pedro84
Użyj tej wtyczki i przerób ją odpowiednio, dodając if (sprawdzasz jaka strona) i wysyłasz na odpowiedni adres email.
vokiel
Możesz utworzyć stronę w czystym php i podpiąć ją do wordpress'a tutaj o tym
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.