Вход

Просмотр полной версии : Flash + php + email


Viper
02.06.2006, 11:05
Тут возникла такая проблема что даже не знаю туда ли написал...
Есть флеш-ролик, в нем несколько полей и кнопка для отправки.
Есть php скрипт который все это дело из полей отправляет на мыло.
Но беда в том что даже при указании кодировки windows-1251 в скрипте, на мыло все равно приходит письмо в кодировке UTF-8...

Вобсчем посмотреть можно тут - http://fancy.es/test/feedback.htm
а скачать тут - http://fancy.es/test/feedback.zip

Если кто знает в чем проблема, помогите плиззз.... Оч. нуно...
ЗЫ! Сам я в пхп не силен.

J.Carot
03.06.2006, 12:12
А у тебя в кодировке UTF-8 отображается коракулями чтоли?
вот так попробуй:

<?php

// (c) -=HTDX=- 20/05/2006 e-mail: Hitadextr@gmail.com


// Здесь указываем e-mail адрес, на который будут приходить сообщения
$email = 'hitadextr@gmail.com';
$subject = 'Message from web site';

//foreach ($HTTP_POST_VARS as $var) {
foreach ($HTTP_POST_VARS as $key => $value) {
$text .= "$key = $value \n";
}

$from = $HTTP_POST_VARS['name'] . ' ' . $HTTP_POST_VARS['email'];
mail($email,$subject,$text,"From: $from\nReply-To: $from\n");

?>

этот файл по умолчанию называется - mailform.php
Вот этот код в html документ с кодировкой Win=1251

<form method="POST" action="mailform.php">

А вообще не мешало-бы в файл *php положить в башню вот это:
<html>
<head>
<title>Просто страница</title>
</head>
<body>
<meta content="text/html; charset=windows-1251" http-equiv=Content-Type>
Здесь начинается твой скрипт php...
</body>
</head>

Cоответственно Файл оставляешь с расширением *PHP!
Хотя может и не помочь...можно попробывать с помощью переменной.

Vadya corp.
04.06.2006, 09:29
У меня была похожая проблема в simple_xml. Я нашел одну встроенную в php функцию, которая переводит из utf8 в ISO-8859-1, который отображается нормально.

В общем текст у тебя скрипт получает через переменную $message и $name. Их надо обработать:

<?
$to = "viper@viper.name";
$msg = "$name\n\n";
$msg .= "$message\n\n";
$msg = utf8_decode($msg);
$add_headers .= "Content-Type: text/plain; charset=Windows-1251\r\n";
mail($to, $subject, $msg, $add_headers);
?>

Viper
05.06.2006, 10:45
to HTDX дело в том что заголовок письма приходит в utf-8 а сам текст письма одни вопросики на всех кодировках...

скрипт уже выглядит так
<?
$to = "mail@mail.com";
$msg = "$name\n\n";
$msg .= "$message\n\n";
$msg = utf8_decode($msg);
$add_headers .= "Content-Transfer-Encoding: 8bit\r\n";
$add_headers .= "Content-Type: text/plain; charset=Windows-1251\r\n";
mail($to, $subject, $msg, $add_headers);
?>

J.Carot
05.06.2006, 12:31
Viper, посмотрю что можно сделать.Отпишусь чуть позже.Пиши в приват по всем вопросам.

Xo
06.06.2006, 09:50
Viper А чтоб сама флешка заработала, нужно предопределить твои переменные. Скажим в 1 кадре перед командой stop();

var
new_name=new_subject=new_message=new_email = "";
stop();

переменные твои изменил, ибо ранее использовались зарегистрированные.

Или без предопределения, в скрипте для кнопки send заменить "" на undefined

on (release) {
if (new_name == undefined || new_subject == undefined || new_message == undefined || new_email == undefined) {
error = "Error! One or more fields is empty.";
stop();
} else {
loadVariablesNum("form.php", 0, "POST");
gotoAndStop(2);
}
}

J.Carot
06.06.2006, 13:40
Viper, а ты с помощью чего читаешь это письмо с каракулями? Случаем не через почтовый клиент? Если да, то оно у тебя так и будет, поскольку эти программы поддерживают кодировку koi по дефалту...
А вообще можно так попробывать:
В коде по умолчанию стоит конвертация в кодировку koi:
$body=convert_cyr_string (stripslashes($body),w,k);
$subject=convert_cyr_string (stripslashes($subject),w,k);
$sucess = mail($mailto, $subject, $body,
"From: $email
X-Mailer: PHP/" . phpversion());
Вообще попробуй сначала так и открой программой не получится, подставь другую кодировку.
Код не мой.

Viper
09.06.2006, 09:40
все разобрался в чем прикол :)
вобсчем код такой для php:
<?
$to = "юзер@мыло.ком";
$msg = "$name\n\n";
$msg .= "$message\n\n";
$add_headers .= "Content-Transfer-Encoding: 8bit\r\n";
$add_headers .= "Content-Type: text/plain; charset=Windows-1251\r\n";
mail($to, $subject, $msg, $add_headers);
?>

в плешке на кнопку send код:
on (release) {
if (new_name == undefined || new_subject == undefined || new_message == undefined || new_email == undefined) {
error = "Error! One or more fields is empty.";
stop();
} else {
loadVariablesNum("form.php", 0, "POST");
gotoAndStop(2);
}
}

а в первом кадре сцены:
System.useCodepage = true;
var new_name=new_subject=new_message=new_email = "";
stop();

TheBAT 3 отображает и заголовок и тело письма нормально в windows-1251

всем спасибо за советы и помощь!

Xo
09.06.2006, 12:21
Viper ! ты не обратил внимание на мое
Или без предопределения, в скрипте для кнопки send заменить "" на undefined
иначе у тебя флешка вновь не будет работать :(

Давай так: в первом кадре все оставляй как есть, а вот для кнопки "send" такой теперь скрипт будет:

on (release) {
if (new_name == "" || new_subject == "" || new_message == "" || new_email == "") {
error = "Error! One or more fields is empty.";
stop();
} else {
loadVariablesNum("form.php", 0, "POST");
gotoAndStop(2);
}

Viper
13.06.2006, 16:31
Expredes (http://foxter.ru/member.php?u=35) спасибо :) переписал :) все работает :)