Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы с скриптом!
 
 автор: phpMAG   (02.11.2010 в 06:07)   письмо автору
 
 

Доброго все дня! В общем есть скрипт который я прикрепил ниже, собственно это гейт на который мой софт отправляет ПАКЕТЫ, после чего он записывает данные в файл , раньше все работало, но как переехал на другой хостинг скрипт перестал создавать файлы с отчетами , папка создается , а файлы нет , подскажите как понять причину , что прописать чтоб потом можно было проанализировать лог или как это правильно сделать?

скрипт:


<?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);
}



в чем может быть проблема и как мне в ручную проверить?

  Ответить  
 
 автор: sim5   (02.11.2010 в 08:09)   письмо автору
 
   для: 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");

  Ответить  
 
 автор: phpMAG   (03.11.2010 в 06:01)   письмо автору
 
   для: sim5   (02.11.2010 в 08:09)
 

ну автор скрипта не Я к сожалению, скрипт рабочий 100%, по каким причинам не работает на новом хостинге понять не могу, вроде не чего не использует.... подскажите , очень нужно!

  Ответить  
 
 автор: sim5   (03.11.2010 в 07:49)   письмо автору
 
   для: phpMAG   (03.11.2010 в 06:01)
 

Что именно не работает? Ошибки какие?

  Ответить  
 
 автор: Trianon   (03.11.2010 в 12:32)   письмо автору
 
   для: phpMAG   (03.11.2010 в 06:01)
 

>ну автор скрипта не Я
>к сожалению, скрипт рабочий 100%,

Это, очевидно, не так, если на новом месте он у Вас не работает.
Может стоит обратиться к автору скрипта?

Покамест видно, что он очень любит ставить слэши (как прямые так и обратные) к месту и не к месту.
И очень не любит проверять ошибки.
Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны?

  Ответить  
 
 автор: phpMAG   (04.11.2010 в 03:21)   письмо автору
 
   для: Trianon   (03.11.2010 в 12:32)
 

да права стоят , софт когда пакеты на скрипт отсылает создается папка worked, но файлов внутри нет! Помогите т.к автора нет в сети уже больше 2 недель , большая просьба подскажите...

  Ответить  
 
 автор: sim5   (04.11.2010 в 06:09)   письмо автору
 
   для: phpMAG   (04.11.2010 в 03:21)
 

Вынесите сей скрипт вообоще отдельно, пропишите вывод ошибок, проверяйте пришедшие данные.

  Ответить  
 
 автор: phpMAG   (04.11.2010 в 08:07)   письмо автору
 
   для: sim5   (04.11.2010 в 06:09)
 

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

  Ответить  
 
 автор: sim5   (04.11.2010 в 08:23)   письмо автору
 
   для: phpMAG   (04.11.2010 в 08:07)
 

$data = base64_decode($_POST['data']); 
$data = explode("\n", $data);
Эти строки декодируют полученные данные и преобразуют их в массив. Если теперь вывести на экран этот массив, то вы можете проанализировать, что вы получили:
print_r($data)
Для отображения вывода ошибок, в самом начале кода поместить:
ini_set("display_errors", "on");

  Ответить  
 
 автор: phpMAG   (05.11.2010 в 06:27)   письмо автору
 
   для: sim5   (04.11.2010 в 08:23)
 

пробовал отображать ошибки, в скрипте их нет. в чем проблема разобраться не кто не может, я уже отчаялся, автора нет( если я и пропишу print_r($data) то как я увижу результат? пакеты отправляю не я а софт и когда он отправляет папка воркед создается с правами все ок получается , а самих файлов нет! дайте запросто , как мне проверить... помогите плиз, реально не знаю, скрипт очень нужен

PHP Version 5.1.6 у меня

  Ответить  
 
 автор: sim5   (05.11.2010 в 08:00)   письмо автору
 
   для: phpMAG   (05.11.2010 в 06:27)
 

Что это за данные?

  Ответить  
 
 автор: phpMAG   (04.11.2010 в 08:10)   письмо автору
 
   для: Trianon   (03.11.2010 в 12:32)
 

>Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны?
права на папку где лежит скрипт 777 от имени моего пользователя, когда софт отправляет данные , папка воркед в корне создается, а файлы нет(

  Ответить  
 
 автор: Trianon   (04.11.2010 в 15:04)   письмо автору
 
   для: phpMAG   (04.11.2010 в 08:10)
 

>>Права на запись в каталог для пользователя, от имени которого выполняется скрипт, даны?
>права на папку где лежит скрипт

при чем здесь права на каталог, в котором скипт лежит?
Я об этом спросил хоть полслова?

>папка воркед в корне создается, а файлы нет(

права на запись в этот свежесозданный каталог какие стоят?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования