Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Flash форма обратной связи + PHP (http://www.flasher.ru/forum/showthread.php?t=122669)

acerbook 16.03.2009 09:10

Flash форма обратной связи + PHP
 
Доброго времени суток.
В общем так...
Скачал флеш шаблон сайта...доделал/переделал и вот теперь встал вопрос такой.
Там(шаблон) есть встроенная форма обратной связи и ссылка идет потом на PHP файл. Изменил тамашний email на свой, но эффекта никакого...только натпись при отправке sending...
вот он код PHP (если понадобится что-то из флеш формы, то только скажите):
Код:

<?php
$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];

if( $contact_name == true )
{
        $sender = $contact_email;
        $receiver = "moi@mail.com"; <<<<----- Здесь я так понял надо изменить на свой ящик
        $client_ip = $_SERVER['REMOTE_ADDR'];
        $email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $contact_message \nIP: $client_ip \nFlash Contact Form provided by http://www.flashmo.com";               
        $extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" . phpversion();

        if( mail( $receiver, "Flash Contact Form - $subject", $email_body, $extra ) )
        {
                echo "success=yes";
        }
        else
        {
                echo "success=no";
        }
}
?>

Может еще должны быть доп. условия хоста?
Заранее спасибо

KODERart 16.03.2009 12:15

PHP файл положили на http сервер? Или он у вас просто на компьютере, в папке с флешкой, лежит и вы ждете пока он выполнится?

acerbook 16.03.2009 12:29

Цитата:

Сообщение от KODERart (Сообщение 805835)
PHP файл положили на http сервер? Или он у вас просто на компьютере, в папке с флешкой, лежит и вы ждете пока он выполнится?

Все лежит на сервере...
Вот код во Флеше
Код:

stop();
loadVariables("send_email.php?flashmo=" + random(1000), this, "POST"); <<<--- путь к файлу send_email.php {а что за ?flashmo=}????
message_status.text = "sending...";
var i = 0;
function check_status()
{
        if( success == "yes" )
        {
                message_status.text = "Your message was sent successfully!";
                play();
        }
        else if( success == "no" )
        {
                message_status.text = "Your message could not be sent. Please try again.";
                gotoAndStop("stop");;
        }
        if( i >= 20 )
                clearInterval(interval_id);
        i++;
}
var interval_id = setInterval(check_status, 400);

Сайт скачань с флешмо

Добавлено через 22 минуты
И еще такой вопрос...я так понял мне сказали что хосинг поддерживает asp, но не php . Можно ли заменить php на asp?

Kalabania 16.03.2009 22:19

Поставте Denwer и тестируйте сколько хотите отправку, если не работает скачайте другую(форму для отравки) их уйма в интернете

acerbook 17.03.2009 06:25

Цитата:

Сообщение от Kalabania (Сообщение 805983)
Поставте Denwer и тестируйте сколько хотите отправку, если не работает скачайте другую(форму для отравки) их уйма в интернете

Спасибо за дельный совет. Буду изучать.
Но хотелось бы все таки разобраться в этом, почему не работает именно здесь :)

Azazel7 24.04.2009 20:42

У меня схожая проблема. Установил сайт шаблонный. Изменил дизайн, залил контент. Все вроде бы здорово но вот форма обратной связи отказывается работать. Есть подозрения что код обратной связи присутствует в шаблоне не полностью.

К флешке есть файл contact.asp и contact.php

код из флешки
Код:

rec="ice@template-help.com";
serv="php";

var fields_descriptions= Array ("",
                                                                        Array("t1", "your_name", "Ваше имя:"),
                                                                        Array("t2", "your_email", "E-mail адрес:"),
                                                                        Array("t3", "telephone", "Телефон:"),
                                                                        Array("t4", "message", "Ваше сообщение:"),
                                                                        Array("t5", "field_2", "E-mail:"),
                                                                        Array("t6", "field_3", "Address:"),
                                                                        Array("t7", "field_4", "fax:")
                                                                );

function reset_txt(name,name2,value) {
                path=eval(_target);
                path[name2]=value;
       
        this[name].onSetFocus=function() {
                path=eval(_target);
                if(path[name2]==value) { path[name2]="";}
        }
       
        this[name].onKillFocus=function() {
                path=eval(_target);
                if(path[name2]=="") { path[name2]=value;}
        }
}


for (i=1; i<=fields_descriptions.length; i++) {
        reset_txt("t"+i, fields_descriptions[i][1], fields_descriptions[i][2]);
}

код contact.php
Код:

<center>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p><strong>Ваше сообщение успешно отправлено!</strong></p>
</center>
<script>
        resizeTo(300, 300);
</script>

и код contact.asp
Код:

<%
        for i=1 to 7
                message=Request("message")
        next
                message=message + Request("message")       
                smtpServer = "mail.l-ka.ru"
                smtpPort = 25
               

                name = Request("Your_Name:")
                Set myMail = CreateObject("CDO.Message")
                myMail.Subject = "from " & name
                myMail.From = Request("Your_Email:")
                myMail.To = Request("profoto@l-ka.ru")
                myMail.HTMLBody = "<html><head><title>Contact letter</title></head><body><br>" & message & "</body></html>"
                myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServer
                myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpPort
                myMail.Configuration.Fields.Update
                myMail.Send
       
%>

Добавлено через 2 минуты
При отправке формы пишет Ваше сообщение успешно отправлено! но письмо ессно не приходит.

Nyra 22.05.2009 17:11

Добрый день, а у меня форма обратной связи AS3 хорошо работает и на моем хостинге, и просто при напуске свф на локальной машине, а вот при загрузке на vkontacte не отправляет сообщение с него.
Во флеше использую функцию Security.loadPolicyFile();, видимо не работает.
Подскажите можно ли для моих задач использовать функцию System.security.allowDomain(); и, если не затруднит, как?

gavgav 07.07.2009 05:22

Хочу поделится.
Три дня с этим флэшом сексом занимался.
Да то что в темплатах всё круто и неработает почемуто. Так вот, мона сделать так
(пишу для такихже особо одарённых как я)
на кнопку SEND поставить вот это:


on (release) {
if (name eq "" or phone eq "" or email eq "" or message eq "" or company eq "") { //<--or и тд eq ""
error.gotoAndPlay("error");
} else {
loadVariablesNum("vmail.php", 0, "POST");
error.gotoAndPlay("sent");
name = "";
phone = "";
email = "";
message = "";
company = "";
}
}

Причем текст-поля "Variable" должны быть соотв. "name, email, phone, message и т.д.
внимание не "Instance name".

потом сделайте отдельно фрэймы типа Massege was send Это "sent" и "please fill all text boxes" ("error") пометьте скрипты фрэймов как "stop();" поставте кнопки "back"

текст "vmail.php"

PHP код:

<? 
if (isset($HTTP_POST_VARS)) { 

$name $HTTP_POST_VARS["name"];   //<---"""_VARS["name""" это тот что из флеша 
$phone $HTTP_POST_VARS["phone"];
$email $HTTP_POST_VARS["email"]; 
$message $HTTP_POST_VARS["message"];
$company $HTTP_POST_VARS["company"];  


$to "gavgav@zlaya.net";   //<---- email 
$subject "SITE CONTACT"
$msg .= "Senders Name: " ."$name\n\n"
$msg .= "Phone: " ."$phone\n\n"
$msg .= "Email: " ."$email\n\n"
$msg .= "Message: " ."$message\n\n";
$msg .= "company: " ."$company\n\n"
$msg .= "This message was sent to you from My Site Contact Form.\n\n"
$msg .= "Do not reply to this email directly."

mail($to$subject$msg"From: My Site Contact Form\nReply-To: $email\n"); 

?>



если не сработает то сотрите тот фрэйм-скрипт там где есть
rec = "ice@template-help.com";
serv = "php";


это всё простенько а главное реботает надо тока шоб хвост-сервер поддерживал ПХП.

У меня сработало

вот ссылки га инф

http://www.ozzu.com/flash-forum/send...sh-t83259.html
туториал
http://info.template-help.com/files/..._form_work.swf
лично у меня по туторолу приходило пустое письмо на емайл.
дерзайте

Добавлено через 27 часов 32 минуты


Azazel7 какой код кнопки СЕНД должно быть примерно так


on(rollOver)
{
this.gotoAndPlay("s1");
}on(rollOut, releaseOutside)
{
this.gotoAndPlay("s2");
}on(release)
{
for (i=1; i<_parent.fields_descriptions.length; i++) {
if (_parent[_parent.fields_descriptions[i][1]]!=_parent.fields_descriptions[i][2]) {
this[_parent.fields_descriptions[i][1]]=_parent[_parent.fields_descriptions[i][1]]+"&777&"+_parent.fields_descriptions[i][2];
}
_parent.reset_txt(_parent["t"+i], _parent.fields_descriptions[i][1], _parent.fields_descriptions[i][2]);
}

this.recipient=_parent.rec;
getURL("contact."+_parent.serv, "_blank", "POST");



если так то contact.php должен быть примерно



[php]<?
Error_Reporting(E_ALL & ~E_NOTICE);

while ($request = current($_REQUEST)) {
if (key($_REQUEST)!='recipient') {
$pre_array=split ("&777&", $request);

$post_vars[key($_REQUEST)][0]=preg_replace ("/<[^>]*>/", "", $pre_array[0]);
$post_vars[key($_REQUEST)][1]=preg_replace ("/<[^>]*>/", "", $pre_array[1]);
}
next($_REQUEST);
}



reset($post_vars);


$subject="From ".$post_vars['your_name'][0] ;
$headers= "From: ".$post_vars['your_email'][0] ."\n";
$headers.='Content-type: text/html; charset=cp1251'; //<--cp1251 чтобы на
$headers .= "Content-Transfer-Encoding: 8bit"; //<--8bit русском приходило
$message='';
while ($mess = current($post_vars)) {
if ((key($post_vars)!="i") && (key($post_vars)!="your_email") && (key($post_vars)!="your_name")) {

$message.="<strong>".$mess[1]."</strong>&nbsp;&nbsp;&nbsp;".$mess[0]."<br>";
}
next($post_vars);
}

mail($_REQUEST['recipient'], $subject, $message, $headers);

?>

<html>
<body bgcolor="#282E2C">
<div align="center" style="margin-top:60px;color:#FFFFFF;font-size:11px;font-family:Tahoma;font-weight:bold">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
Ваше сообщение успешно отправлено!
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
Your message was sent. Thank you!
</div>
</body>





а тот что у тебя ваше пустой там просто показывает надпись

AnyMe 27.06.2011 01:08

Привет ребята! А кто нибудь пробовал делать форму подписки для SmartResponder на flash. И вообще такое возможно???

desancheg 28.06.2011 08:42

на Action Script 1.0 - 2.0, делал так (упрощю для наглядности, вообще можно понакрутить разной всячины):

1. создаём слой (form), на нём рисуем поля для заполнения:
a) (вводимый текст) name_txt - тут будет имя
b) (вводимый текст) email_txt - мыло для обратной связи
с) (вводимый текст) message_txt - ну понятно, текст сообщения
d) (динамический текст) erroLog - тут будут высвечиваться сообщения об ошибках

2. делаем кнопку, на неё пишем:
Код AS1/AS2:

on (release) {
        // отправляемся нажатием кнопки на проверку заполнения форм
        validateForm();
}

3. создаём новый слой (script_validate), в первом кадре пишем:
Код AS1/AS2:

//стопорим кадр (чтобы голова не закружилась)
stop();
errors = new Array();
//на всякий пожарный очищаем формы
function clearForm() {
        name_txt.text = "";
        email_txt.text = "";
        message_txt.text = "";
        errorLog.text = "";
        errors.length = 0;
}
 
//проверка заполнения поля name_txt
function validateFame() {
        if (name_txt.text.length < 2 || isNaN(name_txt.text) == false) {
                errors.push("Вы не ввели имя");
        }
}
 
//проверка заполнения поля email_txt
function validateFame() {
        if (email_txt.text.length < 2 || isNaN(email_txt.text) == false) {
                errors.push("Вы не ввели адрес эл.почты");
        }
}
 
//проверка заполнения поля message_txt
function validateFame() {
        if (message_txt.text.length < 2 || isNaN(message_txt.text) == false) {
                errors.push("Вы не ввели текст сообщения");
        }
}
//собственно сам скрипт проверки заполнения текстовых полей
function validateForm() {
        errorLog.text = "";
        errors.length = 0;
        validateName();
        validateEmail();
        validateMessage()
        if (errors.length > 0) {
                var i = -1;
                while (++i < errors.length) {
                        errorLog.text += errors[i] + newline;
                }
        } else {
        //если все хорошо, отсылаем данные дальше, второй частью отсылаем мувик на сцену 2 - где стопим и выдаём сообщение - отправлено!
        F_sendMail(name_txt.text,email_txt.text,message_txt.text ); gotoAndPlay("Scene 2", 1);
        }
}

4. делаем новый слой (script_send), в первом кадре пишем (почему в разных слоях? - мне так проще, хотите объединяйте):
Код AS1/AS2:

//Функция отправки сообщения
F_sendMail = function (Name, Email, Message) {
        // Создаём мувик для хранения переменных
        _root.createEmptyMovieClip("v", 120);
        v.name = Name;
        v.email = Email;
        v.message = Message;
        // Отправляем данный php - скрипту - адрес сайта где лежит PHP и название файла! адрес лучше указывать полный! о то бывает и не срабывает :(
        v.loadVariables("http://www.yoursite.com/mail.php", "POST");
};
// Что бы не было проблем с кодировкой при передачи текста php
System.useCodepage = true;

5. делаем PHP (называем - понятно: mail.php) (укладываем - понятно: http://www.yousite.com):
PHP код:

<?php
    $name 
$_POST['name'];
    
$email $_POST['email'];
    
$message $_POST['message'];
        
//создаём собственно сообщение, адрес электронки куда оно придёт и далее текст сообщения (можно конечно всё это украсить)
    
mail("youraddres@yoursite.com","Сообщение с сайта","Имя : $fame\n Эл.адрес: $name\n Сообщение : $message");
?>

6. создаём сцену 2 - там делаем полностью идентичный мувик (нашему мувику с формами) но пишем большими буквами "отправлено", собственно на кнопку вешаем (лучше сделать кнопку, вдруг человечек захочет ещё чего отослать):
Код AS1/AS2:

on (release) {
        gotoAndPlay("Scene 1", 1);
}

7. закидываем PHP и SWF на сайт или локалхост (не забываем править пути и имена, если на локалхосте то инет должен быть на машине) SWF вешаем на страницу и пробуем (вообще если всё сделали как надо работать будет 100% - сам такой пользуюсь на сайтах), при желании и усилиях, ну и знаниях соответственно можно усложнить и разукрасить как вам будет угодно.

P.S. есть одна во всём этом проблема - на хосте может стоять запрет на отслыку почты через (скрипты и формы), на большинстве хостов с этим проблем нет, но встречается и фигня, несколько часов бился (не отпраялет письмо хоть ты тресни) - позвонил в службу тех.поддержки хостинга и задал вопрос в лоб - что надо сделать и где чего у них включить и приписать, объяснили - РАБОТАЕТ


Часовой пояс GMT +4, время: 19:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.