Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Formularz kontaktowy
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
Mysik
Witam.

Szukam DZIAŁAJĄCEGO skryptu (kodu) formularza kontaktowego... Ma być prosty, wysyłać maile na konta wp/o2/gmail. Najlepiej z komentarzami w środku, żeby wyjaśniał konfigurację itp...
Może nawet ktoś szybciutko napisze taki kod? Bo na forum PHP to pewnie mądrzy ludzie są smile.gif

Od razu zaznaczę, że jestem ABSOLUTNIE zielony jeśli chodzi o PHP... HTML znam, ale nie wiem co tam się wkleja z php i gdzie...
Jest obojętne czy będzie korzystał z zewnętrznego pliku php (jeśli tak - JAK ZROBIĆ ODNOŚNIK DO NIEGO questionmark.gif?) czy będzie wewnętrznym kawałkiem kodu...
Nie potrzebuję udziwnień w stylu captchy,
raxon
  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td>Treść wiadomości</td>
  8. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  9. </tr>
  10. <tr>
  11. <td>Imię, nazwisko lub nick</td>
  12. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  13. </tr>
  14. <tr>
  15. <td>Adres e-mail</td>
  16. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;</td>
  20. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  21. <input type=\"reset\" value=\"Od nowa\"></td></form>
  22. </tr>
  23. </table>";
  24. }
  25. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  26. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  27. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  28. // zmienna $message zawiera treść wiadomości
  29. $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  30. // zmienna $header zawiera przede wszystkim adres zwrotny
  31. $header = "From: $_POST[imie] <$_POST[email]>";
  32. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  33. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  34. or die('Nie udało się wysłać wiadomości');
  35. // wyświetlenie komunikatu w przypadku powodzenia
  36. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  37. }
  38. // lub w przypadku nie wypełnienia formularza do końca
  39. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  40.  
  41. ?>


Zadowolony?
motyl-pl
Tylko oddziel sobie html od php'a.
Mysik
Cytat(motyl-pl @ 22.06.2010, 21:46:46 ) *
Tylko oddziel sobie html od php'a.


No właśnie... to się wkleja całe do pliku "xxx.html"?questionmark.gif Czy coś do pliku html, coś do zewnętrznego php??
Nie mam pojęcia jak to umieścić sad.gif To pewnie proste jak drut, ale php to dla mnie magia...

Odświeżam... czy ktoś mi pomoże??

HELP
webmaniak
Nie można umieścić kodu php w pliku xxx.html. Jeśli chcesz to mieć w jednym pliku to stwórz xxx.php. Jeśli ma być w dwóch plikach to w pliku html umieszczasz wszystko co dotyczy html-a czyli te tabele i pola input, textarea, itd. a w pliku php obsługa tego formularza. Tylko nie wiem po co sobie komplikować życie dzieląc to na dwa pliki skoro jesteś zielony z php. Zostaw to w jednym pliku z rozszerzeniem php oczywiście.
Mysik
Ale lepiej byłoby mi to mieć w 2 różnych plikach... tylko nie wiem jak potem zrobić odwołanie do php...
I nie wiem które części wyciąć, a które zostawić...
webmaniak
Ok. Postaram się pomóc, choć nie jestem ekspertem, więc mogą być błędy.
  1. <table border="0"><form method="post" action="obsluga.php">
  2. <tr>
  3. <td>Treść wiadomości</td>
  4. <td><textarea name="tresc" style="width: 250px; height: 100px"></textarea></td>
  5. </tr>
  6. <tr>
  7. <td>Imię, nazwisko lub nick</td>
  8. <td><input type="text" name="imie" style="width: 250px"></td>
  9. </tr>
  10. <tr>
  11. <td>Adres e-mail</td>
  12. <td><input type="text" name="email" style="width: 250px"></td>
  13. </tr>
  14. <tr>
  15. <td>&nbsp;</td>
  16. <td><input type="submit" name="submit" value="Wyślij">&nbsp;
  17. <input type="reset" value="Od nowa"></td></form>
  18. </tr>


Spójrz na pierwszą linijkę. Tam masz takie coś jak action. To jest odwołanie do php. Nazwa pliku może być dowolna. Ja dałem obsługa.

Natomiast plik obsluga.php powinien wygladac tak:
  1. <?php
  2.  
  3. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  4. if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  5. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  6. // zmienna $message zawiera treść wiadomości
  7. $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  8. // zmienna $header zawiera przede wszystkim adres zwrotny
  9. $header = "From: $_POST[imie] <$_POST[email]>";
  10. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  11. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  12. or die('Nie udało się wysłać wiadomości');
  13. // wyświetlenie komunikatu w przypadku powodzenia
  14. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  15. }
  16. // lub w przypadku nie wypełnienia formularza do końca
  17. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  18.  
  19. ?>


Według mnie to powinno działać, ale trzeba sprawdzić.
Mysik
Coś nie działa sad.gif
Mefiuu
Mysik ale co Ci nie działa?

Nie wiem, Webmaniak czy dobrze poprawiam ale chyba powinny tam być jeszcze apostrofy winksmiley.jpg :

Cytat(webmaniak @ 1.07.2010, 11:24:46 ) *
  1. <?php
  2.  
  3. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  4. if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  5. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  6. // zmienna $message zawiera treść wiadomości
  7. $message = "Treść wiadomości:\n$_POST['tresc']\nWysłał: $_POST['imie']\ne-mail: $_POST['email']";
  8. // zmienna $header zawiera przede wszystkim adres zwrotny
  9. $header = "From: $_POST['imie'] <$_POST['email']>";
  10. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  11. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  12. or die('Nie udało się wysłać wiadomości');
  13. // wyświetlenie komunikatu w przypadku powodzenia
  14. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  15. }
  16. // lub w przypadku nie wypełnienia formularza do końca
  17. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  18.  
  19. ?>

Też nie ręczę że działa winksmiley.jpg
Mysik
Cytat(Mefiuu @ 2.07.2010, 11:43:39 ) *
Mysik ale co Ci nie działa?


Mail nie dociera na mail z WP...
webmaniak
Rzeczywiście brakuje apostrofów, jednak ja przekopiowałem ten kod z drugiego postu ufając, że jest poprawny. W takim razie ten formularz, bez dzielenia go na dwa pliki również jest zły. Mysik spróbuj utworzyć plik formularz.php, wklej do niego kod z drugiego postu i zobacz czy działa. Może tam jest jakiś błąd. Jeśli nie to spróbuj użyć tą wersję od Mefiuu.
Mysik
Cytat(webmaniak @ 2.07.2010, 15:20:59 ) *
Rzeczywiście brakuje apostrofów, jednak ja przekopiowałem ten kod z drugiego postu ufając, że jest poprawny. W takim razie ten formularz, bez dzielenia go na dwa pliki również jest zły. Mysik spróbuj utworzyć plik formularz.php, wklej do niego kod z drugiego postu i zobacz czy działa. Może tam jest jakiś błąd. Jeśli nie to spróbuj użyć tą wersję od Mefiuu.


Niestety nie działa... myślałem, że może nie dochodzi na pocztę WP, ale problem wystepuje i na WP i na o2 i na gmailu....sad.gif
Mysik
A jakiś polski?questionmark.gif
Albo lepiej - poprawa tego co było tam źle w tym php?
webmaniak
Tylko że ten skrypt działa. Skopiowałem go teraz i przetestowałem, zmieniłem oczywiście mail na mój własny w o2 i wiadomość dostarczono.
gorden
w dwóch plikach, prosty

index.htm (lub inny, gdzie będzie formularz)
  1. <form action="wyslij.php" method="post"> <!-- rozpoczecie formularza, wybieranie pliku i metody -->
  2. Temat kontaktu:<input type="text" name="temat"><br> <!-- input do tematu wiadomosci -->
  3. Treść:<textarea name="tresc" cols="40" rows="15"></textarea><br> <!-- textarea tresc - cols=szerokosc rows=wysokosc -->
  4. <input type="submit" value="Wyślij"> <input type="reset" value="Resetuj"> <!-- input do wyslania wiadomosci i do restartu formularza -->
  5. </form> <!-- zakonczenie formularza -->


wyslij.php
  1. <?
  2. $temat = $_POST['temat']; //pobranie zmiennych z formularza
  3. $tresc = $_POST['tresc']; //j/w
  4. if(empty($temat)) {
  5. echo"Nie wpisałeś tematu!"; exit; } //warunek, jezeli temat jest pusty, wyswietli ten tekst i nic wiecej
  6. if(empty($tresc)) {
  7. echo"Nie wpisaleś treści!"; exit; } //j/w
  8. //jezeli beda wypelnione pola, skrypt wykona reszte kodu
  9.  
  10. $email=
  11. "Otrzymano wiadomość z formularza kontaktowego, oto ona:
  12. $tresc"; //tresc wiadomosci otrzymanej na emailu, koniecznie musi byc tam zmienna $tresc, reszta dowolna
  13.  
  14. mail ("TWOJ@EMAIL.PL", $temat, $email); //funkcja mail, twoj email, temat wpisany w formularzu, tresc podana wyzej+z formularza
  15.  
  16. echo"Formularz o temacie: $temat wysłany pomyślnie!<br>Jego treść:<br>$tresc"; //wiadomosc po wyslaniu przejsciu na te strone, jezeli wszystko pojdzie ok.
  17. ?>
Mysik
Gordon jesteś super DZIAŁA Oczywiście POMÓGŁ poszło
Ale jeszcze 2 malutkie prośby...

- mógłbyś dorobić do tego formularza pole: Od kogo?? Bo tak to w skrzynce mailowej w polu "Od" wyskakuje HTTP User...
- można by było tak zrobić, żeby errory i wiadomość po wysłaniu formularza pojawiały się POD formularzem? A nie w osobnym okienku??

Ta pierwsza prośba jest ważniejsza, jak to drugie się nie da, to ok...

WYKONAŁEŚ KAWAŁ ŚWIETNEJ ROBOTY



Cytat(webmaniak @ 12.07.2010, 15:54:12 )
Tylko że ten skrypt działa. Skopiowałem go teraz i przetestowałem, zmieniłem oczywiście mail na mój własny w o2 i wiadomość dostarczono.
Przecież mówiłeś wcześniej, że skrypt jest błędny, bo nie ma apostrofów...
Cysiaczek
@Mysik, ten dział nie służy proszeniu o napisanie kodu, tylko do rozwiązywania problemów z napisanymi, powszechnie dostępnymi skryptami. Wiem, nazwa może mylić.
Jeśli nie umiesz dorobić sobie dwóch tak prostych zmian, to co z Ciebie za programista?
Mysik
Cytat(Cysiaczek @ 19.07.2010, 08:31:02 ) *
@Mysik, ten dział nie służy proszeniu o napisanie kodu, tylko do rozwiązywania problemów z napisanymi, powszechnie dostępnymi skryptami. Wiem, nazwa może mylić.
Jeśli nie umiesz dorobić sobie dwóch tak prostych zmian, to co z Ciebie za programista?


PHP ni hu hu nie znam... więc jeśli chodzi o PHP to programista ze mnie żaden...
Cysiaczek
Zatem przenoszę na subforum Poszukuję i opatruje temat tagiem [wolontariat]. Wszystko dlatego, że jeśli czegoś nie umiesz, to wynajmujesz ludzika, który umie i jakąś większą lub mniejsza opłatą napisze Ci kod.
gorden
jeśli nie za późno, to proszę. w jednym pliku formularz, kod podobny. już bez komentarzy

index.php (lub inny, gdzie będzie formularz)

  1. <form action="index.php" method="post">
  2. Temat kontaktu:<input type="text" name="temat"><br>
  3. Od (email, nick):<input type="text" name="nadawca"><br>
  4. Treść:<textarea name="tresc" cols="40" rows="15"></textarea><br>
  5. <input type="submit" name="wyslano" value="Wyślij"> <input type="reset" value="Resetuj">
  6. </form>
  7.  
  8. <?
  9. if(isset($_POST['wyslano'])) {
  10.  
  11. $temat = $_POST['temat'];
  12. $tresc = $_POST['tresc'];
  13. $nadawca = $_POST['nadawca'];
  14.  
  15. if(empty($temat)) {
  16. echo"Nie wpisałeś tematu!"; exit; }
  17. if(empty($tresc)) {
  18. echo"Nie wpisałeś treści!"; exit; }
  19. if(empty($nadawca)) {
  20. echo"Nie wpisałeś swojego kontaktu!"; exit; }
  21.  
  22. $email=
  23. "Otrzymano wiadomość z formularza kontaktowego (OD: $nadawca), oto ona:
  24. $tresc";
  25.  
  26. mail ("TWOJ@EMAIL.PL", $temat, $email);
  27.  
  28. echo"Formularz o temacie: $temat wysłany pomyślnie!<br>Jego treść:<br>$tresc"; }
  29. ?>


Jeśli chcesz zamieścić formularz w innym pliku, niż index.php , to zmień również nazwę w 1 linii form action tongue.gif
ogólnie nic się nie zmieniło, oprócz dodania tych zmiennych i nadania name dla submitu (żeby teksty wyświetlały się po kliknięciu, o czym świadczy linia 9). Oczywiście całość jest w 1 pliku!
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.