Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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($item04);
    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($fLOCK_EX);
    
fwrite($f$item "\n");
    
flock($fLOCK_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 Яндекс.Метрика Яндекс цитирования