![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 12.11.2017 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z formularzem kontaktowym na stronie, po wciśnięciu przycisku wyślij - dane są pobierane i wysłane na e-mail natomiast na stronie nie wyświetla się potwierdzenie o wysłaniu wiadomości. Poniżej wklejam treść pliku php. Z góry dziękuje za odpowiedzi.
<?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 http://fotoplatinum.pl\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("kontakt@fotoplatinum.nazwa.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; ?> |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 9 Dołączył: 16.02.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Twój skrypt po wysłaniu e-maila generuje JSON a nie HTML. JSON musi być przetworzony na HTML żeby wyświetlił się w przeglądarce. Zapewne robi to jakiś skrypt javascript i pewnie to on ma problemy z wyświetleniem komunikatu. Najczęstszy błąd to nieprawidłowa nazwa atrybutu ID (lub brak nazwy) dla elementu DIV w którym ten skrypt ma wyświetlić komunikat. Np powinno być: <div id="result"></div> a jest: <div id="pokaz_komunikat"></div>
Jeżeli jest to jakieś gotowe rozwiązanie typu "Contact form" to zapewne ma plik "js/contact-form.js" i tam albo się definiuje nazwę tego elementu albo jest na sztywno wpisana do skryptu. Jak jest jakiś example to najlepiej tam popatrzeć. Poza tym bezpieczeństwo tego skryptu jest delikatnie mówiąc dalekie od ideału. Coś takiego: $name=isset($_POST['name']) ? $_POST['name'] : ""; oznacza że w e-mailu wysyłane są dane bezpośrednio wpisane przez kogoś w formularzu bez jakiejkolwiek filtracji. Czyli można wstawić tam różne złe rzeczy. -------------------- Wszystko należy robić najprościej jak się da, ale nie prościej
Albert Einstein |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:47 |