1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Problem z formmail po zainstalowaniu Wordpressa

Dyskusja w 'Hosting i domeny internetowe' rozpoczęta przez użytkownika konradbt, 18 Lipiec 2016.

  1. konradbt

    konradbt Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    witam,

    Na mojej stronie (domena i hosting Home.pl) posługuję się prostym formularzem kontaktowym z wykorzystaniem w kodzie następującej sekwencji:
    <form action="/cgibin/formmail" method="post">
    <p class="text4">
    <INPUT TYPE=HIDDEN NAME="recipient" VALUE="mojmail@mail.pl">
    <INPUT TYPE=HIDDEN NAME="require" VALUE="imie/nazwisko, email, wiadomosc">
    <textarea name="wiadomosc" rows="10" cols="47"></textarea><br><br>
    <INPUT TYPE=HIDDEN NAME="redirect" VALUE="http://mojastrona">
    <INPUT TYPE=HIDDEN NAME="subject" VALUE="Nowa wiadomosc">
    <br> <input name="imie/nazwisko" size="40" placeholder="imię i nazwisko" /><br>
    <br><input name="email" size="40" placeholder="e-mail" /><br><br>
    <input type="image" src="img/button2.png" alt="Wyślij!" />
    </form>

    Wszystko chodziło bezproblemowo do czasu, gdy zainstalowałem na serwerze Wordpress. Tzn. wszystko na to wskazuje, że winny jest Wordpress, ponieważ formularz po kliknięciu "Wyślij" przenosi mnie na stronę błędu 404 z katalogu Wordpress. (Jednocześnie nie wysyła żadnej wiadomości). Dodam, że Wordpress zainstalowany jest na serwerze, ale strona, na które znajduje się powyższy formularz kontaktowy nie korzysta z Wordpressa. Jest on wykorzystywany na odrębnej stronie, która znajduje się w jednym z podkatalogów na serwerze.

    Czy ktoś z Was wie, co zrobić, aby na nowo "odżył" ten formularz kontaktowy? Może coś należałoby zmienić w tym kodzie: <form action="/cgibin/formmail" method="post"> , tylko sam nie bardzo wiem co..

    Dziękuję z góry za pomoc,

    Pozdrawiam,
    Konrad
     
  2. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 060
    Docenione treści:
    300
    Idąc tym tropem, zauważyłem, że na Twoim serwerze faktycznie znajduje się katalog o nazwie "cgibin", ale w środku tego katalogu znajduje się plik o nazwie "FormMail.pl" - na tej podstawie sugeruję zmienić ścieżkę na następującą
    Kod:
    <form action="/cgibin/FormMail.pl" method="post">
    Jeśli to nie pomoże, podaj mi proszę dokładną lokalizację formularza, abym mógł wywołać formularz kontaktowy i sprawdzić na swoim komputerze jak to wygląda... z pewnością jakieś ścieżki "się gryzą".
     
  3. konradbt

    konradbt Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    Tak, właśnie byłem w trakcie dalszego "eksperymentowania' i stworzyłem taki katalog 'cgibin', bo jak się okazało - takiego katalogu (i zarazem pliku formmail) w ogóle nie było na moim serwerze.. Sam się już w tym zagubiłem, nie pojmuję jakim cudem wcześniej formularz mi działał z tym kodem.
    Generalnie wgrałem do tego folderu plik Formmail.pl znaleziony na innym forum. Niestety, zmiana w kodzie formmail na formmail.pl nic nie dała - serwer nadal tego pliku nie widzi. Może to kwestia odpowiedniego skonfigurowania pliku formmail? Mógłbym Cię poprosić o przesłanie (lub wrzucenie na mój serwer) pliku formmail domyślnie skonfigurowanego pod home.pl (pewnie jest coś takiego)? Może to rozwiąże problem?

    A formularz kontaktowy znajduje się na stronie buraczewski-copywriting.pl
     
  4. konradbt

    konradbt Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    Aktualizacja wiedzy;) Wordpress nie ma z tym żadnego związku. Wygląda na to, że skrypt Formmail został dezaktywowany/wyłączony, serwer go nie widzi, stąd wyświetla stronę błędu 404. Czy jest szansa na włączenie tego skryptu?
     
  5. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 060
    Docenione treści:
    300
    @konradbt - szkoda, że nie wiemy jak formularz działał wcześniej, powiem szczerze, że moją sugestią byłoby spróbowanie z innym formularzem kontaktowym. Dla Wordpressa jednym z najbardziej popularnych formularzy kontaktowych jest Contact Form 7, który jest bardzo elastyczny przy dostosowaniu - https://pl.wordpress.org/plugins/contact-form-7/
     
  6. konradbt

    konradbt Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    @Mariusz, dzięki, tylko jak wspominałem na tej stronie nie korzystam z Wordpressa. Inny serwis znajdująca się na tym serwerze jest zbudowany na Wordpressie, nie ten.
    Tu z jakiś względów nie działa skrypt Formmail. Czy jesteś może w stanie włączyć ten skrypt, czy to pytanie kierować gdzieś do działu technicznego Home.pl ?
    Bardzo mi zależy na poprawnym działaniu formularza - bo teraz w jakimś sensie jestem odcięty od świata i nowych klientów :)

    Ew. może jest jakieś inne rozwiązanie, tj. równie prosty formularz jak Formmail, ale bez Wordpressa?
     
  7. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 060
    Docenione treści:
    300
    @konradbt

    Wybacz moje niedopatrzenie. Poniżej przesyłam ciekawy skrypt formularza kontaktowego, który z powodzeniem działa na serwerze w home.pl (został odpowiednio zmodyfikowany, aby poprawnie działał):

    formularz-demo.png

    Na podstronie, na której ma zostać wyświetlony formularz kontaktowy dodajemy poniższy kod (zakładam, że strona napisana jest w PHP):
    Kod:
    <?PHP
      include('contact.html');
    ?>
    Plik contact.html znajduje się w załączniku. Powinieneś go umieścić w katalogu głównym, w którym umieszczona jest Twoja strona WWW (czyli tam gdzie znajduje się plik index). W pliku contact.html znajdują się informacje o wyglądzie formularza kontaktowego (jego kolory, rozmiary, styl CSS). Dodatkowo możesz zmienić nazwy pól wyświetlanych w formularzu kontaktowym.

    Drugi plik znajdujący się w załączniku to form.zip (jest to spakowane archiwum). Rozpakuj spakowane archiwum, po rozpakowaniu pojawi się jeden katalog o nazwie "form" - w katalogu tym znajdziesz dwa pliki. Cały katalog wraz z tymi dwoma plikami musisz wysłać na swój serwer i umieścić w katalogu głównym strony WWW (czyli tam gdzie znajduje się plik index).
    Kod:
    /form/send.php
    /form/class.phpmailer.php
    W pliku send.php musisz zmienić w liniach 44 i 45 dwa adresy e-mail, aby skrypt formularza poprawnie działał:
    • w 44 linii wpisujesz adres e-mail, z którego ma zostać wysłana wiadomość z formularza,
    • w 45 linii wpisujesz adres e-mail, na który ma zostać wysłana wiadomość z formularza.
    Kod:
    $mail->SetFrom('adres-from@twojadomena.pl');
    $mail->AddAddress('adres-to@twojadomena.pl');
    Pierwsza linia od góry (jest to linia 44) - tutaj wpisujemy adres e-mail, z którego wiadomość ma zostać wysłana. Oznacza to, że jak odbierzemy wiadomość z formularza, to w polu "from" będzie podany właśnie ten adres. Adres ten nie może fikcyjny - musi to być adres skrzynki e-mail, która utworzona jest na tym samym serwerze, na którym znajduje się strona WWW z formularzem kontaktowym.

    Druga linia od góry (jest to linia 45) - tutaj wpisujesz adres e-mail, na który ma zostać wysłana wiadomość e-mail z formularza.

    Poza tym w pliku send.php w linii 46 możesz określić temat wiadomości, którą otrzymasz z formularza kontaktowego:
    Kod:
    $mail->Subject = 'Wiadomość ze strony WWW';
    W drugim pliku class.phpmailer.php znajdującym się w katalogu /form/ nie musisz nic robić.

    Trzecim plikiem znajdującym się w załączniku jest "main.js", który należy umieścić w tej samej lokalizacji co plik "contact.html", czyli w katalogu głównym strony WWW. W pliku main.js w liniach 29 oraz 35 możesz zdefiniować treść komunikatów, które będą wyświetlane w przypadku poprawnie wysłanego formularza oraz w przypadku błędu (np. gdy użytkownik nie wypełni wszystkich wymaganych pól).


    Poniżej pokazuję jak wygląda linia 29:
    Kod:
    $form.after('<div class="form-success" style="margin-bottom:30px;">Wiadomość została wysłana! <br> Skontaktujemy się z Tobą jak tylko będzie to możliwe.</div>');

    Poniżej pokazuję jak wygląda linia 35:
    Kod:
    form.prepend('<div class="form-error" style="margin-bottom:30px;">Wystąpił błąd podczas wysyłania formularza. Upewnij się, że wypełniłeś wszystkie pola i poprawnie rozwiązałeś działanie.</div>');
    To byłoby na tyle! Miłego korzystania!
     

    Załączone pliki:

    • contact.html
      Rozmiar pliku:
      5,7 KB
      Wyświetleń:
      335
    • form.zip
      Rozmiar pliku:
      22,9 KB
      Wyświetleń:
      313
    • main.js
      Rozmiar pliku:
      1,6 KB
      Wyświetleń:
      149
    marjo lubi to.
  8. konradbt

    konradbt Zaglądacz

    Wiadomości:
    11
    Docenione treści:
    0
    dziękuję za pomoc!
     
  9. casar

    casar Laureat

    Wiadomości:
    449
    Docenione treści:
    122
    Skrypty CGIBIN na serwerach współdzielonych zostały dezaktywowane jakoś 2 miesiące temu. Z tego co pamiętam, była komunikacja mailowa.
     
    Mariusz lubi to.

Poleć forum znajomym