[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает скрипт
ED
Здравствуйте.
У меня к вам вопрос. Не могу понять почему перестал работать скрипт. Хотя до этого работал на сервере исправно целый год. И еще на локалке работает отлично. Мое предположение, что на сервере сменили версию PHP на 5.3.8. с 5.2.6. Если подскажите как исправить буду очень благодарен. Вот сам скрипт

<?php
//IP адрес голосовавшего
$dateIP = time();
if(empty($_SESSION['IPHost']))
{
/*if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$host = gethostbyaddr($_SERVER['HTTP_X_FORWARDED_FOR']);}
else{$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);}
$host = getenv(HTTP_X_FORWARDED_FOR);*/

$_SESSION['IPHost'] = $_SERVER['REMOTE_ADDR'];
if(empty($_SESSION['IPHost'])){$_SESSION['IPHost'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);}
}


//определение от куда сделан запрос
$pr = "";
if (!empty($level)){$pr = "../";}
$filename = $pr . "kurs.txt";
$read = $pr . "index/readFile.php";
$write = $pr . "index/writeFile.php";

if (!file_exists ($filename)){touch ($filename);}
//выборка записей
include ($read);

if ($len_tmp_massive > 0)
{
$_SESSION['USD'] = trim($tmp_massive[0]);
$_SESSION['EUR'] = trim($tmp_massive[1]);
$_SESSION['cbrDate'] = date ("d.m.Y", trim($tmp_massive[2]));
}

//определение времени последнего обновления

if (((date ("d", trim($tmp_massive[2])) != date ("d", time ())) and (date ("G", time ()) > 13)))
{
// Формируем дату для запроса
$date = date("d/m/Y", time ());
$address = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
//$address = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=12/11/2011";
//$address = "kursCode.txt";


$massive = file($address);
$len_massive = count ($massive);

if(empty($massive)){return;}

//запись нового курса
$x = 0;
$clean = "eulaV></LAUE";

for ($n = 0; $n < $len_massive; $n++)
{
$m = $n;
$str1 = $massive["$m"];
$m++;
$str2 = $massive["$m"];
$m++;
$m++;
$m++;
$str5 = trim($massive["$m"]);


if (strstr ($str1, "840") and strstr ($str2, "USD"))
{
$str5 = str_replace (",", ".", $str5);
$tmp_massive[0] = strtok ($str5, $clean) . "\n";
$n = $m;
$x++;
}

if (strstr ($str1, "978") and strstr ($str2, "EUR"))
{
$str5 = str_replace (",", ".", $str5);
$tmp_massive[1] = strtok ($str5, $clean) . "\n";
$n = $m;
$x++;
}

if ($x == 2)
{
$tmp_massive[2] = time () . "\n";

//запись в файл kurs.txt
$_SESSION['USD'] = $tmp_massive[0];
$_SESSION['EUR'] = $tmp_massive[1];
$_SESSION['cbrDate'] = date ("d.m.Y", trim($tmp_massive[2]));
$len_tmp_massive = 3;
include ($write);
break;
}
}
}


?>

С уважением.



Спустя 19 минут, 7 секунд (26.02.2012 - 17:58) walerus написал(а):
А ошибки то какие???

Спустя 15 минут, 37 секунд (26.02.2012 - 18:13) Guest написал(а):
Вот именно что ни каких, просто не записывает в файл kurs.txt это на сервере, а локалке все ОК.

Спустя 1 час, 45 минут, 43 секунды (26.02.2012 - 19:59) inpost написал(а):
Ради теста поставь права доступа на папку, где файл, и на сам файл: 777.
Кроме этого убедись, что ссылка на файл правильная и этот файл есть.
К тому же запись, скорее всего, у тебя идёт совершенно в другом файле.

Спустя 20 часов, 8 минут, 14 секунд (27.02.2012 - 16:07) Guest написал(а):
Спасибо за совет. Я все перепроверил, ссылка правильная, если бы была не правильная, то в файле error_log появилась соответствующая запись. Совершенно верно запись идет в другом файле writeFile.php, но если бы был указан не тот путь в переменной $filename, то файл с таким названием появился бы в другой папке. И это не самое главное, вопрос в том, почему на локале все просто идеально, а сервере ни как. Вообще относительно скрипта сомнений нет работал отлично, пускай и не идеально написан, но факт остается фактом, а последние два месяца весь мозг мне вынес. И поэтому мысль движется в одном направлении, не из-за смены ли версии PHP?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.