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

question-closed Formularz kontaktowy php

Object Storage Arubacloud
0 głosów
623 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,400 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,510 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,400 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,180 p.)
Da się testować na localhost, tylko trzeba zainstalować apke do przechwytywania wiadomości.
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,400 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,180 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,180 p.)
komentarz 1 sierpnia 2018 przez User007 Bywalec (2,400 p.)
Hmm. Ciekawe, spróbuję wieczorem.
komentarz 1 sierpnia 2018 przez Ehlert Ekspert (212,790 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,510 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,180 p.)

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

komentarz 1 sierpnia 2018 przez User007 Bywalec (2,400 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,400 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,400 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,400 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 200 wizyt
pytanie zadane 11 stycznia 2023 w PHP przez Tadeusz Kwoka Nowicjusz (170 p.)
0 głosów
3 odpowiedzi 185 wizyt
pytanie zadane 30 sierpnia 2019 w PHP przez Ania2019 Użytkownik (530 p.)
0 głosów
1 odpowiedź 567 wizyt

92,624 zapytań

141,482 odpowiedzi

319,822 komentarzy

62,005 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...