|
|
|
| Доброго все дня! В общем есть скрипт который я прикрепил ниже, собственно это гейт на который мой софт отправляет ПАКЕТЫ, после чего он записывает данные в файл , раньше все работало, но как переехал на другой хостинг скрипт перестал создавать файлы с отчетами , папка создается , а файлы нет , подскажите как понять причину , что прописать чтоб потом можно было проанализировать лог или как это правильно сделать?
скрипт:
<?php
//
define('ID_FTP_CLIENTS', "FZla Bull FFXP Core FF__ Frig fCom FtpX WS__ TCmd Far_ FarH FZla Cute Cofe Rush Secu Smrt"); $ID_FTP_CLIENTS = explode(" ", ID_FTP_CLIENTS);
define( 'ROOT', dirname(__FILE__) . '/');
define( 'DATA_ROOT', ROOT . "/worked/");
define( 'RESULT_PREFIX', "**RetCode: ");
define( 'RESULT_CODE_SUCCESS', 0);
if(!isset($_POST['data'])) exit;
if(!is_dir(DATA_ROOT)) mkdir(DATA_ROOT) or die("Can't create DATA_ROOT.");
$fffdir = '/data/' . date('Y-m-d') . '.log';
$log_rules = array(
"/\myofice\.ru/i" => $fffdir,
);
$default_log_file = date("Y-m-d") . ".log";
$data = base64_decode($_POST['data']);
$data = explode("\n", $data);
foreach($data as $item)
{
$item = trim($item);
if($item == '') continue;
$id = substr($item, 0, 4);
if(in_array($id, $ID_FTP_CLIENTS))
{
save_item("ftp.log", $item);
}
else
{
$accept_rule = false;
foreach($log_rules as $rule=>$rule_file)
{
if(preg_match($rule, $item))
{
save_item($rule_file . ".log", $item);
$accept_rule = true;
break;
}
}
if(!$accept_rule)
{
save_item($default_log_file, $item);
}
}
}
echo RESULT_PREFIX . RESULT_CODE_SUCCESS;
///
function save_item($file, $item)
{
$f = fopen(DATA_ROOT . '/' . $file, 'a+');
flock($f, LOCK_EX);
fwrite($f, $item . "\n");
flock($f, LOCK_UN);
fclose($f);
}
|
в чем может быть проблема и как мне в ручную проверить? | |
|
|
|
|
|
|
|
для: phpMAG
(02.11.2010 в 06:07)
| | Зачем создавать строку, чтобы ее тут же разбивать на массив? Что нельзя сразу массив прописать:
<?
$ID_FTP_CLIENTS = array("FZla", "Bull", "FFXP", "Core",
"FF__", "Frig", "fCom", "FtpX", "WS__", "TCmd",
"Far_", "FarH", "FZla", "Cute", "Cofe", "Rush", "Secu", "Smrt");
|
| |
|
|
|
|
|
|
|
для: sim5
(02.11.2010 в 08:09)
| | ну автор скрипта не Я к сожалению, скрипт рабочий 100%, по каким причинам не работает на новом хостинге понять не могу, вроде не чего не использует.... подскажите , очень нужно! | |
|
|
|
|
|
|
|
для: phpMAG
(03.11.2010 в 06:01)
| | Что именно не работает? Ошибки какие? | |
|
|
|
|
|
|
|
для: phpMAG
(03.11.2010 в 06:01)
| | >ну автор скрипта не Я
>к сожалению, скрипт рабочий 100%,
Это, очевидно, не так, если на новом месте он у Вас не работает.
Может стоит обратиться к автору скрипта?
Покамест видно, что он очень любит ставить слэши (как прямые так и обратные) к месту и не к месту.
И очень не любит проверять ошибки.
Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны? | |
|
|
|
|
|
|
|
для: Trianon
(03.11.2010 в 12:32)
| | да права стоят , софт когда пакеты на скрипт отсылает создается папка worked, но файлов внутри нет! Помогите т.к автора нет в сети уже больше 2 недель , большая просьба подскажите... | |
|
|
|
|
|
|
|
для: phpMAG
(04.11.2010 в 03:21)
| | Вынесите сей скрипт вообоще отдельно, пропишите вывод ошибок, проверяйте пришедшие данные. | |
|
|
|
|
|
|
|
для: sim5
(04.11.2010 в 06:09)
| | можно с этого момента по подробнее , я только начал изучать , сам пишу на байсике, я вот и спрашиваю как вывести ошибку в файл и как проверить то, что передается скрипту .... | |
|
|
|
|
|
|
|
для: phpMAG
(04.11.2010 в 08:07)
| |
$data = base64_decode($_POST['data']);
$data = explode("\n", $data);
| Эти строки декодируют полученные данные и преобразуют их в массив. Если теперь вывести на экран этот массив, то вы можете проанализировать, что вы получили:Для отображения вывода ошибок, в самом начале кода поместить:
ini_set("display_errors", "on");
|
| |
|
|
|
|
|
|
|
для: sim5
(04.11.2010 в 08:23)
| | пробовал отображать ошибки, в скрипте их нет. в чем проблема разобраться не кто не может, я уже отчаялся, автора нет( если я и пропишу print_r($data) то как я увижу результат? пакеты отправляю не я а софт и когда он отправляет папка воркед создается с правами все ок получается , а самих файлов нет! дайте запросто , как мне проверить... помогите плиз, реально не знаю, скрипт очень нужен
PHP Version 5.1.6 у меня | |
|
|
|
|
|
|
|
для: phpMAG
(05.11.2010 в 06:27)
| | Что это за данные? | |
|
|
|
|
|
|
|
для: Trianon
(03.11.2010 в 12:32)
| | >Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны?
права на папку где лежит скрипт 777 от имени моего пользователя, когда софт отправляет данные , папка воркед в корне создается, а файлы нет( | |
|
|
|
|
|
|
|
для: phpMAG
(04.11.2010 в 08:10)
| | >>Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны?
>права на папку где лежит скрипт
при чем здесь права на каталог, в котором скипт лежит?
Я об этом спросил хоть полслова?
>папка воркед в корне создается, а файлы нет(
права на запись в этот свежесозданный каталог какие стоят? | |
|
|
|