Skrypt Formularz Kontaktowy na stronie bez programowania
Często są osoby (dla nich jest ten tekst i skrypt) , które bez znajomości programowania chciałyby mieć na swojej stronie WWW zakładkę KONTAKT a w niej formularz kontaktowy pozwalający na wysłanie zapytania, informacji odwiedzającego prosto na naszą skrzynkę email.
Dla tych osób napisałem prosty skrypt, który wyświetla gotowy kod formularza, oraz wysyła do nas emaila.
Zamierzeniem było napisanie prostego skryptu, który jednocześnie byłby konfigurowalny. Wiadomo że nie każdy kod będzie pasował do naszej strony - dlatego jest w nim możliwość zmiany kodu xhtml jak i pliku CSS .
Do zabezpieczenia przed botami jest zastosowany prosty anty bot - nie zalecam jego wyłączania.
Główny plik to mirvanos_contact.php w którym znajduje się klasa do validacji, parsowania i wysyłania maila. Wysyłka maila jest realizowana za pośrednictwem klasy phpMailer (załączonej w archiwum).
Skrypt na początku ładuje pliki : konfiguracja formularza kontaktowego , szablon (template), plik CSS.
Następnie po wykryciu wysłania formularza do nas, jest on walidowany. Są to proste funkcje - można je dostosować samemu do własnych potrzeb (jeśli jest taka potrzeba) - np. mail sprawdzany prostym eregi.
Instalacja jest prosta : rozpakować i umieścić na stronie WWW w głównym katalogu strony.
Edytujemy plik konfiguracyjny - mirvanos_contact_config.php - podając własny adres email itp.
W pliku mirvanos_contact_template.html możemy zmienić/dopasować kod html do naszej strony WWW.
Zapraszam do pobrania - skrypt Formularz Kontaktowy
Jak wygląda w akcji taki skrypt można zobaczyć na stronie demo http://www.demo.mirvanos.org/kontakt/
W razie kłopotów proszę pisać poniżej ... może też zainteresuje Cię skrypt do mailingu
Dostępna nowa wersja pod adresem : formularz kontaktowy - nowa wersja
alkora
wkleiłam w miejscu gdzie ma się pojawić formularz kod, niestety wyświetla się część kodu, co robię źle?
http://www.alkora.cp5.win.pl/dekoracje.net.pl/kopiaaleksandragalas/formularz.htm
mirvanos
Strona musi być parsowana przez PHP, jeśli nie działa to dla plików z rozszerzeniem htm to trzeba zamienić je na np. *.php
Amkomp
Ściągnołem skrypt Formularz Kontaktowy. Dlaczego nie mogę wysłąć maila. Skryp w celcach spradzenia został umieszczony pod adresem http://marek.el-przem.pl. Proszę o pomoc.
z góry dzięki
Marek
mirvanos
Wnioskuję że jest wyłączona funjcja mail() na serverze ... Proszę o to zapytać administratora servera
an33
mirvanos
Proszę sprawdzić kodowanie - skrypt jest w utf8 u mnie działa ok. Jeśli strona jest np. w ISO-8859-2 to może właśnie źle działać. Proszę zmienić w configu : define('USE_ICONV_CONVERT', TRUE); z TRUE na FALSE i sprawdzić.
pozdrawiam
an33
Katarzyna
" Sorry, I am unable to validate this document because on line 8 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
The error was: utf8 "\xEA" does not map to Unicode "
Sprawdziłam kodowanie - zmieniłam je na utf-8 bez BOM , aktualnie pojawia mi się info INVALID.
Formularz jest umieszczony na stronie z rozszerzeniem .php .
Co może być przyczyną błędu??
pozdrawiam
mirvanos
A można otrzymać link do strony z formularzem ?
Katarzyna
http://plastformet.pl/kontakt.php
Pojawił się też problem opisywany przez an33, próbowałam zmienić wartości z TRUE na FALSE ale nie było poprawy, wręcz przeciwnie, pojawiły mi się same duże literki "A" wraz z kreseczką na górze.
Przejrzałam i wypróbowałam już sporo formularzy jednak ten oferowany przez Pana jest łatwy w edycji i instalacji, dlatego też zależy mi na tym by wyeliminować zaistniałe problemy.
Pozdrawiam
mirvanos
$mail-CharSet = 'iso-8859-2';
w funkcji wysyłającej maila (sendMail), archiwum z skryptem poprawione ...
Katarzyna
Marcin
mirvanos
$mail->CharSet = 'iso-8859-2'; w funkcji sendMail() klasy mirvanosContact - plik mirvanos_contact.php.
Archiwum zawiera poprawioną wersję
miro
Niestety skrypt nie działa dostaję taki komunikat:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /kontakt/mirvanos_contact.php on line 10
co z tym zrobić ?
mirvanos
Bigos
podajemy swój adres meilowy
mirvanos
ravvir
mirvanos
Musisz podać url strony z przykładem, generalnie obramowanie i resztę wystarczy skopiować z mojej strony ... Skrypt jest prosty, ma na celu pokazanie jak to działa - oczywiście da się dorobić więcej możliwości ale to już trzeba zrobić w własnym zakresie :)
Farfadet
Jak większośc osób tutaj chciałem wykorzystać twój skrypt o sam jestem za cienki na pisanie tak fajnych aplikacji na www.
zedytowałem lata ekstra - chciałbym tylko dodać checkboxa i listę wyboru i nie bardzo mi idzie :D
jest opcja byś pomógł ?
z góry dziękuję :D
mirvanos
Niestety mam bardzo mało czasu, ale umówmy się tak że jeśli będzie w komentarzach więcej szczegółów na temat wersji 2.0 skryptu to go wykonam w wolnej chwili :)
pozdr.
Bonus
Karol
korzystam z Twojego skryptu na swojej stronie, śmiga świetnie. Mam tylko jedno pytanie, czy jest opcja by e-maile ze strony przychodziły na skrzynkę na np. interii lub wp.pl? I ew. co i gdzie trzeba by było zmienić w kodzie?
Pozdrawiam!
tom
mirvanos
Bonus : musisz się pobawić konfiguracją poczty w phpmailer
Karol : Ty także musisz się pobawić configiem - jest tam opcja w któ?ej podaje się adres email
tom : niestety musisz ręcznie przetłumaczyć skrypt - nie zawiera on innej lokalizacji ...
Tom
mirvanos
w pliku mirvanos_contact.php - proszę pamiętać o kodowaniu UTF8 w edytorze ...
gregory
Dodam, że to xampp(na nim testuje)
Anavi
dzięki za odpowiedź
Caro
Będę mógł pomóc
Mateusz_
"Witam,
Test. Nowe zdanie, kolejne zdanie.
Abcdef.
Pozdrawiam,
Jak Kowalski"
to na maila przychodzi mi wiadomość w takiej formie:
"Witam, test. Nowe zdanie, kolejne zdanie. Abcdef. Pozdrawiam, Jan Kowalski"
Bardzo bym prosił o pomoc w rozwiązaniu problemu.
Pozdrawiam!
mirvanos
Trzeba pamiętać że to prosty skrypt i wymaga poprawek w własnym zakresie ... np. żeby entery były zamieniane na nowe linie trzeba w pliku
mirvanos_contact.php w okolicy lini 72 zamienić :
$this-mail_content .= trim( $_POST['mirvanos_content'] );
na
$this-mail_content .= nl2br(trim( $_POST['mirvanos_content'] ));
pozdrawiam
Delight
mirvanos
Grzesiek
Kompletnie się nie znam na tym o czym jest tu pisane , ale kombinuje sam, żeby stworzyć stronę-wizytówkę swojej "firmy".
Chciałem zastosować ten skrypt, udało mi się zainstalować, ale nie można wysłać zapytania, bo cały czas pojawia się komunikat, że należy poprawnie przepisać kod z obrazka.
Jak mogę to naprawić? Oto link do strony testowej : http://www.bendiks-shop.pl/
Z góry dziękuje za pomoc.
mirvanos
Brakuje katalogu dla sesji, na dole strony pojawia się błąd:
Unknown: open(/tmp/sess_7b94e5d763cd201816fdef3597f6959c)
Grzesiek
mirvanos
Grzesiek
To każdy musiał sobie stworzyć ten katalog , czy powinien tam być wcześniej?
A tak przy okazji, w wiadomości z linkiem aktywującym brak polskich liter.
Grzesiek
Jak wysyłam wiadomość do siebie to przychodzi jako błąd o treści:
Hi. This is the qmail-send program at home.pl.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
:
Connected to 212.244.112.163 but sender was rejected.
Remote host said: 553 Local sender not acceptable
--- Below this line is a copy of the message.
Return-Path:
To: "F.H.U. \"Bendiks-Shop\""
Subject: =?iso-8859-2?Q?Nowa_wiadomo=B6=E6_z_demo.mirvanos.org/kontakt?=
Date: Fri, 4 Mar 2011 15:59:57 +0100
From: Grzesiek
Reply-to: Grzesiek
Message-ID: " target="_blank" id="PlainTextHref"www.bendiks-shop.pl;
X-Priority: 3
X-Mailer: PHPMailer Lite 5.1 (phpmailer.codeworxtech.com)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_a791c7f6b8094525ec7255febe0c5edf"
--b1_a791c7f6b8094525ec7255febe0c5edf
Content-Type: text/plain; charset = "iso-8859-2"
Content-Transfer-Encoding: 8bit
Nowa wiadomość od Grzesiek
Adres email bendiks-shop@2com.pl
Adres IP 89.78.255.168
gfgfgfg
--b1_a791c7f6b8094525ec7255febe0c5edf
Content-Type: text/html; charset = "iso-8859-2"
Content-Transfer-Encoding: 8bit
Nowa wiadomość od Grzesiek
Adres email bendiks-shop@2com.pl
Adres IP 89.78.255.168
gfgfgfg
--b1_a791c7f6b8094525ec7255febe0c5edf--
w sumie wpisany tekst"gfgfgfg" przyszedł , ale co oznacza ta reszta?
mirvanos
Proszę sprawdzić ustawienia z pocztą ...
linkers
nie wysyła maili, brak funkcji mail.
Serwer na Strefa.pl php 5.2.4 funkcja mial aktywna.
Co może być przyczyną?
linkers
:)
mirvanos
http://forums.codewalkers.com/php-coding-7/phpmailer-error-could-not-instantiate-mail-function-720775.html
Morelos
mirvanos
Jeśli strona jest w php to po prostu wklejamy skrypt i tyle :)
W mirvanos_contact_config.php
jest USE_CAPTCHA to należy zmienić na false aby wyłączyć antybota ...
morelos
mirvanos
Podglądając i tak nic nie zobaczę bo nawet gdyby był tam PHP to jest on parsowany po stronie serwera i zwraca gotowy np. xhtml ...
Albo można włączyć parsowanie plików html (nie zalecam) przez PHP albo stronę z kontaktem zapisać z rozszerzeniem php ...
jaro
Zainstalowalem skrypt, zmienilem dane w configu. Po nacisnieciu "wyslij" pojawia mi sie potwierdzenie ale nic nie dochodzi. Dodam tylko ze zmienialem wylacznie maila. Prosze o pomoc.
mirvanos
Proponuję dopisać w pliku index.php przed :
require_once('mirvanos_contact.php');
kod:
error_reporting(-1);
może pojawią się jakieś błędy ...
cLoNe_xx
mirvanos
Trzeba zmodyfikować funkcję sendMail , a dokładniej dopisać coś około ( na szybko ) :
$mail-SMTPAuth = true; // turn on SMTP authentication
$mail-Username = "username@gmail.com"; // SMTP username
$mail-Password = "password"; // SMTP password
Bo0b
skrypt działa znakomicie mam jednak problem z polskimi znakami, jak to naprawić ?
mirvanos
Bo0b
to mnie naprowadziło
// zmiana z utf8 na iso-8859-2
define('USE_ICONV_CONVERT', TRUE);
zmieniłem na stronie z iso na utf i w formularzu pojawiły się polskie znaki :)
maniek
Nie można już pobrać skryptu ?
Pozdrawiam
mirvanos
Właśnie sprawdzałem - wszystko działa, plik jest do pobrania ...
repet
mirvanos
repet
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
: host mx9.go2.pl[193.17.41.123] said: 550 Bad SPF
records
for [o2.pl:85.17.25.217], see http://spf.pobox.com/ (in reply to MAIL
FROM
command)
mirvanos
W class.phpmailer-lite.php można zamienić linię :
public $Mailer = 'sendmail';
public $Mailer = 'mail';
repet
Twój nick
Napisz proszę, co trzeba i gdzie zmienić, jeśli chcę mieć formularz w katalogu nadrzędnym do całego mechanizmu.
Chciałbym cały mechanizm mieć w folderze kontakt. Natomaist w pliku index.php (katalog główny) chcę mieć mały formularz np. na marginesie.
Po takiej operacji dostaję komunikact, że brakuje pliku mirvanos_config.php
mirvanos
W sumie nie bardzo wiem w czym problem, jeśli plik nie jest w bieżącym katalogu to po prostu wpisujemy :
require_once('./kontakt/mirvanos_contact.php');
lub
require_once(real_path(dirname(__FILE__)).'/kontakt/mirvanos_contact.php');
czy jakoś tak ;)
Malefisto
formularz działa wysyła maila ale ten błąd upierdliwy
Malefisto
Rozwiązanie jest takie
Wywalalo ten błąd gdyż serwer obsługuje php 5.3.0 dla którego funkcje eregi jest przestarzała, wystarczy zamienić ją na funkcję preg_match
błąd dotyczył sprawdzania poprawnosći zapisu maila function checkEmail($email)
po zmianie ta funkcja działa
lukul
Zamieściłem skrypt na stronie testowej: http://slowko.com/kontakt.php
Wszystko działa ale czemu tak źle wygląda? W Firefox'ie opisy komórek są tak małe że nie czytelne... w IE wygląda dobrze ale nie udało mi się zamieścić Twojej estetycznej ramki...
Pozdrawiam i z gory dziękuję
PS. i co zrobić żeby nie kasował treści przy błędnym wpisaniu kudu?
Paweł
Mam problem z formularzem, który nie wiem z czego wynika.
Strona pod adresem claimster.pl
Błąd poniżej
Warning: iconv() expects exactly 3 parameters, 2 given in /home/kisada45/public_html/kontakt/mirvanos_contact.php on line 76
Warning: iconv() expects exactly 3 parameters, 2 given in /home/kisada45/public_html/kontakt/mirvanos_contact.php on line 77
Warning: iconv() expects exactly 3 parameters, 2 given in /home/kisada45/public_html/kontakt/mirvanos_contact.php on line 113
tomek
mirvanos
tomek
mirvanos
tak w skrypcie nie ma ...
tomek
mirvanos
tomek
:)) poza tym masz bład na stronie w linku jak cosik pisz śmiało na e-mAILA
mateusz
wrzuciłem wszystkie pliki na serwer, ale nie mogę skumać, kod z którego pliku mam wrzucić do body mojej podstrony kontakt.html?
Proszę o pomoc!
mirvanos
To nie zawartość pliku trzeba wrzucić, ale cały skrypt :)
(strona w php) :
Wyedytować plik : mirvanos_contact_config.php.
Jeśli kod xhtml nie pasuje nam do strony WWW możemy go zmienić w pliku mirvanos_contact_template.html (uwaga - nie zmieniamy nazw pól input (atrybuty name)).
Wygląd CSS jest definiowany w pliku mirvanos_contact.css.
Następnie w sekcji HEAD naszej strony na której ma być widoczny formularz kontaktowy do nas wpisujemy :
<?php
require_once('mirvanos_contact.php');
$contact = new mirvanosContact();
?>
a w miejscu gdzie ma się pojawiać kod xhtml :
<?php
echo $contact->getHtml();
?>
Agnieszka
getHtml();
?
to wyświetla się on potem na stronie.
Czytałam wcześniejsze wpisy, że należy zapisać stronę jako *php ale wówczas nie wyślwietla się kompeltnie nic..
Bardzo proszę o pomoc.
mirvanos
Musi być jako *.php , proszę tak zrobić i podesłać wtedy linka ...
lukul
Proszę o podpowiedź co teraz jest źle?
Za każdym razem kiedy próbuję wiadomość testową, pojawia się komunikat o błędnym kodzie z obrazka...
Z góry dziękuję.
PS. Kiedy można się spodziewać zapowiadanego nowego formularza kontaktowego?
mirvanos
jest name="" a powinno być name="mirvanos_antibot" - formularz był przerabiany ?
Mam na razie opóźnienia i nie mogę zakończyć nowszego skryptu ... ale będzie za jakiś czas :)
Twój nipiotrck
Wszystko mi działa ale nie wiem dlaczego nie wyświetlają mi się obrazki z których mam przepisać kod? Dziękuję za odpowiedź
mirvanos
basskick
Formularz jest świetny, łatwy w dostosowaniu i konfiguracji. Mam tylko jeden problem oczywiście z polskimi znakami:) a mianowicie chodzi o nagłówek wysłanej wiadomości "Do: MirosĹaw Nawrocki;" Tylko w tym miejscu nie ma polskich znaków. Kodowania nie zmieniałem nigdzie.
Pozdrawiam
basskick
zmiany:
1) mirvanos_contact_config.php
define('USE_ICONV_CONVERT', TRUE); na define('USE_ICONV_CONVERT', FALSE);
2) mirvanos_contact.php
w funkcji sendmail
$mail-CharSet = 'iso-8859-2'; na $mail-CharSet = 'UTF-8';
Pozdrawiam i jeszcze raz dziękuje autorowi formularza. Świetna robota.
basskick
mirvanos
Niestety ciągle nie mam czasu na dokończenie nowej wersji :(
basskick
mam problem, tym razem z SPF, problem już widziałem wyżej, lecz rozwiązania nie:(
gdy podczas wypełniania formularza wpisze adres kontaktowy dowolny@wp.pl to po komunikacie o poprawnym wysłaniu maila otrzymuje zwrot na dowolny@wp.pl
Hi. This is the qmail-send program at home.pl.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
:
Connected to 212.77.101.4 but sender was rejected.
Remote host said: 550 BLAD SPF - zobacz strone / SPF Error: Please see http://spf.pobox.com/why.html?sender=basskick%40wp.pl&ip=79.96.242.1&receiver=smtp.wp.pl Jesli jestes uzytkownikiem poczta.wp.pl sprawdz poprawnosc autoryzacji SMTP / If you are a poczta.wp.pl user check SMTP configuration: http://poczta.wp.pl/autoryzacja/
...
POMOCY!!
esk2
sciagnałem skrypt dokonałem troche modyfikacji stricte pod swoja stronę wyslalem kilka testowych emaili ze strony i od 20minut ich nie dostalem. co moze byc powodem? czy to normalnie ze tak dlugo gdzies widzą?
pzdr
esk2
stefan
lucas
Co potrzebuję zmienić w formularzu, aby dało się do niego dołączyć jakiś plik?
mirvanos
Cezary
jarek
tomasz
mirvanos
pawel9933
dlaczego po dopisaniu kilku opcji wpisywania wiadomości w mirvanos_contact_template mail dochodzi tylko z imieniem i nazwiskiem adresem e mail oraz z treściąwiadomości ??
mirvanos
pozdr.
tomek
Po pierwsze dzięki za skrypt i gratuluje dobrej roboty.Mam problem mianowicie nie pojawia mi się obrazek antybotowy.nawet jak ściągnołem twój skryp i rozpakowale odrazu to tez nie wyświetla
mirvanos
tomek
mirvanos
1. Zmodyfikowany został formularz, nie ma nawet tag'a form więc nie może zadziałać
2. Obrazek anty botowy nie może być pobierany z mojej strony - także nie za działa
Strona musi być parsowana przez php, najprościej zrobić to poprzez zmianę pliku contact.html na contact.php i wklejenie wszystkiego od nowa ...
ljuk
Wciąż wyskakuje:
SMTP Error: Could not connect to SMTP host.
:(
Lukero
Widzę że w nowej wersji wysyłanko jest przez SMTP - jak zmienić na "normalne wysyłanie" (tak jak było w poprzedniej wersji)
Pliki zapisuje w UTF-8 mimo wszystko treść formularza nie ma polskich znaków, to samo w samej wiadomość.
Maniuś
Rysiek
adam
SMTP - ERROR: Failed to connect to server: Connection timed out (110)
smtp mam wpisane smtp.wp.pl
port 465
uwierzytelnienie 1
Monika
Co może być nie tak ? juz nie mam pomysłu ...