Autor | Zpráva | ||
---|---|---|---|
Petr Mátl Profil |
#1 · Zasláno: 21. 12. 2016, 15:01:41
Dobrý den, chtěl bych vás tady poprosit o pomoc. Nějakým způsobem se mi nedaří zprovoznit formulář tak, aby data z něho odcházela ve správném formátu. Stále přichází text s různými znaky a bez diakritiky. Nastavení mám vše na UTF-8, prošel jsme různá fora ale nenašel jsem odpověd.
Díky moc <?php header("Content-Type: text/html; Charset=UTF-8"); ?> <?php // check for form submission - if it doesn't exist then send back to contact form if (!isset($_POST['save']) || $_POST['save'] != 'contact') { //header('Location: index.php'); exit; echo "Ou, technický problém. Zkuste to prosím později"; } $name = $_POST['Name']; $email_address = $_POST['Email']; $message = $_POST['Message']; if (empty($name)) $error = 'You must enter your name.'; elseif (empty($email_address)) $error = 'You must enter your email address.'; elseif (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email_address)) $error = 'You must enter a valid email address.'; elseif (empty($message)) $error = 'You must enter a message.'; if (isset($error)) { //header('Location: index.php?e='.urlencode($error)); exit; } $headers = "From: $email_address\r\n"; $headers .= "Reply-To: $email_address\r\n"; $email_content = "Name: $name\n"; $email_content .= "Email Address: $email_address\n"; $email_content .= "Message:\n\n$message"; mail ('v@zamecnictvikaspar.cz ', 'Z WEBOVÝCH STRÁNEK - Zájemce o tvé služby', $email_content, $headers); //header('Location: index.php?s='.urlencode('Thank you for your message.')); exit; echo '<div class="alert alert-success"> <a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">x</a> <img src="images/error-message.jpg" class="error-img" alt="error"> </div>'; //echo "Vaše zpráva byla úspešne odeslána. Budu Vás kontaktovat co nejdríve."; ?> |
||
Lonanek Profil |
#2 · Zasláno: 21. 12. 2016, 15:18:43
Pokud se jedná o doménu uvedenou v kódu, pak na ni vidím zcela jiné názvy POST proměnných.
Konkrétně tam není Name ale names, Email ale emails, Message ale messages. |
||
Davex Profil |
#3 · Zasláno: 21. 12. 2016, 19:33:05
Petr Mátl:
„Nastavení mám vše na UTF-8“ V tom odeslaném e-mailu nemáš definované kódování obsahu. Viz Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky. nebo použij třídu PHPMailer. |
||
Petr Mátl Profil |
#4 · Zasláno: 21. 12. 2016, 22:42:42
Davex:
Nevím jak a do čeho zasáhnout, tenhle formulář mě těžce školí. Dokázal by jsi mi poradit, co tam jako přesně uvést? Díky moc |
||
CZechBoY Profil |
<?php header("Content-Type: text/html; Charset=UTF-8"); // check for form submission - if it doesn't exist then send back to contact form if (!isset($_POST['save']) || $_POST['save'] != 'contact') { //header('Location: index.php'); exit; echo "Ou, technický problém. Zkuste to prosím později"; exit; } $name = $_POST['Name']; $email_address = $_POST['Email']; $message = $_POST['Message']; if (empty($name)) { $error = 'You must enter your name.'; } elseif (empty($email_address)) { $error = 'You must enter your email address.'; } elseif (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email_address)) { $error = 'You must enter a valid email address.'; } elseif (empty($message)) { $error = 'You must enter a message.'; } if (isset($error)) { echo $error; exit; } $headers = ''; $headers .= "MIME-Version: 1.0" . PHP_EOL; $headers .= "From: $email_address" . PHP_EOL; $headers .= "Reply-To: $email_address" . PHP_EOL; $headers .= "Content-Type: text/plain; charset=\"utf-8\"" . PHP_EOL; $headers .= "Content-Transfer-Encoding: base64" . PHP_EOL; $email_content = "Name: $name\n"; $email_content .= "Email Address: $email_address\n"; $email_content .= "Message:\n\n$message"; $subject_plain = 'Z WEBOVÝCH STRÁNEK - Zájemce o tvé služby'; $subject = "=?utf-8?B?" . base64_encode(autoUTF($subject_plain)) . "?="; mail ('v@zamecnictvikaspar.cz ', $subject, base64_encode(autoUTF($email_content)), $headers); echo '<div class="alert alert-success"> <a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">x</a> <img src="images/error-message.jpg" class="error-img" alt="error"> </div>'; echo "Vaše zpráva byla úspešne odeslána. Budu Vás kontaktovat co nejdríve."; function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } ?> |
||
Petr Mátl Profil |
#6 · Zasláno: 21. 12. 2016, 23:24:17
CZechBoY:
Děkuji, ale ani toto mi nepomohlo, nyní to při odeslání vůbec neodešle data - pouze vyskočí hláška "Ou, technický problém. Zkuste to prosím později" |
||
Davex Profil |
Petr Mátl:
„nyní to při odeslání vůbec neodešle data“ Pak bude zřejmě chyba ve formuláři, že neobsahuje <input name=save> s hodnotou contact nebo není odeslán metodou POST.
|
||
Petr Mátl Profil |
#8 · Zasláno: 22. 12. 2016, 00:38:24
Davex:
Díky, je to zapeklitý.., už od rána nad tím sedím a nedokážu to "rozkodovat" aby to fungovalo korektně, prošel jsem různá fóra a rady, ale nic, co by mi formulář zprovoznilo.. |
||
Davex Profil |
#9 · Zasláno: 22. 12. 2016, 01:10:49
Pokud se jedná o formulář na doméně z e-mailu v kódu, tak tam se formulář odesílá s pomocí jQuery poničeným AJAXem. Odeslání by se mělo opravit vymazáním řádku:
contentType : "multipart/form-data; charset=UTF-8", |
||
Petr Mátl Profil |
#10 · Zasláno: 22. 12. 2016, 11:00:56
Davex:
Ano přesně tak jedná se o doménu co je uvedená v emailu. Ovšem uvedený řádek se nenachází v daném kódu. Už jsem zkoušel různé možnosti a kdepak.. <?php header("Content-Type: text/HTML; Charset=utf-8"); // check for form submission - if it doesn't exist then send back to contact form if (!isset($_POST['save']) || $_POST['save'] != 'contact') { //header('Location: index.php'); exit; echo "Ou, technický problém. Zkuste to prosím později"; exit; } $name = $_POST['names']; $email_address = $_POST['emails']; $message = $_POST['messages']; if (empty($name)) { $error = 'You must enter your name.'; } elseif (empty($email_address)) { $error = 'You must enter your email address.'; } elseif (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email_address)) { $error = 'You must enter a valid email address.'; } elseif (empty($message)) { $error = 'You must enter a message.'; } if (isset($error)) { echo $error; exit; } $headers = ''; $headers .= "MIME-Version: 1.0" . PHP_EOL; $headers .= "From: $email_address" . PHP_EOL; $headers .= "Reply-To: $email_address" . PHP_EOL; $headers .= "Content-Type: text/HTML; charset=\"utf-8\"" . PHP_EOL; $headers .= "Content-Transfer-Encoding: base64" . PHP_EOL; $email_content = "Jméno: $name\n"; $email_content .= "Email: $email_address\n"; $email_content .= "Zpráva:\n\n$message"; $subject_plain = 'Z WEBOVÝCH STRÁNEK - Zájemce o tvé služby'; $subject = "=?utf-8?B?" . base64_encode(autoUTF($subject_plain)) . "?="; mail ('vladimir@zamecnictvikaspar.cz ', $subject, base64_encode(autoUTF($email_content)), $headers); echo '<div class="alert alert-success"> <a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">x</a> <img src="images/error-message.jpg" class="error-img" alt="error"> </div>'; echo "Vaše zpráva byla úspešne odeslána. Budu Vás kontaktovat co nejdríve."; function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } ?> |
||
Lonanek Profil |
#11 · Zasláno: 22. 12. 2016, 16:16:20
Petr Mátl:
„Ovšem uvedený řádek se nenachází v daném kódu“ uvedený řádek se nachází v hlavičce stránky: <script> $(document).ready(function() { $("button").click(function(){ var name=$("#name").val(); var emails=$("#emails").val(); var message=$("#message").val(); var save=$("#save").val(); $.ajax({ type:"post", url:"contact-form-submission.php", contentType : "multipart/form-data; charset=UTF-8", data: { Name: name, Email: emails, Message: message, save:save }, success:function(data){ $("#info").html(data); } }); }); }); </script> |
||
Petr Mátl Profil |
#12 · Zasláno: 22. 12. 2016, 22:40:41
Chci vám všem poděkovat za pomoc!! :) Fakt moc díky, ušetřili jste mě dost času a trápení. Přeji Vám všem krásné Vánoce.
|
||
CZechBoY Profil |
#13 · Zasláno: 22. 12. 2016, 23:08:28
Tobe taky :-).
|
||
Časová prodleva: 8 let
|
0