• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Formularz kontaktowy php

0 głosów
1,248 wizyt
pytanie zadane 31 lipca 2018 w PHP przez pabloliquidar Nowicjusz (240 p.)
zamknięte 3 sierpnia 2018 przez pabloliquidar

Witam,

na wstępie informuje, że jestem laikiem w PHP. Stworzyłem stronę w HTMLu i wszystko jest już skończone ale jest jeden problem. Skopiowałem sobie skrypt do formularza, aby wysyłał mi dane na adres e-mail. Kod i formularz wyglądają tak:

 

<?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("mojemail@wp.pl","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;
?>

 
<div id="formularz">
<h2>Formularz kontaktowy</h2>
<form method="post" action="/send.php" id="contact_form">
     <div><label for="name"></label></div>
     <div><input type="text" name="name" id="name" class="formField" placeholder="Imię i nazwisko" onfocus="this.placeholder=''" onblur="this.placeholder='Imię i nazwisko'"/> </div>
     <div><label for="phone"></label></div>
     <div><input type="text" name="phone" id="phone" class="formField" placeholder="Numer telefonu" onfocus="this.placeholder=''" onblur="this.placeholder='Numer telefonu'"/> </div>
     <div><label for="email"></label></div>
     <div><input type="text" name="email" id="email" class="formField" placeholder="Adres email" onfocus="this.placeholder=''" onblur="this.placeholder='Adres email'"/> </div>
     <div><label for="message"></label></div>
     <div><textarea name="message" id="message" class="formField" placeholder="Treść wiadomości" onfocus="this.placeholder=''" onblur="this.placeholder='Treść wiadomości'"></textarea></div>
     <div><button id="sendBtn">Wyślij</button></div>
</form>
</div>


Po wpisaniu danych i kliknięciu "wyślij" dostaję normalnie informację o wysłaniu. Natomiast na pocztę nic nie przychodzi. E-mail sprawdzałem 100 razy zmieniałem też na inny, ale również nic nie przyszło. Dodatkowo jeżeli usunę skrypt js to przekierowuje mnie na moją stronę /send.php. Więc wszystko chyba jest ładnie połączone. Co mogę zrobić w tym przypadku? Zależy mi bardzo na tym formularzu. Pozdrawiam i z góry bardzo dziękuję

komentarz zamknięcia: Otrzymałem odpowiedź
komentarz 31 lipca 2018 przez User007 Bywalec (2,420 p.)
przeniesione 1 sierpnia 2018 przez User007
A sprawdzasz to na serwerze czy na localhost?
komentarz 31 lipca 2018 przez pabloliquidar Nowicjusz (240 p.)
Na localhost nie działa. 3 darmowe hostingi sprawdzone też
komentarz 31 lipca 2018 przez Tomek Sochacki Ekspert (227,490 p.)
<button id="sendBtn">Wyślij</button>

a dlaczego nie button type="submit" ?

komentarz 31 lipca 2018 przez pabloliquidar Nowicjusz (240 p.)
już zmieniam
komentarz 31 lipca 2018 przez pabloliquidar Nowicjusz (240 p.)
czy muszę coś w php zmienić?
komentarz 1 sierpnia 2018 przez pabloliquidar Nowicjusz (240 p.)

@Tomek Sochacki, jak mogę  edytować teraz

<button type="submit">

 w css?

2 odpowiedzi

+1 głos
odpowiedź 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
wybrane 3 sierpnia 2018 przez pabloliquidar
 
Najlepsza
Sprawy mają się tak.

Przekopiowałem dokładnie twój kod na mój serwer, zmieniając jedynie adres wysyłki na mój adres email (@gmail.com) i wszystko działa. Skrypt wysyła wiadomość.

Jedynie co zauważyłem to wiadomość trafia do "Spamu", więc sprawdź w spamie czy aby tam nie masz wysyłanych wiadomości.

Aby wiadomość nie przychodziła do spamu zmień w nagłówku "text/plain" na "text/html".

Druga sprawa to czy serwery z których korzystasz mają włączoną funkcję "mail", sprawdź to.

Na localhost nie będzie działać więc nawet nie próbuj. :)
komentarz 1 sierpnia 2018 przez pablop76 VIP (123,580 p.)
Da się testować na localhost, tylko trzeba zainstalować apke do przechwytywania wiadomości.
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
Chodziło mi o to że nie da się wysyłać w świat. A jakiej apki używasz do przechwytywania?
komentarz 1 sierpnia 2018 przez pablop76 VIP (123,580 p.)
edycja 1 sierpnia 2018 przez pablop76
Rzadko korzystam i nie pamiętam teraz, a nie jestem przy kompie. Jak będę po południu (po16:00) to napiszę.
komentarz 1 sierpnia 2018 przez pablop76 VIP (123,580 p.)
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
Hmm. Ciekawe, spróbuję wieczorem.
komentarz 1 sierpnia 2018 przez Ehlert Ekspert (215,070 p.)

Na localhost nie będzie działać więc nawet nie próbuj. :)

Ile razy widziałem taska, że maile ze środowisk developerskich lecą na produkcję... 

komentarz 1 sierpnia 2018 przez Tomek Sochacki Ekspert (227,490 p.)

Ile razy widziałem taska, że maile ze środowisk developerskich lecą na produkcję...

To tylko świadczy o jakości CR w firmach... :)

komentarz 1 sierpnia 2018 przez pabloliquidar Nowicjusz (240 p.)

Jak mogę sprawdzić czy serwer ma włączoną funkcję? Teraz korzystam z darmowych natomiast i tak muszę zaraz kupić jakiś płatny hosting. Możecie coś polecić przy okazji

komentarz 1 sierpnia 2018 przez pablop76 VIP (123,580 p.)

Aplikacja, o której wspomniałem to Test Mail Server Tool

komentarz 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
Dzięki.

Przepraszam wszystkich za wprowadzenie w błąd że się nie da wysłać z localhosta.
+1 głos
odpowiedź 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)

Wpisz sobie do skryptu taką instrukcję:

if ( function_exists( 'mail' ) )
{
    echo 'jest poczta';
}
else
{
    echo 'nie ma poczty';
}

lub wpisz phpinfo() i zobacz czy dla wiersza " sendmail_path " jest ustawiona jakaś ścieżka.

komentarz 1 sierpnia 2018 przez pabloliquidar Nowicjusz (240 p.)
Dzięki zaraz sprawdzę
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
A co do hostingu to ja polecam "linuxpl.com". Mają najlepszy "customer service" jaki widziałem. Na serwery też nie mogę narzekać.
komentarz 1 sierpnia 2018 przez pabloliquidar Nowicjusz (240 p.)
Dzięki bardzo
komentarz 1 sierpnia 2018 przez pabloliquidar Nowicjusz (240 p.)
Jak to jest, że tutaj kosztuje ten hosting 50zł/rok a np. w home.pl 12zł? Zastanawia mnie to ;p
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,420 p.)
Nie wiem dlaczego, ale miałem swego czasu styczność z home.pl i powiedziałem nigdy więcej. Już parę lat minęło od tego czasu i może coś się zmieniło, ale linuxpl nigdy mnie nie zawiódł. Może inni mają inną opinię na temat tych hostingów ale moja jest taka i jej nie zmienię.

Na linuxpl mają darmowy okres 14 dniowy więc możesz założyć konto i sprawdzić jak działa.

Podobne pytania

+1 głos
0 odpowiedzi 358 wizyt
pytanie zadane 11 stycznia 2023 w PHP przez Tadeusz Kwoka Nowicjusz (170 p.)
0 głosów
3 odpowiedzi 348 wizyt
pytanie zadane 30 sierpnia 2019 w PHP przez Ania2019 Użytkownik (530 p.)
0 głosów
1 odpowiedź 1,054 wizyt

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,137 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2658p. - dia-Chann
  2. 2510p. - DziarnowskiJ
  3. 2361p. - Łukasz Piwowar
  4. 2340p. - CC PL
  5. 2317p. - raydeal
  6. 2300p. - Adrian Wieprzkowicz
  7. 2243p. - rucin93
  8. 2117p. - Łukasz Eckert
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...