Foxter.ru

Foxter.ru (https://www.foxter.ru/index.php)
-   Web-программирование (https://www.foxter.ru/forumdisplay.php?f=66)
-   -   Flash + php + email (https://www.foxter.ru/showthread.php?t=1951)

Viper 02.06.2006 11:05

Flash + php + email
 
Тут возникла такая проблема что даже не знаю туда ли написал...
Есть флеш-ролик, в нем несколько полей и кнопка для отправки.
Есть 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 код:

<?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
PHP код:

<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. Их надо обработать:
PHP код:

<?
$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:
PHP код:

$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 ! ты не обратил внимание на мое
Цитата:

Сообщение от Expredes (Сообщение 16944)
Или без предопределения, в скрипте для кнопки 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 спасибо :) переписал :) все работает :)


Часовой пояс GMT +3, время: 17:41.

Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.