![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
|
<?php
$recip = "my_mail@gmail.com";
$document = file("my.xml");
// ************ ТУТ ПРОБЛЕМА ***********
//$document = file_get_contents("php://input");
/// ************ ТУТ ПРОБЛЕМА ***********
// headers
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: do_not_reply@domain.com";
// contact
$client_name;
$client_surname;
$client_phone;
$client_mail;
$client_address;
// arrays
$window_widths = array();
$window_heights = array();
$window_color = array();
$window_quant = array();
$window_acc = array();
$count = 0;
function opening_element($parser, $element, $attributes) {
global $window_widths, $window_heights, $window_color, $window_quant, $window_acc;
global $client_name, $client_surname, $client_phone, $client_mail, $client_address;
///
if ($element == "order"){
$client_name = $attributes["client_name"];
$client_surname = $attributes["client_surname"];
$client_phone = $attributes["client_phone"];
$client_mail = $attributes["client_mail"];
$client_address = $attributes["client_address"];
}
if ($element == "window"){
$window_heights[] = $attributes["window_height"];
$window_widths[] = $attributes["window_width"];
$window_color[] = $attributes["window_color"];
$window_quant[] = $attributes["window_quant"];
$window_acc[] = $attributes["window_acc"];
}
}
function closing_element($parser, $element) {
}
function character_data($parser, $data) {
}
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($parser, "opening_element", "closing_element");
xml_set_character_data_handler($parser, "character_data");
//******* Next Line is Nr. 58
foreach ($document as $line) {
xml_parse($parser, $line);
}
xml_parser_free($parser);
$msg = str_replace("\r", "\n", $msg);
$sender = $_SERVER[REMOTE_ADDR];
$msg = "<b>Contact form send by: <br> Name : $client_name <br> Surname : $client_surname <br> Phone : $client_phone <br> Email: $client_mail <br> Address: $client_address</b> <br><br> Order:<br>";
$msg.="<tr>
<td>Nr.</td>
<td>1. Width x Height</td>
<td>2. Width x Height</td>
<td>3. Width x Height</td>
<td>Color</td>
<td>Accessories</td>
<td>Quantaty</td>
</tr>";
$total_w=count($window_widths);
for ($i = 0; $i < $total_w; $i++) {
$msg.="<tr>
<td width=\"25\">$i</td>
<td>$window_widths[$i] x $window_heights[$i]</td>
<td>$window_widths[$i] x $window_heights[$i]</td>
<td>$window_widths[$i] x $window_heights[$i]</td>
<td>$window_color[$i]</td>
<td>$window_acc[$i]</td>
<td>$window_quant[$i]</td>
</tr>";
}
$msg.="<br>Sender's IP: $sender";
mail($recip, "Order form", $msg, $headers);
?>
Этот скрипт работает абсолютно верно когда использую $document = file("my.xml"); А когда $document = file_get_contents("php://input"); (Передаю ХМЛ из Флэша) тогда выдает такую ошибку: Цитата:
Спасибо.
__________________
|
|
|||||
|
Ошибка в большей части случаев появляется в случае, когда перменная пуста (не массив, если точнее).
А ты уверен, что в input потоке у тебя что-то есть ? Сделай var_dump($document); Чем не угодили $_GET и $_POST ? Зачем потоки пользовать, если все, что надо уже существует ?
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
|
В конечном итоге домучал...вот что у меня вышло, надеюсь кому-нибудь пригодится... только под свои нужды исправить чуток
<?php
$recip = "you_mail@mail.com";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
////
#$window_heights = array();
global $client_name, $client_surname, $client_phone, $client_mail, $client_address, $client_comments;
function startElement($parser, $name, $attrs) {
global $client_name, $client_surname, $client_phone, $client_mail, $client_address, $client_comments;
global $window_heights, $window_widths, $window_color, $window_acc, $window_quant, $window_profile, $window_id, $window_widths2, $window_widths3;
if ($name == "ORDER"){
$client_name = $attrs["CLIENT_NAME"];
$client_surname = $attrs["CLIENT_SURNAME"];
$client_phone = $attrs["CLIENT_PHONE"];
$client_mail = $attrs["CLIENT_MAIL"];
$client_address = $attrs["CLIENT_ADDRESS"];
$client_comments = $attrs["CLIENT_COMMENTS"];
#echo "name: <b>".$client_name."</b><br>";
#echo "surname: <b>".$client_surname."</b><br>";
#echo "phone: <b>".$client_phone."</b><br>";
#echo "mail: <b>".$client_mail."</b><br>";
#echo "address: <b>".$client_address."</b><br>";
}
if ($name == "WINDOW"){
$window_heights[] = $attrs["WINDOW_HEIGHT"];
$window_widths[] = $attrs["WINDOW_WIDTH"];
$window_color[] = $attrs["WINDOW_COLOR"];
$window_quant[] = $attrs["WINDOW_QUANT"];
$window_acc[] = $attrs["WINDOW_ACC"];
$window_profile[] = $attrs["WINDOW_PROFILE"];
$window_id[] = $attrs["WINDOW_ID"];
/////////////////
$window_heights2[] = $attrs["WINDOW_HEIGHT2"];
$window_widths2[] = $attrs["WINDOW_WIDTH2"];
////////////////
$window_heights3[] = $attrs["WINDOW_HEIGHT3"];
$window_widths3[] = $attrs["WINDOW_WIDTH3"];
#echo "width: <b>".$window_widths[0]."</b><br>";
#echo "height: <b>".$window_heights[0]."</b><br>";
#echo "color: <b>".$window_color[0]."</b><br>";
#echo "acc: <b>".$window_acc[0]."</b><br>";
#echo "quant: <b>".$window_quant[0]."</b><br>";
}
echo "<br/>";
}
function endElement($parser, $name) {
//echo "[/$name]<br/>";
}
function characterData($parser, $text) {
if (trim($text)<>""){
echo "$text<br/>";
}
}
//$data= $GLOBALS["HTTP_RAW_POST_DATA"];
$data= file_get_contents("php://input");
$xml_parser = xml_parser_create();
xml_set_element_handler( $xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!xml_parse($xml_parser, $data, true ))
die("XML error: xml_error_string(xml_get_error_code($xml_parser))
at line xml_get_current_line_number($xml_parser))" );
xml_parser_free($xml_parser);
$headers .= "From: $client_mail";
//
$mailbody = "<img src=\"http://g.delfi.lv/r/h/logo.gif\">
<table width=\"650\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td bgcolor=\"#000000\"><table width=\"650\" border=\"0\" cellspacing=\"1\" cellpadding=\"5\">
<tr bgcolor=\"#FFFFFF\">
<td width=\"70\"><div align=\"center\">Name:</div></td>
<td>".$client_name."</td>
<td width=\"70\"><div align=\"center\">Surname:</div></td>
<td>".$client_surname."</td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td width=\"70\"><div align=\"center\">Phone:</div></td>
<td>".$client_phone."</td>
<td width=\"70\"><div align=\"center\">E-mail:</div></td>
<td>".$client_mail."</td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td width=\"70\"><div align=\"center\">Address:</div></td>
<td colspan=\"3\">".$client_address."</td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td width=\"70\">Comments:</td>
<td colspan=\"3\">".$client_comments."</td>
</tr>
</table></td></tr>
</table><br><br>
<table width=\"650\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td bgcolor=\"#000000\"><table width=\"650\" border=\"0\" cellspacing=\"1\" cellpadding=\"5\">
<tr bgcolor=\"#FFFFFF\">
<td width=\"30\"><div align=\"center\">Nr.</div></td>
<td width=\"40\"><div align=\"center\">type</div></td>
<td><div align=\"center\">1. WxH </div></td>
<td><div align=\"center\">2. WxH </div></td>
<td><div align=\"center\">3 WxH </div></td>
<td width=\"60\"><div align=\"center\">Profile</div></td>
<td width=\"60\"><div align=\"center\">Color</div></td>
<td width=\"95\"><div align=\"center\">Accessories</div></td>
<td width=\"45\"><div align=\"center\">Quant</div></td>
</tr>";
$total_w=count($window_widths);
for ($i = 0; $i < $total_w; $i++) {
$mailbody.=" <tr bgcolor=\"#FFFFFF\">
<td><div align=\"center\">".$i."</div></td>
<td><div align=\"center\">".$window_id[$i]."</div></td>
<td>
<div align=\"center\">
<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><div align=\"center\">".$window_widths[$i]."</div></td>
</tr>
<tr>
<td><div align=\"center\">x</div></td>
</tr>
<tr>
<td><div align=\"center\">".$window_heights[$i]."</div></td>
</tr>
</table>
</div></td>
<td><div align=\"center\">";
if (!$window_widths2[$i]==""){
$mailbody .="<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td><div align=\"center\">".$window_widths2[$i]."</div></td>
</tr>
<tr>
<td><div align=\"center\">x</div></td>
</tr>
<tr>
<td><div align=\"center\">".$window_heights[$i]."</div></td>
</tr>
</table>";
}
$mailbody .= "</div></td><td><div align=\"center\">";
if (!$window_widths3[$i]==""){
$mailbody .="<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td><div align=\"center\">".$window_widths2[$i]."</div></td>
</tr>
<tr>
<td><div align=\"center\">x</div></td>
</tr>
<tr>
<td><div align=\"center\">".$window_heights[$i]."</div></td>
</tr>
</table>";
}
$mailbody .= "</div></td>
<td><div align=\"center\">".$window_profile[$i]."</div></td>
<td><div align=\"center\">".$window_color[$i]."</div></td>
<td><div align=\"center\">".$window_acc[$i]."</div></td>
<td><div align=\"center\">".$window_quant[$i]."</div></td>
</tr>";
}
$mailbody .= "</table></td>
</tr>
</table>
<br><br>
<hr align=\"left\" width=\"650\">
<br><b>Order was made on ".date("l, d, F")." at ".date("H:i")."</b>";
//
$subject = $client_name." ".$client_surname." is intrested, how much does it cost?";
mail($recip, $subject, $mailbody, $headers);
echo '&send_result=sent&';
?>
__________________
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|