Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Problem z formularzami kontaktowymi


Kamciu ;v

Pytanie

Opublikowano

Witam, może ktoś mi przesłać gotowy, najlepiej sprawdzony formularz kontaktowy na stronę WWW?

Próbowałem ściągać chyba wszystkie gotowe formularze, sam pisałem chyba setki razy i za każdym razem, gdy klikam na np. "Wyślij" nic się nie dzieje.

Słyszałem, że trzeba skonfigurować plik php.ini, tylko jak?

Działam na localhost.

Proszę  o pomoc, pozdrawiam.

20 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano
7 godzin temu, SuchyBGC napisał:

Napisałem w poście wyżej, że możesz użyć innego mailera. Jako przykład podałem phpmailer, tu link:


https://github.com/PHPMailer/PHPMailer

 

Ok, wgrałem zawartość PHPMailera do głównego folderu, ale nadal nic się nie dzieje...

Opublikowano
22 godziny temu, SuchyBGC napisał:

Czego używasz jako serwera www? Jeśli działasz na localhost to żeby skrypt PHP zadziałał musisz mieć interpreter PHP, a jeśli masz to musisz mieć także php.ini, nie ma innej możliwości.

Teraz będę strzelał ale według mnie nie masz serwera www, odpalasz po prostu plik .html, on otwiera ci się w oknie domyślnej przeglądarki. Jeśli tak jest to nic dziwnego, że nic się nie dzieje po kliknięciu wyślij. Potrzebujesz pakietu serwera www, możesz oczywiście wszystko pobierać po kolei i instalować ale po co skoro jest gotowe narzędzie takie jak np. XAMPP. Napisz czy posiadasz coś takiego, bo jeśli nie to nasze sugestie dotyczące kodu i tak nic nie poprawią.

Pliki mam na serwerze FTP w nazwa.pl

Opublikowano
<div id="send_form_status"></div>
<form method="post" action="/send_form.php" id="contact_form">
     <div><label for="name">Imię i nazwisko</label></div>
     <div><input type="text" name="name" id="name" class="formField" /></div>
     <div><label for="phone">Numer telefonu</label></div>
     <div><input type="text" name="phone" id="phone" class="formField" /></div>
     <div><label for="email">Adres email</label></div>
     <div><input type="text" name="email" id="email" class="formField" /></div>
     <div><label for="message">Treść wiadomości</label></div>
     <div><textarea name="message" id="message" class="formField"></textarea></div>
     <div><button id="sendBtn">Wyślij</button></div>
</form>

^ kod HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
  $("html").on("submit","#contact_form",function(e){
    e.preventDefault();
    $("#send_form_status").html('').hide();
    var data=$("#contact_form").serialize();
    $.post("/send_form.php",data,function(res){
      $("#send_form_status").html(res.msg).show();
      if(res.status==1){ 
        $("#contact_form")[0].reset();
      } 
    });
  });
});
</script>

^ kod JS

<?php
header("content-type: application/json; charset=utf-8");
$name=isset($_POST['name']) ? $_POST['name'] : "";
$email=isset($_POST['email']) ? $_POST['email'] : "";
$phone=isset($_POST['phone']) ? $_POST['phone'] : "";
$message=isset($_POST['message']) ? $_POST['message'] : "";
if($name && $email && $phone && $message){
 $headers = "MIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: 8bit";
 $message_body="Formularz kontaktowy wysłany ze strony www.example.com\n";
 $message_body.="Imię i nazwisko: $name\n";
 $message_body.="Adres email: $email\n";
 $message_body.="Numer telefonu: $phone\n\n";
 $message_body.=$message;
 if(mail("email@adresata","Formularz kontaktowy",$message_body,$headers)){
 $json=array("status"=>1,"msg"=>"<p class='status_ok'>Twój formularz został pomyślnie wysłany.</p>");
 }
 else{
 $json=array("status"=>0,"msg"=>"<p class='status_err'>Wystąpił problem z wysłaniem formularza.</p>"); 
 }
}
else{
 $json=array("status"=>0,"msg"=>"<p class='status_err'>Proszę wypełnić wszystkie pola przed wysłaniem.</p>"); 
}
echo json_encode($json);
exit;
?>

^ kod PHP

 

Ogólnie słyszałem, że trzeba ustawić jakiś plik php.ini...

Wie ktoś jak go ustawić, aby formularz działał?

Opublikowano
18 godzin temu, maxaz napisał:

Plik php.ini znajduje się w folderze, do którego zainstalowałeś PHP…

Sęk w tym, że ja nie instalowałem żadnego PHP.

Strona jest postawiona na czystym HTML+PHP i CSS.

7 godzin temu, IkjovskYY napisał:

Polecam napisać samemu lub poprosić kogoś... Największa pewność i skuteczność
To nie trudne ;)

Co Twoja odpowiedź wnosi do tematu i pomocy mi?

Pisałem już samemu, ale i tak nie działa tak jak powinno, więc proszę tutaj o pomoc.

Opublikowano
Cytat

Sęk w tym, że ja nie instalowałem żadnego PHP.

Strona jest postawiona na czystym HTML+PHP

Naprawdę nie widzisz problemu? xD

Non omnis moriar.

Opublikowano

Na hostingach nie ma dostępu do co całego php.ini, jest możliwość zmiany tylko paru rzeczy w zależności od hostingu. Będzie to gdzieś w ustawieniach w panelu jakby co.

Co do skryptu, generalnie działa. Nic się nie pokazuje wtedy gdy skrypt php wywali błąd, co się dzieje na przykład przy wysyłaniu za pomocą mail(). Hostingi chyba z automatu wyłączają pokazywanie błędów ze względów bezpieczeństwa. Nie powiem ci na 100% ale normalnie można sobie to włączyć gdzieś w panelu, wtedy sprawdzisz jaki jest błąd. Nie pojawi się on na stronie.html bo jquery nie przechwyci jsona bo wyżej będzie info o błędzie, musisz odpalić skrypt .php albo wywalić preventDefault na chwilę. Natknąłem się też na informację że nazwa.pl blokuje funkcje mail(), musisz poszukać czy to prawda bo nie jestem tego pewien. Jeśli jest to prawda to musisz użyć innego mailera, np. phpmailer. Na githubie masz przykłady, w necie jest tez pewnie milion poradników.

 

Opublikowano
Dnia 22.07.2018 o 19:22, maxaz napisał:

Naprawdę nie widzisz problemu? xD

Chodziło mi o to, że nie instalowałem żadnego oprogramowania czy coś w tym stylu..

Dnia 23.07.2018 o 11:45, SuchyBGC napisał:

php.ini - plik konfiguracyjny PHP.

Jeśli siedzisz na localhost i "nie instalowałeś żadnego PHP" to pewnie masz coś ala XAMPP/WAMP. W tym przypadku php.ini jest w folderze np. xampp/php. Musisz go skonfigurować pod wysyłanie maili.

Wystarczy wpisać w google i znaleźć odpowiedni poradnik w zależności od użytego pakietu serwera WWW. Tu masz do XAMPPA:


https://devcorner.pl/wysylac-maile-serwera-lokalnego-xampp/

Bez tej konfiguracji nie będziesz wstanie wysłać maila. PHP jest instalowane od razu z pakietem, jeśli nie miałbyś PHP to pliki .php odpalałyby się bez interpretacji, czyli tak jak czysty HTML więc musisz mieć to zainstalowane jak sugeruje kolega wyżej.

Po za tym nie napisałeś dokładnie co nie działa. Napisałeś że nic się nie dzieje, a z tego co widzę to powinien wyświetlić się chociaż jeden komunikat. Chodzi tylko i wyłącznie o wysłanie maila?

Dzięki za wyjaśnienie, ale nie posiadam pliku php.ini na 100%.

Pliki mam już na serwerze i też nie działa...

Nie wyświetla się żaden komunikat. Praktycznie nic się nie dzieje po kliknięciu "Wyślij" oprócz zresetowania pól.

Opublikowano
35 minut temu, maxaz napisał:

Czytałeś w ogóle to, co ci wysłałem?

Tak, ale problem w tym, że nie ma żadnego pliku php.ini

Opublikowano

Czego używasz jako serwera www? Jeśli działasz na localhost to żeby skrypt PHP zadziałał musisz mieć interpreter PHP, a jeśli masz to musisz mieć także php.ini, nie ma innej możliwości.

Teraz będę strzelał ale według mnie nie masz serwera www, odpalasz po prostu plik .html, on otwiera ci się w oknie domyślnej przeglądarki. Jeśli tak jest to nic dziwnego, że nic się nie dzieje po kliknięciu wyślij. Potrzebujesz pakietu serwera www, możesz oczywiście wszystko pobierać po kolei i instalować ale po co skoro jest gotowe narzędzie takie jak np. XAMPP. Napisz czy posiadasz coś takiego, bo jeśli nie to nasze sugestie dotyczące kodu i tak nic nie poprawią.

Opublikowano

Nie da się zrobić tego jakoś inaczej? Klient nie dał mi dostępu do panelu i raczej ciężko będzie z konfiguracją.

Opublikowano

php.ini - plik konfiguracyjny PHP.

Jeśli siedzisz na localhost i "nie instalowałeś żadnego PHP" to pewnie masz coś ala XAMPP/WAMP. W tym przypadku php.ini jest w folderze np. xampp/php. Musisz go skonfigurować pod wysyłanie maili.

Wystarczy wpisać w google i znaleźć odpowiedni poradnik w zależności od użytego pakietu serwera WWW. Tu masz do XAMPPA:

https://devcorner.pl/wysylac-maile-serwera-lokalnego-xampp/

Bez tej konfiguracji nie będziesz wstanie wysłać maila. PHP jest instalowane od razu z pakietem, jeśli nie miałbyś PHP to pliki .php odpalałyby się bez interpretacji, czyli tak jak czysty HTML więc musisz mieć to zainstalowane jak sugeruje kolega wyżej.

Po za tym nie napisałeś dokładnie co nie działa. Napisałeś że nic się nie dzieje, a z tego co widzę to powinien wyświetlić się chociaż jeden komunikat. Chodzi tylko i wyłącznie o wysłanie maila?

Opublikowano

Napisałem w poście wyżej, że możesz użyć innego mailera. Jako przykład podałem phpmailer, tu link:

https://github.com/PHPMailer/PHPMailer

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...