Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.05.2014, 15:29
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 1  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
По умолчанию Проблема отправки email через PHP

Доброго дня, форумчане! Подскажите мне, пожалуйста. Куда уходят в данный момент сообщения пользователей? мне бы хотелось, чтобы сообщения пользователей отправлялись лишь по адресу mariamarfi@mail.ru.


Код AS3:
//для начала все поля для ввода текста обнуляем
contact_name.text = contact_email.text = contact_subject.text = contact_message.text = message_status.text = "";
 
//добавляем слушатели событий для кнопок
//если клик то выполняй - submit
send_button.addEventListener(MouseEvent.CLICK, submit);
//если клик то выполняй - reset
reset_button.addEventListener(MouseEvent.CLICK, reset);
 
 
var timer:Timer;
var var_load:URLLoader = new URLLoader;
//переменную URL_request связываем с файлом sendemail.php
var URL_request:URLRequest = new URLRequest( "sendemail.php" );
//метод передачи данных - POST
URL_request.method = URLRequestMethod.POST;
 
//если нажата кнопка send_button
function submit(e:MouseEvent):void {
	//если какое-либо поле для ввода, является пустым,
	if( contact_name.text == "" || contact_email.text == "" || contact_subject.text == "" || contact_message.text == "" ) {
		//то выводим строку
		message_status.text = "Заполните все поля.";
		//иначе проверяем адрес на валидность(ф-ия описана ниже)
	} else if( !validate_email(contact_email.text) ) {
		//если условие верно, выводим...
		message_status.text = "Введите существующий адрес.";
		//иначе, (адрес верный)
	} else {
		message_status.text = "отправка...";
 
		//формируем строку, которая будет отправлена
		var email_data:String = "name=" + contact_name.text
							+ "&email=" + contact_email.text
							+ "&subject=" + contact_subject.text
							+ "&message=" + contact_message.text;
 
		var URL_vars:URLVariables = new URLVariables(email_data);
		URL_vars.dataFormat = URLLoaderDataFormat.TEXT;
 
		URL_request.data = URL_vars;
		var_load.load( URL_request );
		var_load.addEventListener(Event.COMPLETE, receive_response );
	}
}
 
//если нажата кнопка reset_button
function reset(e:MouseEvent):void {
	//обнуляем все поля для ввода
	contact_name.text = contact_email.text = contact_subject.text = contact_message.text = message_status.text = "";
}
 
//проверка введенного адреса e-mail
function validate_email(s:String):Boolean 
{
	//рег. выр. для проверки их наличия в адресе
	var p:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
	//собственно сама проверка
	var r:Object = p.exec(s);
	if( r == null ) 
	{
		return false;
	}
	return true;
}
 
//обработка ответа из sendemail.php
function receive_response(e:Event):void 
{
	var loader:URLLoader = URLLoader(e.target);
	var email_status = new URLVariables(loader.data).success;
 
	if( email_status == "yes" ) 
	{
		//если php саказал да выводим
		message_status.text = "Ваше сообщение отправлено!";
		//устанавливаем таймер
		timer = new Timer(500);
		//слушаем событие - истечение времени таймера, выполняем on_timer
		timer.addEventListener(TimerEvent.TIMER, on_timer);
		timer.start();
	} else 
	{
		//если php саказал нет
		message_status.text = "Ошибка отправки!";
	}
}
 
function on_timer(te:TimerEvent):void 
{
	if( timer.currentCount >= 10 ) 
	{
		//обнуляем поля ввода
		contact_name.text = contact_email.text = contact_subject.text = contact_message.text = message_status.text = "";
		//удаляем слушатель
		timer.removeEventListener(TimerEvent.TIMER, on_timer);
	}
}

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 "mariamarfi@mail.ru";
    
$client_ip $_SERVER['REMOTE_ADDR'];
    
$email_body "Name: $contact_name \nEmail: $sender \n\nSubject: $contact_subject \n\nMessage: \n\n$contact_message \n\nIP: $client_ip \n\nFlash Contact Form provided by http://www.mail.ru";        
    
$extra "From: $sender\r\n" "Reply-To: $sender \r\n" "X-Mailer: PHP/" phpversion();

    if( 
mail$receiver"Flash Contact Form - $contact_subject"$email_body$extra ) ) 
    {
        echo 
"success=yes";
    }
    else
    {
        echo 
"success=no";
    }
}
?>
Вложения
Тип файла: swf sender.swf (5.5 Кб, 27 просмотров)
Тип файла: rar RL.rar (17.0 Кб, 15 просмотров)

Старый 05.05.2014, 15:48
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
вся соль в том, как настроен сервер

Старый 05.05.2014, 16:16
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 3  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
для начала - локальный сервер. localhost

Добавлено через 2 минуты
Папка файлов находятся на диске C:\xampp\htdocs\RL\....

Вот решила проверить sendemail.php... почему-то ошибки выдались?

Код:
Notice: Undefined index: name in C:\xampp\htdocs\RL\sendemail.php on line 2

Notice: Undefined index: email in C:\xampp\htdocs\RL\sendemail.php on line 3

Notice: Undefined index: subject in C:\xampp\htdocs\RL\sendemail.php on line 4

Notice: Undefined index: message in C:\xampp\htdocs\RL\sendemail.php on line 5

Старый 05.05.2014, 17:02
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 4  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Цитата:
Вот решила проверить sendemail.php... почему-то ошибки выдались?
Ошибки потому что вы при вызове не указали переменные для массива $_POST.
Напишите что-то типа:
PHP код:
$contact_name "test"
$contact_email "test@mail.ru"
$contact_subject "test"
$contact_message "test"
Может ваши сообщения сохраняются на диске во временном каталоге, а не отправляются на почту? Не знаю какой у xampp путь.

Старый 05.05.2014, 18:33
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Может ваши сообщения сохраняются на диске во временном каталоге, а не отправляются на почту? Не знаю какой у xampp путь.
Даже скорее всего. Так делают большинство локальных серверов

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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