Dobry formularz kontaktowy
Kilkaset osób miesięcznie trafia na tego bloga w poszukiwaniu formularza kontaktowego do użycia na swojej stronie www. Wygląda na to, że nie mam innego wyjścia, niż zabrać się do roboty i coś prostego wyklikać.
Skorzystałem ze znanych i sprawdzonych rozwiązań: klasy PHPMailer i skryptu JavaScript Form Validation.
Te kilka linijek swojego kodu udostępniam na licencji "Róbta co chceta". Z zachowaniem przyzwoitości oczywiście, podpisanie się jako autor tego i sprzedawanie za 5zł/szt na Allegro nie będzie mile widziane.
Wszystkie pliki potrzebne do uruchomienia formularza zamieściłem tutaj.
Skrypt formularza jest prosty ale zawiera wszystko co powinien. Starałem się komentować kod w taki sposób, żeby osoba, która nie zna PHP poradziła sobie z jego wdrożeniem.
Podstawowe cechy formularza:
- Podwójne sprawdzanie poprawności danych - raz przy użyciu javascript po stronie użytkownika i drugi raz za pomocą php przed wysłaniem wiadomości.
- Możliwość zdefiniowania listy adresów, na które można wysłać wiadomość. Zabezpieczenie przed wysyłaniem na adresy spoza listy.
- Wysyłanie przez zewnętrzny serwer SMTP. Domyślnie skonfigurowany do użycia konta na GMail-u. Dzięki temu działa na serwerach, które mają zablokowaną funkcję mail(), a wiadomości przez niego wysłane rzadziej zatrzymują się na filtrach antyspamowych.
- Poprawna obsługa polskich znaków - w temacie i w treści.
Zachęcam do ściągnięcia formularza i zgłaszania uwag, pomysłów, zauważonych błędów, etc.
Jeżeli korzystasz z Google Analytics i potrzebujesz zliczania konwersji na podstawie zgłoszeń tego formularza to zerknij tu:
http://www.google.com/support/conversionuniversity/bin/answer.py?hl=en&a...
Garść łopatologicznych uwag "jak to uruchomić": http://www.adam.krywko.pl/dobry-formularz-kontaktowy#comment-215




Komentarze
Witam, czy ten skrypt można jakoś zoptymalizować, do pola: "Imie", "Treść"??
jak tak, to niech ktoś da ten przerobiony skrypt, no i oczywiście musiwy wysyłać e-maila na podany mejl, ten do mnie, czyli ten do kontaktu, no ten co do mnie ma przyjść.
Cały kod jest w jednym pliku - kontakt.php. Można go otworzyć zwykłym notatnikiem i zmieniać do woli. Starałem się, żeby był w miarę czytelny.
Katalogi zawierają tylko biblioteki z których skrypt korzysta, ich modyfikowanie jest niewskazane.
Witam
Czy jest możliwość rozbudowania i validowania podanego formularza o pola zawarte w formularzu na stronie mtkosciuszko/dot/org/dot/au w zamówieniu ksiązki o PES i "dostawienia" do niego captchy wraz z podglądem wysyłanej treści?
Captcha może być generowana przy pomocy Internet Captcha (ze strony icaptcha/dot/com)
Czy na serwerze muszą "leżeć" wszystkie katalogi ?
Dziękuję za odpowiedź
Pozdrawiam
Ja mam pytanko.
Ogólnie skrypt jest bardzo fajny ale niewiem gdzie ustawić aby mogli pisać wszyscy do mnie wiadomości a nie tlko osoby z listy dozwolonej :)
Jak to dokładnie zrobić :D
Dzięki wielkie
Zdz:
Jasne, choć byłoby z tym trochę roboty. Zrobienie podglądu to tylko dodatkowa podstrona pomiędzy formularzem a kodem wysyłającym. Wszystkie katalogi muszą być na serwerze. Dzięki za przypomnienie o captcha - kiedyś dorobię. Aczkolwiek tego typu formularze rzadko służą do wysyłania spamu. Co to za spam wysyłany do maksymalnie kilku użytkowników?
Sabaczek:
Wszyscy mogą do Ciebie pisać. Lista adresów to adresy możliwych odbiorców wiadomości, a nie nadawców. Jeżeli potrzebujesz tylko jednego odbiorcy (siebie) to możesz ją w ogóle wywalić (w kodzie jest opisane co i jak).
Witam.
Genialny kod.
Dopiero zaczynam przygodę z PHP i szukałem formularza na internecie,ale byłem zupełnie zielony.
Dzięki temu, nie dość,że działa to odrobinę zmodyfikowałem kod, wogole nie znająć PHPa, tylko patrząc co za co odpowiada.
Dzięki wielkie za ten formularz :D
Jednak jest ktoś kto się podzieli wiedzą za darmo :)
Jeszcze raz dzięki i pozdrawiam :)
Witam, w sieci można sporo spotkać formularzy php, lecz nie posiadają żadnych zabezpieczeń. Twój jest bardzo dobry posiada zabezpieczenie i w dodatku umożliwia wysyłanie mail do kilu adresatów.
Wielkie dzięki za udostępnienie i pozdrawiam!
Dzięki za garść dobrych słów.
Kilka osób prosiło mnie mailem o łopatologiczną instrukcje jak go uruchomić.
Poniższych zmian dokonujemy w pliku kontakt.php:
Odradzam wpisywanie tu parametrów konta, którego używamy na co dzień sami. Lepiej stworzyć oddzielne, szczególnie jeśli używamy współdzielonego hostingu.
- w linii 22 $adresat = $_POST['adresat'];
wpisujemy, zamiast zmiennej, adres docelowy. Np $adresat = 'kuba@wp.pl';
- wpisujemy ten adres do dozwolonych w linii 26.
- usuwamy z formularza linie 82-85
Super sprawa, czegoś takiego potrzebuję, tylko mam pytanie, bo kompletnie nie mam pojęcia o php, czy można wrzucić ten kod żywcem, na podstronę "kontakt" tworzoną w html ?
Czy istnieją takie formularze typowo pod html ?
Przyznaje szczerze, że jestem raczej grzebkiem niż profesjonalistą, ale stronę jakoś udało się postawić, tylko od dłuższego czasu mam problem, z formularzem kontaktowym :/
Najczęściej strona musi mieć rozszerzenie *.php, żeby skrypt się uruchomił. Nie ma czegoś takiego jak "formularz pod html". Html nie jest językiem programowania i nie potrafi obsługiwać zdarzeń, pobierać danych itp.
Można wkleić kod spomiędzy znaczników <body></body> na dowolną stronę ale trzeba pamiętać o dodaniu także linii <script language="JavaScript" src="javavalid/gen_validatorv2.js" type="text/javascript"></script> gdzieś w <head>.
Mam taki błąd
"BĹ�� SMTP: Nie moĹźna przeprowadziÄ�autentykacji. Błąd wysyłania: BĹ�� SMTP: Nie moĹźna przeprowadziÄ�autentykacji. "
Co może być ??
Dokładnie mam ten sam co kolega powyżej! Jakby co to z góry dziękuje za pomoc.
Chociaż nie, u mnie jest trochę inny problem:
Invalid address: e5654t65Błąd SMTP: Nie można połączyć się z wybranym hostem. Błąd wysyłania: Błąd SMTP: Nie można połączyć się z wybranym hostem.
myślałem że to błąd portu ale niestety to nie wina portu....:(((
Macie wpisany niepoprawny adres serwera lub port za pomocą którego formularz ma wysyłać maile.
Najprostszą metodą, żeby uniknąć błędów jest założyć sobie konto na gmail.com i w konfiguracji zmienić tylko login i hasło SMTP oraz mail na który mają przychodzić wiadomości (to nie musi być ten sam, którego formularz używa do wysyłania).
Raz jeszcze - jeśli nie macie pewności jaka jest poprawna konfiguracja SMTP: host, port i szyfrowanie to używajcie gmaila i nie zmieniajcie tych danych.
Witam
Problem dalej ten sam co powyżej. Adres serwera oraz port są dobrze wpisane, gdyż właśnie zostało stworzone specjalnie do tego celu konto na gmailu. Zatem w czym może być problem? Dzięjuje za odpowiedź.
a jak dodać opjce CAPTCHA?
Jedyne co mi przychodzi do głowy to zablokowane wyjście z serwera po tym porcie. Zapytałbym administratora.
CAPTCHA wymagałaby integracji formularza z którymś z gotowych skryptów. To może lepiej od razu coś bardziej przyszłościowego?
Jestem BARDZO poczatkujacy. Zrobilem niby co trzeba z tym formularzem, ale otrzymuje komunikat : Sorry can't allow you access today" Nie wiem co robic. Czy Ktos ma moze jakis pomysl co robie zle ? Podkreslam, ze zalozylem konto na gmailu. ??? Dziekuje z gory za pomoc.
Formularz działa super !!1
Dzięki wielkie.
Witam, Wystawiłem wszytkie te pliki tak jak w instrukcji na serwer, ale po wypełnieniu formularza na stronie wyskakuje mi komunikat:
syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homez.346/tectumar/www/phpmailerx/class.phpmailer.php on line 53
Byłbym bardzo wdzięczny za pomoc
Witam, wszystko wgralem poprawnie , otrzymuje bład:
"Błąd SMTP: Nie można połączyć się z wybranym hostem. Błąd wysyłania: Błąd SMTP: Nie można połączyć się z wybranym hostem."
serwer to cba.pl
prosze o podpowiedź.....
`skrzynka na gmail oczywiscie:)
Bardzo dziękuję za super formularz, mam pytanie jak zmienić w nim czcionkę? z góry dziękuję za odpowiedź i jeszcze raz dziękuję!
Mam prosty problem.
Załozyłem konto na gmial.com postąpiłem zgodnie z instrukcją i pojawia się taki oto napis:
Invalid address: Należy podać prawidłowy adres email Odbiorcy. Błąd wysyłania: Należy podać prawidłowy adres email Odbiorcy.
Co teraz?
ja mam podobny problem, jak co niektórzy:
Błąd SMTP: Nie można połączyć się z wybranym hostem. Błąd wysyłania: Błąd SMTP: Nie można połączyć się z wybranym hostem.
konto na cba.pl
Proszę o pomoc.... !!!!!!!!!!!!!!!!!!!!
ok problem rozwiązany, cba.pl ogranicza swoje możliwości wz. swoich erwerów, funkcja mail wycofana (podobnież za dużo spamu dostają), aha jak by co w ugu.pl tez tego nie ma :(
pozdro Roni
Witam.
Jako stronę domową wpisałem stronę na której będzie funkcjonował formularz kontaktowy.Przetestowałem kilka formularzy i ten mi odpowiada. Komentarz i instrukcje są w porządku.Mam następujący problem, który pojawiał się również przy poprzednich formularzach, podejrzewam że jest to sprawa serwera [friko.pl].Po wprowadzeniu danych i wysłaniu wiadomości, pojawia się ona na mojej poczcie ale bez loginu.
Przykładowo wysyłał "kuba@wp.pl" a u mnie pojawia się "php-script@kanc5.za.pl". W czym jest problem. Zgodnie z instrukcją ustaliłem jeden adres odbiorcy, zmieniłem host "ftp.friko.pl", nic więcej nie zmieniałem.
P.S. Jesteś jedynym facetem, który potrafi wyjaśnić sprawy związane z formularzem osobom które dopiero zaczynają, piszę to na bazie moich doświadczeń.Pozdrawiam Marek
a macie Panowie pomysł jak zrobić żeby komunikat o wysłaniu formularza wyświetlał się w małym okienku?
Dzien dobry,
Bardzo przydatny formularz. Mam dwa pytania.
1. Czy nalezy wstawic informacje o autorze formularza?
2. W jaki sposob zbudowac regule, by n° telefonu byl wstawiany w niniejszy sposob: 0296762578 lub 02.96.76.25.78
Chcialbym, by to cos bylo na wzor poprawnosci jak w adresie mailowym.
if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)) { echo "Adresse e-mail incorrecte!"; break; }
pozdrawiam
Witam !
Formularz działa elegancko. Panie Adamie formularze to super przydatna sprawa. A może by się Pan pokusił o stworzenie przykładu formularza wielostronnicowego ( krokowego ), mimo poszukiwań nie znalazłem w necie nic odpowiednio wytłumaczonego.
pozdrawiam
Witam! Ogólnie fajny mailer, ale czy jest jakaś możliwość zrobienia pola niewymaganym w PHP? Bo w JS to nie problem usunąć "req". Pozdrawiam!
Witam
Formularz super tylko mam problem z wysyłaniem tzn:
1. umieściłam wszystkie pliki na serwerze
2. założyłam konto na gmail
3. zmieniłam w kontakt.php:
- wpisałam na stałe adres mailowy w linii 22 i usunęłam linie 26 i 27
- w linii 49 wpisałam swój mail
- w lini 50 wpisałam swoje hasło
- usunęłam linie 82-85
Testuję formularz na stronie - wpisuję tekst do formularza i po chwili wyświetla się:
Błąd SMTP: Nie można połączyć się z wybranym hostem. Błąd wysyłania: Błąd SMTP: Nie można połączyć się z wybranym hostem.
Wcześniej próbowałam z innym mailem i oczywiście ustawieniami hosta, portu, username i password ale tez to samo.
Panie Adamie proszę o podpowiedź co jest nie tak?
W kodzie musimy podać nasz adres i login do skrzynki .
A przecież ktoś kto podejrzy nasz kod źródłowy będzie miał pełen dostęp, do naszego konta.
Czy istnieje możliwość ukrycia tych danych tak aby nie były widoczne w kodzie naszej strony?
Dodaj nowy komentarz