JasonBourne

JasonBourne
Рейтинг
3
Регистрация
25.09.2007
Должность
programmer

Еще полезно почитать "ководство" Лебедева: 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

Качалкой файл в несолкько потоков частями выкачивается полностью, а броузер в один поток долго открывает и видно сам веб-сервер по таймауту отключает. Скорее всего нужно таймаут увеличить или скорость отдачи, хотя опять же не тестировал.

Согласен, единственное что слегка напрягает задержка отчетности - более полусуток. Хотя возможно это еще зависит от часового пояса ☝

Rapide:
Возникает проблема при попытке ответа в форум - разъезжается окно ответа. Причем, разъезжается только в IE
Подскажите, где искать причину.
Спасибо!

У меня помоему тоже самое было.

Скорее всего разьезжается из за аяксового блока загрузки файлов, выставь у него ширину фиксированную, должно помочь. Я правил в js скрипте блока загрузки.

1 23
Всего: 26