[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Submit формы заказа заканчивается "белым экраном"
псаломщик
файл index.php
<?php
ini_set("display_errors","1");
ini_set("display_startup_errors","1");
ini_set('error_reporting',E_ALL | E_STRICT);
define("CURRENT_WORKING_DIR",str_replace("\\","/",$dirname=dirname(__FILE__)));
require CURRENT_WORKING_DIR.'/f.php';
echo '<html>';
echo '<head>';
echo ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';
echo ' <title>'.file_get_contents('./content/title.php').'</title>';
echo ' <link rel="stylesheet" type="text/css" href="code/css/grid.css"/>';
echo ' <link rel="stylesheet" type="text/css" href="code/css/decor.css"/>';
echo ' <link rel="stylesheet" type="text/css" href="code/css/colors.css"/>';
echo ' <link rel="stylesheet" type="text/css" href="code/css/fonts.css"/>';
echo '</head>';
echo '<body>';
echo ' <div class="main">';
echo ' <div class="head">';
echo ' <img src="img/forms/SiteHead.jpg" width="980" height="122" alt="" title="" />';
echo ' <div class="menu">';
echo ' <div class="menu_catalog_head"><h1>КАТАЛОГ</h1></div>';
echo ' <div class="menu_point"><a href=index.php?operation=company >О компании</a></div>';
echo ' <div class="menu_point"><a href=index.php?operation=news >Новости</a></div>';
echo ' <div class="menu_point"><a href=index.php?operation=prices >Прайс-листы</a></div>';
echo ' <div class="menu_point"><a href=index.php?operation=order >Заказ</a></div>';
echo ' <div class="menu_point"><a href=index.php?operation=contacts>Контакты</a></div>';
echo ' </div>';
echo ' </div>';
echo ' <div class="page">';

if (!isset($_GET['catalogue_level'])) $_GET['catalogue_level']=1;
if (!isset($_GET['current_catalogue_level'])) $_GET['current_catalogue_level']=1;
if (!isset($_GET['catalogue_path'])) $_GET['catalogue_path']='';
if (!isset($_GET['operation'])) $_GET['operation']='start page';

switch($_GET['operation']) {
case 'start page': output_news(); break;
case 'catalogue' : output_catalogue_point($_GET['catalogue_path']); break;
case 'company' : output_about_company(); break;
case 'prices' : screen_prices('Прайс-листы',''); break; //screen_attantion_img('Извините! Раздел корректируется и недоступен...'); break;
case 'order' : orders_blank(); break;
case 'news' : output_news(); break;
case 'contacts' : output_contacts(); break;
default: output_news(); };

echo ' </div>';
echo ' </div>';
echo '</body>';
echo '</html>';
?>




Спустя 4 минуты, 10 секунд (24.09.2011 - 14:26) псаломщик написал(а):
файл f.php (c сокращениями)
function orders_blank() { 
echo '<div class="content">';
echo html_tag('h1','Заказ',1);
echo '<form action="order.php" method="get" name="form_zakaz">';
echo '<table>';
echo '<tr>';
echo '<td>'; echo '<p class="form">Ваше имя*</p>'; echo  
echo '<td>'; echo '<input type=text name="FIO" size=50 maxlength=50 class="form2">';
echo '<tr>';
echo '<td>'; echo '<p class="form">Организация</p>';
echo '<td>'; echo '<input type=text name="Firm" size=50 maxlength=50 class="form2" >';
echo '<tr>';
echo '<td>'; echo '<p class="form">Телефон*</p>';
echo '<td>'; echo '<input type=text name="telefon" size=50 maxlength=50 class="form2" >';
echo '<tr>';
echo '<td>'; echo '<p class="form">E-mail*</p>';
echo '<td>'; echo '<input type=text name="mail" size=50 maxlength=50 class="form2" >';
echo '<tr>';
echo '<td>'; echo '<p class="form">Адрес</p>';
echo '<td>'; echo '<input type=text name="adress" size=50 maxlength=50 class="form2" >';
echo '<tr>';
echo '<td>'; echo '<p class="form">Сам заказ<br>и дополнительные<br>комментарии</p>';
echo '<td>'; echo '<textarea name="order" rows="20" cols="100" class="form2"></textarea>';
echo '<tr>';
echo '<td>'; echo '<p class="form">Защитная информация: 5+3 = *:</p>';
echo '<td>'; echo '<input type=text name="code" size=50 value="" maxlength=50 class="form2">';
echo '</td>';
echo '</tr>';
echo '</table>';
echo '<p><input type="submit" name="submit" value="Отправить заказ" class="zakaz">';
echo '</form>';

echo '<p class="red">Звездочками (*) обозначены поля, обязательные для заполнения.</p><br>';
echo '</div>';
}

Спустя 51 секунда (24.09.2011 - 14:27) Игорь_Vasinsky написал(а):
используй bb-code -чтобы подсветить синтаксис своего листинга.

Спустя 1 минута, 18 секунд (24.09.2011 - 14:28) псаломщик написал(а):
order.php
<?
mail("mail@mail.ru", "Заказ продукции", "Здравствуйте! \nК вам поступил заказ от ".$FIO." \nМобильный телефон: ".$telefon." \n".$mail);
?>

Спустя 5 минут, 1 секунда (24.09.2011 - 14:33) псаломщик написал(а):
Но заказ на мыло приходит без проблем. В чем может быть дело?

2(Игорь_Vasinsky) попробую подсветить...

Спустя 10 секунд (24.09.2011 - 14:33) YVSIK написал(а):
псаломщик
ещё раз-ЗЗ) найди кнопочки в редакторе и поправь свои посты кнопочками оформляют стиль писанины вашей, такие есть на верху с буковками , мимо не пройти никак, называются они ВВ теги , это чтоб знать , а так никто читать не будет ))
Ещё неплохо-бы написать коменты к вашему коду, а так поди разбери что ты хочешь сказать !!
вопросы надо ставить коректно а не водить отвечающих мол сами должны знать что у меня не выходит ))

Спустя 5 минут, 23 секунды (24.09.2011 - 14:38) Игорь_Vasinsky написал(а):
Цитата
Ещё неплохо-бы написать коменты к вашему коду, а так поди разбери что ты хочешь сказать !!


Да там всё ясно.

Человек ищет помощь, а не наберает команду из таких же интересующихся.

Спустя 39 минут, 37 секунд (24.09.2011 - 15:18) Invis1ble написал(а):
псаломщик
Цитата
Но заказ на мыло приходит без проблем. В чем может быть дело?

так а в чем собственно проблема, ты не написал.
По коду все логично - в форме стоит в action'е order.php, скрипт order.php отрабатывает, отсылая письмо.

Спустя 9 минут (24.09.2011 - 15:27) псаломщик написал(а):
2(Invis1ble) - все по теме. После нажатия клавиши Submit осуществляется переход на order.php c "белым экраном" - все занавес. Как вернуться на страницу сайта с меню и изображениями?

Спустя 6 минут, 49 секунд (24.09.2011 - 15:34) Invis1ble написал(а):
Если под страницей сайта с меню и изображениями ты подразумеваешь index.php, то так
<?
mail("mail@mail.ru", "Заказ продукции", "Здравствуйте! \nК вам поступил заказ от ".$FIO." \nМобильный телефон: ".$telefon." \n".$mail);
header('Location: index.php');
?>

Спустя 1 день, 22 часа, 16 минут, 35 секунд (26.09.2011 - 13:50) псаломщик написал(а):
Invis1ble, благодарю - работает. Надо поподробнее изучить функцию header...

Теперь возник другой вопрос:
<?
$email_for_orders = file('./content/orders/EMailForOrders.txt');
mail($email_for_orders[0],"Заказ продукции","К вам поступил заказ от".$FIO."\nОрганизация:".$firm."\nМобильный телефон: ".$telefon."\nE-mail:".$mail."\nАдрес:".$address."\nЗаказ:".$order,"From: Ваш сайт <info@myslit.ru>\r\n");
header('Location: index.php');
?>

конструкция, то присылает письмо в почту, то ничего не приходит. Не могу понять в чем дело. То ли функция как-то некорректно работает, то ли почтовый сервер, то ли хостинг...

Спустя 16 минут, 57 секунд (26.09.2011 - 14:07) Winston написал(а):
Если на локалке тестишь, то письма будут в Z:\tmp\!sendmail
Если на хостинге, то попробуй на разные мейлы разослать, и посмотреть в спаме

Спустя 2 часа, 4 минуты, 36 секунд (26.09.2011 - 16:12) inpost написал(а):
псаломщик
irbis-team.com - тут посмотри про mail. Тебе нужно передавать заголовки письма, там кодировку.

Спустя 3 дня, 19 часов, 53 минуты, 26 секунд (30.09.2011 - 12:05) псаломщик написал(а):
inpost, воспользовался irbis-team.com - письма стали приходить. Только с кодировкой никак не могу разобраться. На разные почтовые серверы проходят разные комбинации. Привожу данный пример. Письмо отправляется в трех разных кодировках на серверы mail.ru и zmail.ru. В результате читаем только заголовок письма и только в кодировке windows-1251. Но в этой кодировке и тело письма с русским алфавитом не читается. Если кто подтолкнет к полезной мысли - буду благодарен...
<?
//сохраняем данные из пост в простые переменные, которые мы выбираем сами
if (isset($_POST['FIO'])) {$FIO =$_POST['FIO']; };
if (isset($_POST['firm'])) {$firm =$_POST['firm'];};
if (isset($_POST['telefon'])) {$telefon=$_POST['telefon']; };
if (isset($_POST['mail'])) {$mail =$_POST['mail']; };
if (isset($_POST['address'])) {$address=$_POST['address']; };
if (isset($_POST['order'])) {$order =$_POST['order']; };
if (isset($_GET['code'])) {$code =$_POST['code']; };

$email_for_orders = file('./content/orders/EMailForOrders.txt');
$from = 'info@mysl.ru';
$charset='utf-8';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
mail("nvf@qw.ru",'=?'.$charset.'?b?'.base64_encode('Заказ utf-8')."?=","Имя: ".$FIO."\nFirm: ".$firm."\nPhone: ".$telefon."\nE-mail: ".$mail."\nAddress: ".$address."\nOrder:\n".$order,$headers);
$charset='koi8-r';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
mail("nvf@qw.ru",'=?'.$charset.'?b?'.base64_encode('Заказ koi8-r')."?=","Имя: ".$FIO."\nFirm: ".$firm."\nPhone: ".$telefon."\nE-mail: ".$mail."\nAddress: ".$address."\nOrder:\n".$order,$headers);
$charset='windows-1251';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
mail("nvf@qw.ru",'=?'.$charset.'?b?'.base64_encode('Заказ windows-1251')."?=","Имя: ".$FIO."\nFirm: ".$firm."\nPhone: ".$telefon."\nE-mail: ".$mail."\nAddress: ".$address."\nOrder:\n".$order,$headers);

header('Location: index.php');
?>

Спустя 2 часа, 16 минут, 15 секунд (30.09.2011 - 14:22) псаломщик написал(а):
Немного доработал свой файл ORDER.PHP - теперь приходят темы писем доступные для чтения и в кодировках Koi8-R и в кодировках Windows-1251. В кодировке Utf-8 по прежнему приходят крокозебры. Но грустно, что тело письма по-прежнему не читается ни в какой кодеровке ни на одном почтовом сервере...
<?
//сохраняем данные из пост в простые переменные, которые мы выбираем сами
if (isset($_POST['FIO'])) {$FIO =$_POST['FIO']; };
if (isset($_POST['firm'])) {$firm =$_POST['firm'];};
if (isset($_POST['telefon'])) {$telefon=$_POST['telefon']; };
if (isset($_POST['mail'])) {$mail =$_POST['mail']; };
if (isset($_POST['address'])) {$address=$_POST['address']; };
if (isset($_POST['order'])) {$order =$_POST['order']; };
if (isset($_GET['code'])) {$code =$_POST['code']; };

$email_for_orders = file('./content/orders/EMailForOrders.txt');
$to='nvf@qw.ru';
$from='info@myslit.ru';

$charset='utf-8';
$subject='Заказ utf-8';
$subject='=?'.$charset.'?b?'.base64_encode($subject).'?=';
$body='Имя: '.$FIO.'\nFirm: '.$firm.'\nPhone: '.$telefon.'\nE-mail: '.$mail."\nAddress: ".$address."\nOrder:\n".$order;
$from='=?'.$charset.'?b?'.base64_encode($from).'?=';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
mail($to,$subject,$body,$headers);

$charset='koi8-r';
$subject='Заказ koi8-r';
$subject=convert_cyr_string($subject,"w","k");
$subject='=?'.$charset.'?b?'.base64_encode($subject).'?=';
$body='Имя: '.$FIO.'\nFirm: '.$firm.'\nPhone: '.$telefon.'\nE-mail: '.$mail."\nAddress: ".$address."\nOrder:\n".$order;
$body=convert_cyr_string($body,"w","k");
$from=convert_cyr_string($from,"w","k");
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
mail($to,$subject,$body,$headers);

$charset='windows-1251';
$subject='Заказ windows-1251';
$subject='=?'.$charset.'?b?'.base64_encode($subject).'?=';
$body='Имя: '.$FIO.'\nFirm: '.$firm.'\nPhone: '.$telefon.'\nE-mail: '.$mail."\nAddress: ".$address."\nOrder:\n".$order;
$from='=?'.$charset.'?b?'.base64_encode($from).'?=';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';
$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
mail($to,$subject,$body,$headers);

header('Location: index.php');
?>

Спустя 2 часа, 21 минута, 8 секунд (30.09.2011 - 16:43) imbalance_hero написал(а):
псаломщик
Может страница у тебя совсем не в UTF-8 ?

Спустя 1 час, 38 минут, 59 секунд (30.09.2011 - 18:22) псаломщик написал(а):
imbalance_hero, может и не в utf-8, но в шапке файла строка
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

присутствует...
Точне в INDEX.PHP строка
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';

есть...

Спустя 24 минуты, 5 секунд (30.09.2011 - 18:46) imbalance_hero написал(а):
через header(); передай заголовок страницы.

Спустя 21 минута, 30 секунд (30.09.2011 - 19:07) псаломщик написал(а):
Заменил
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';

на
header('Content-type: text/html; charset=utf-8');

Результат тот же - шило на мыло...

Спустя 2 часа, 30 минут, 32 секунды (30.09.2011 - 21:38) imbalance_hero написал(а):
псаломщик
Вообще-то надо оба.

Раздел кодировки, там прикреплённая тема как настроить кодировку.
Потом ТЕКСТ заново перенабрать.
И лучше использовать класс с ирбиса по отправке письма.

Спустя 12 часов, 23 минуты, 2 секунды (1.10.2011 - 10:01) псаломщик написал(а):
imbalance_hero, оба? Я думал, что header('Content-type: text/html; charset=utf-8') - аналог соответствующего тега HTML. Ну оба, значит оба...

imbalance_hero, раздел кодировки где? Текст тела письма надо заново перенабрать?

В составе проблемы при отправке E-mail есть некоторые изменения:
Файл скрипта для формы отправки сообщения был в ANSI. Пересохранил его в UTF-8 - ситуация зеркально отобразилась - теперь тема сообщения читается только в первом случае (при кодировке UTF-8). В остальных случаях в теме выходят кракозебры. Но беда в том, что в теле письма по-прежнему во всех трех случаях получаются кракозебры...

Спустя 1 час, 58 минут, 34 секунды (1.10.2011 - 12:00) псаломщик написал(а):
Недосып сказывается:
Обратил внимание на кусок кода:

$headers ="Content-type: text/plain; charset='.$charset.'\r\n";
$headers.='From: <'.$from.'>\r\n';
$headers.='MIME-Version: 1.0\r\n';
$headers.='Date: '.date('D, d M Y h:i:s O').'\r\n';

Неаккуратно проставленные двойные и одинарные кавычки приводили к тому, что $charset не читалась как переменная PHP, а шла сплошным текстом - в результате кодировка письма вообще проставлена не была. Пришел к этому изучая параметры доставленных писем - в них неправильно ставилась кодировка...

Спустя 4 минуты, 59 секунд (1.10.2011 - 12:05) Invis1ble написал(а):
да, здесь либо точки надо убрать, либо кавычки поменять, второе имхо правильней
$headers ="Content-type: text/plain; charset='" . $charset . "'\r\n";

Спустя 37 минут, 10 секунд (1.10.2011 - 12:42) псаломщик написал(а):
Заменил одинарные кавычки на двойные - письма стали читаться на сервере mail.ru, где до этого не читались
  $headers ="Content-type: text/plain; charset=$charset\r\n";     
$headers.="From: <$from>\r\n";
$headers.="MIME-Version: 1.0\r\n";
$headers.="Date: ".date('D, d M Y h:i:s O')."\r\n";
$headers.="Content-type: text/plain; charset=$charset\r\n";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.