Контакт форма с добър Encoding.

Готови кодове за по-голяма атрактивност
Post Reply
k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Контакт форма с добър Encoding.

Post by k0kicha » Mon Sep 30, 2013 10:40 am

Дълго време търсих из всичките подобни теми за работещи контакт форми. Изпробвах почти всички и все без успех.

Изработвам всичко както трябва, задължителни полета, попълва се, изпраща се, но във емайла всичко излиза на "маймунки". Пробвах, променях charset... единственото до което стигам е имената на полетата да излязат на български, а попълненото в тях "маймунки" и обратното.

Има ли някой готова или идея как да се направи работеща, контакт форма без тези проблеми?

Необходим ми е добре работещ html файл с формата и send.php файл. Аз ще си го реконструирам с моите изисквания.

User avatar
embaka
Гуру
Гуру
Posts: 2045
Joined: Sun May 04, 2008 8:43 pm
Answers: 105
Location: В. Търново
Contact:

Post by embaka » Mon Sep 30, 2013 1:48 pm

[php] /** Изпращане на UTF-8 мейлове **/
function _sendUTFMail($from, $to, $subject, $message, $cc='', $bcc='')
{

/** Обработка на информацията за подавателя **/

$_check_from = explode("<",$from );
if (sizeof($_check_from) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
{
$headers = "From: =?UTF-8?B?".base64_encode($_check_from[0])."?= <". $_check_from[1] . "\r\n";
}
else
{
$headers = "From: $from\r\n";
}

/** Обработка на информацията за получателята **/

$_check_to = explode("<",$to );
if (sizeof($_check_to) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
{
$to = "=?UTF-8?B?".base64_encode($_check_to[0])."?= <". $_check_to[1];
}
/** Обработка на информацията за получателята **/

if (function_exists('mb_detect_encoding'))
{
if (mb_detect_encoding($subject) == 'UTF-8')
{
$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
}
else
{
$subject = mb_convert_encoding($subject, 'UTF-8');
$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
}
}
else
{
$subject="=?UTF-8?B?".base64_encode($subject)."?=\n"; // За да сме сигурни че заглавието ще е в UTF-8
}
/** Обработка на информацията за получателя на копие от съобщението**/
if($cc != '')
{
$_check_cc = explode("<",$cc );
if (sizeof($_check_cc) > 1) // Проверяваме дали е въведен текст освен E-mail адреса, ако да го енкодваме.
{
$headers .= "Cc: =?UTF-8?B?".base64_encode($cc[0])."?= <". $cc[1] . "\r\n";
}
else
{
$headers .="CC: $cc\r\n";
}
}

/** Обработка на информацията за получателя на скритото копие от съобщението **/

if($bcc != '')
{
$_check_bcc = explode("<", $bcc );
if (sizeof($_check_bcc) > 1)
{
$headers .= "Bcc: =?UTF-8?B?".base64_encode($bcc[0])."?= <". $bcc[1] . "\r\n";
}
else
{
$headers .= "Bcc: $bcc\r\n";
}
}

$headers .= "Content-Type: text/html; "
. "charset=UTF-8;\n"
. "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 8bit\n"
#. "Reply-To: info@dwdvideo.com\n"
. "X-Mailer: PHP\n";
return mail($to, $subject, $message, $headers);

}[/php]

k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Post by k0kicha » Mon Sep 30, 2013 3:10 pm

Това мисля, че е наистина добра работа. А имаш ли примерен html файл за формата ?

k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Post by k0kicha » Wed Oct 07, 2015 10:29 am

Някой може ли да се оправи с кода даден от колегата? Или код (линк) за читава контакт форма?

uphero
Потребител
Потребител
Posts: 773
Joined: Mon Feb 20, 2012 12:26 pm
Answers: 32
Location: Казанлък
Contact:

Post by uphero » Wed Oct 07, 2015 11:32 am

k0kicha wrote:Някой може ли да се оправи с кода даден от колегата? Или код (линк) за читава контакт форма?
Прди няколко години съм писал -
http://uphero.biz/skript-za-kontaktna-f ... kirilitsa/
виж дали ще ти свърши работа.

k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Post by k0kicha » Wed Oct 07, 2015 12:28 pm

Не разбирам това поле само защо трябва да го има??? Няма ли как да си праща автоматично на зададен мейл?

Code: Select all

        <input type="email" class="form-control" placeholder="Имейла на който ще се праща съобщението" name="to" required autofocus>
Иначе е уникална!

uphero
Потребител
Потребител
Posts: 773
Joined: Mon Feb 20, 2012 12:26 pm
Answers: 32
Location: Казанлък
Contact:

Post by uphero » Wed Oct 07, 2015 1:00 pm

k0kicha wrote:Не разбирам това поле само защо трябва да го има??? Няма ли как да си праща автоматично на зададен мейл?

Code: Select all

        <input type="email" class="form-control" placeholder="Имейла на който ще се праща съобщението" name="to" required autofocus>
Иначе е уникална!
Просто си добави:
$to = mail@mail.bg
вместо:
$to = htmlspecialchars($_POST['to']);

k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Post by k0kicha » Wed Oct 07, 2015 7:53 pm

Сбъгва се нещо, като направя промяната не излиза формата.

k0kicha
Турист
Турист
Posts: 274
Joined: Sun Dec 09, 2007 8:48 am

Post by k0kicha » Thu Oct 08, 2015 8:27 am

Оправих се, Благодаря ти!

Post Reply