Еще полезно почитать "ководство" Лебедева: http://www.artlebedev.ru/kovodstvo/
Некоторые глюки - это какие? Судя по коду все должно работать хорошо и правильно, даже перепроверил обе функции у себя с разными параметрами)
Shtogrin дело говорит, есть еще вариант сделать вот так:
function gettext(){ global $fields; $text=""; if (isset($_SERVER['REMOTE_ADDR'])) $text.="REMOTE_ADDR: ".$_SERVER['REMOTE_ADDR']."\n"; if (isset($_SERVER['HTTP_VIA'])) $text.="HTTP_VIA: ".$_SERVER['HTTP_VIA']."\n"; if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $text.="HTTP_X_FORWARDED_FOR: ".$_SERVER['HTTP_X_FORWARDED_FOR']."\n"; $ar = array(); foreach($fields as $key => $field){ $text.=$field[0].": ".$_POST[$key]."\n"; $ar[] = $field[0].": ".$_POST[$key]."\n"; } return $text; } function sendform($text){ global $email, $subject, $logfile, $from; mail($email, $subject, $text, "From: $from\nContent-Type: text/plain; charset=windows-1251\n"); // вставить данный кусок $ar = explode("\n", $text); $tofile = array(); foreach($ar as $row) { if (preg_match("#^([^\:]+)\:(.*)$#msi", $row, $m)) { if ($m[1]=="Enquiry") continue; $tofile[0][] = trim($m[1]); $tofile[1][] = trim($m[2]); } } $text = implode(";",$tofile[0])."\n".implode(";",$tofile[1]); // конец вставки $fp = fopen ($logfile, "a"); fputs ($fp, $text."\n----------------------------\n\n"); fclose($fp); }
Попроще и по сути нужно лишь добавить в функцию sendform блок:
$ar = explode("\n", $text); $tofile = array(); foreach($ar as $row) { if (preg_match("#^([^\:]+)\:(.*)$#msi", $row, $m)) { if ($m[1]=="Enquiry") continue; $tofile[0][] = trim($m[1]); $tofile[1][] = trim($m[2]); } } $text = implode(";",$tofile[0])."\n".implode(";",$tofile[1]);
Данный вариант будет работать, если все данные однострочные, и имеют именно ту структуру как в примере, если Enquiry многострочный параметр, идет в конце и в принципе в логе не нужен, то возможного мусора в логе можно избежать заменив
if ($m[1]=="Enquiry") continue;
на
if ($m[1]=="Enquiry") break;
Возможно в этом проблема, но не уверен: http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout
Качалкой файл в несолкько потоков частями выкачивается полностью, а броузер в один поток долго открывает и видно сам веб-сервер по таймауту отключает. Скорее всего нужно таймаут увеличить или скорость отдачи, хотя опять же не тестировал.
Согласен, единственное что слегка напрягает задержка отчетности - более полусуток. Хотя возможно это еще зависит от часового пояса ☝
У меня помоему тоже самое было.
Скорее всего разьезжается из за аяксового блока загрузки файлов, выставь у него ширину фиксированную, должно помочь. Я правил в js скрипте блока загрузки.