Контакт форма - проблем с кирилица...

C++ JAVA
triplesho7
Нов
Нов
Posts: 16
Joined: Fri Mar 06, 2020 8:54 pm

Контакт форма - проблем с кирилица...

Post by triplesho7 » Mon Mar 16, 2020 7:11 pm

Здравейте. Защо когато изпращат имейли от контакт формата ми в сайта на кирилица при мен излизат на маймуница. Трябва да бъдат само на латиница за да знам какво ме питат, което не е окей за съжалние... Някой може ли да помогне?

Ето и кода, който използвам:

Code: Select all

<?php
$name = htmlentities($_POST["name"]);
$email_from = htmlentities($_POST["email"]);
$subject = htmlentities($_POST["subject"]);
$message = htmlentities($_POST["message"]);

$email_to = "support@medenki.com";//replace with your email

$headers = "From: webmaster@example.com" . "rn" . "CC: ". $email_from; //This adds a from field, as well as CC"s the person submitting the request.


//Build the body of the eamil
$body = "Name: " . $name . "nn" . "Email: " . $email_from . "nn" . "Subject: " . $subject . "nn" . "message: " . $message;

$success = mail($email_to, "Contact from site X, regarding: ".$subject, $body,$headers);
?>
<!DOCTYPE HTML>
<html lang="en-US">

<head>
<?php if($success){  //If the email was sent correctly?>
<script>

alert("Благодаря Ви, че се свързахте. Ще се свържем с вас възможно най-скоро.");

</script>

<?php header("Location: ../index.php"); }else{?>
<script>

alert("При изпращането на имейла възникна грешка. Моля, опитайте отново по-късно.");

</script>

<?php header("Location: ../index.php");  } //If the email falied?>
</head>
Формата за контакт в сайта:

Code: Select all

<form action="send-contact.php" class="contact-form" name="contact-form" method="post">
<div class="row">
<div class="col-sm-6 cols">
<input type="text" name="name" required="required" placeholder="Име*">
</div>
<div class="col-sm-6 cols">
<input type="email" name="email" required="required" placeholder="Имейл*">
</div>
<div class="col-sm-6 cols">
<input type="text" name="subject" required="required" placeholder="Заглавие*">
</div>
<div class="col-sm-12 cols">
<textarea name="message" required="required" cols="30" rows="5" placeholder="Съобщение*"></textarea>
</div>
<div class="col-sm-12 cols">
<input type="submit" name="submit" value="Изпрати съобщение" class="btn btn-send">
</div>
</div>
</form>

User avatar
Windboy
Потребител
Потребител
Posts: 762
Joined: Tue Jan 02, 2007 3:21 pm

Re: Контакт форма - проблем с кирилица...

Post by Windboy » Mon Mar 16, 2020 7:35 pm

Едит:
В първият файл замести

Code: Select all

<html lang="en-US">
с

Code: Select all

<html lang="bg-BG" >
<meta charset="UTF-8">
Ако не се получи, свали файловете на компютъра си, отвори ги през notepad++ горе в менюто ще видиш encoding смени им формата на UTF-8 и ги качи отново на сървъра. Или просто пробвай в между
Last edited by Windboy on Mon Mar 16, 2020 7:44 pm, edited 3 times in total.

triplesho7
Нов
Нов
Posts: 16
Joined: Fri Mar 06, 2020 8:54 pm

Re: Контакт форма - проблем с кирилица...

Post by triplesho7 » Mon Mar 16, 2020 7:40 pm

Сега тръгнах да го правя, но са си на UTF-8

User avatar
Windboy
Потребител
Потребител
Posts: 762
Joined: Tue Jan 02, 2007 3:21 pm

Re: Контакт форма - проблем с кирилица...

Post by Windboy » Mon Mar 16, 2020 7:42 pm

triplesho7 wrote:
Mon Mar 16, 2020 7:40 pm
Сега тръгнах да го правя, но са си на UTF-8
Едитнах си мнението, пробвай и това.

triplesho7
Нов
Нов
Posts: 16
Joined: Fri Mar 06, 2020 8:54 pm

Re: Контакт форма - проблем с кирилица...

Post by triplesho7 » Mon Mar 16, 2020 8:12 pm

Много странно, заглавието на съобщението е на кирилица сега, но съобщението когато го отворя не. Ето какво излиза:

Code: Select all

Name: ИметоnnEmail: imeila@abv.bgnnSubject: заглавиетоnnmessage: съобщението

User avatar
Windboy
Потребител
Потребител
Posts: 762
Joined: Tue Jan 02, 2007 3:21 pm

Re: Контакт форма - проблем с кирилица...

Post by Windboy » Mon Mar 16, 2020 9:41 pm

Пробвай да добавиш под <?php

Code: Select all

utf8_encode ( string $body ) : string
Имай в предвид, че може да се счупи, нищо не разбирам от php. Проблема е в encodinga.

User avatar
Revelation
Web-tourist
Web-tourist
Posts: 920
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 65

Re: Контакт форма - проблем с кирилица...

Post by Revelation » Mon Mar 16, 2020 11:14 pm

Липсват ти хедъри за типа на съдържанието и кодирoвката.

Използвай някоя библиотека като PHPMailer или SwiftMailer. Ще си улесниш живота.

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3357
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Контакт форма - проблем с кирилица...

Post by dakata__92 » Tue Mar 17, 2020 10:48 am

Надявам се да имаш адекватно настроен SMTP !
Пробвай така:

if (!$headers) {
$rn = "\r\n";
$headers = 'Mime-Version: 1.0'.$rn.
'From: '$email_from.$rn.
'CC: '. $email_from.$rn.
'Content-Type: text/html; charset=UTF-8';
}

Code: Select all

<?php
$name = htmlentities($_POST["name"]);
$email_from = htmlentities($_POST["email"]);
$subject = htmlentities($_POST["subject"]);
$message = htmlentities($_POST["message"]);

$email_to = "support@medenki.com";//replace with your email

if (!$headers) {
	$rn = "\r\n";
	$headers  =	'Mime-Version: 1.0'.$rn.
				'From: '$email_from.$rn.
				'CC: '. $email_from.$rn.
				'Content-Type: text/html; charset=UTF-8';
}

//Build the body of the eamil
$body = "Name: " . $name . "nn" . "Email: " . $email_from . "nn" . "Subject: " . $subject . "nn" . "message: " . $message;

$success = mail($email_to, "Contact from site X, regarding: ".$subject, $body,$headers);
?>
<!DOCTYPE HTML>
<html lang="en-US">

<head>
<?php if($success){  //If the email was sent correctly?>
<script>

alert("Благодаря Ви, че се свързахте. Ще се свържем с вас възможно най-скоро.");

</script>

<?php header("Location: ../index.php"); }else{?>
<script>

alert("При изпращането на имейла възникна грешка. Моля, опитайте отново по-късно.");

</script>

<?php header("Location: ../index.php");  } //If the email falied?>
</head>

triplesho7
Нов
Нов
Posts: 16
Joined: Fri Mar 06, 2020 8:54 pm

Re: Контакт форма - проблем с кирилица...

Post by triplesho7 » Tue Mar 17, 2020 5:13 pm

Получи се, но защо при изпращане на имейла към мен при натискане на "ОК" не ме връща обратно към страницата. Така при натискането на F5 могат да ме заринат с едно и също съобщение хиляди пъти :shock:
Ето: http://medenki.com/contact.php

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3357
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Контакт форма - проблем с кирилица...

Post by dakata__92 » Tue Mar 17, 2020 6:06 pm

triplesho7 wrote:
Tue Mar 17, 2020 5:13 pm
Получи се, но защо при изпращане на имейла към мен при натискане на "ОК" не ме връща обратно към страницата. Така при натискането на F5 могат да ме заринат с едно и също съобщение хиляди пъти :shock:
Ето: http://medenki.com/contact.php
Имаш два хедъра сочещи на едно и също място index.php

Code: Select all

<?php header("Location: ../index.php"); }else{?>
<script>

alert("При изпращането на имейла възникна грешка. Моля, опитайте отново по-късно.");

</script>

<?php header("Location: ../index.php");  } //If the email falied?>
</head>

Post Reply