Alaya » 2008.12.04 11:10

Можно создать тему для ошибок?
Вот такая ошибка у меня, непонятная :( syntax error (line 9 , character : 260)

alaya.org.ru/list/downl/
вот эта часть кода
//Сортировка и предпросмотр:

$p=intval($_GET['p']);
$sort=intval($_GET['sort']);
if($sort>1 OR $sort<0)
{$sort=0;}

//ПАПКА:
$dir=htmlspecialchars($_GET['dir']);

while(substr($dir,0,1)=='/')
{$dir=substr($dir,1,strlen($dir));}

if(strstr($dir,'..') OR !is_dir('load/'.$dir) OR strstr($dir,'://'))
{$dir=null;}

$opis = false;

//ШАПКА
print $top;

if(!$dir)
{print '<div class="n">Загрузки<br/></div>';}
else
{
$dir_exp=explode('/',$dir);
print '<div class="n">'.transdir($dir_exp[count($dir_exp)-1]).'</div>';
}

if($p)
{print '<div class="bor">Предпросмотр: +/<a href="index.php?p=0&amp;sort='.$sort.'&amp;dir='.$dir.'">-</a><br/>';}
else
{print '<div class="bor">Предпросмотр: <a href="index.php?p=1&amp;sort='.$sort.'&amp;dir='.$dir.'">+</a>/-<br/>';}

if($sort)
{print 'Сортировка по: <a href="index.php?p='.$p.'&amp;sort=0&amp;dir='.$dir.'">имени</a>/дате<br/></div><div class="fot">';}
else
{print 'Сортировка по: имени/<a href="index.php?p='.$p.'&amp;sort=1&amp;dir='.$dir.'">дате</a><br/></div><div class="fot">';}

//ВЛОЖЕННЫЕ ПАПКИ
Добавлено спустя   1 минуту  2 секунды:
место ошибки указанно, перед последней скобкой, внизу

Gemorroj » 2008.12.04 11:45

Лена, выложи ВЕСЬ код и выдели тегами [cоde] [/cоde]

Alaya » 2008.12.04 12:01

Код:

1
span style="color: #0000BB"><?php$mt=microtime(1);require 'config.php';require 'func.php';if($zip){include('zip.php');}//Сортировка и предпросмотр:$p=intval($_GET['p']);$sort=intval($_GET['sort']);if($sort>1 OR $sort<0){$sort=0;}//ПАПКА:$dir=htmlspecialchars($_GET['dir']);while(substr($dir,0,1)=='/'){$dir=substr($dir,1,strlen($dir));}if(strstr($dir,'..') OR !is_dir('load/'.$dir) OR strstr($dir,'://')){$dir=null;}$opis = false;//ШАПКАprint $top;if(!$dir){print '<div class="n">Загрузки<br/></div>';}else{$dir_exp=explode('/',$dir);print '<div class="n">'.transdir($dir_exp[count($dir_exp)-1]).'</div>';}if($p){print '<div class="bor">Предпросмотр: +/<a href="index.php?p=0&amp;sort='.$sort.'&amp;dir='.$dir.'">-</a><br/>';}else{print '<div class="bor">Предпросмотр: <a href="index.php?p=1&amp;sort='.$sort.'&amp;dir='.$dir.'">+</a>/-<br/>';}if($sort){print 'Сортировка по: <a href="index.php?p='.$p.'&amp;sort=0&amp;dir='.$dir.'">имени</a>/дате<br/></div><div class="fot">';}else{print 'Сортировка по: имени/<a href="index.php?p='.$p.'&amp;sort=1&amp;dir='.$dir.'">дате</a><br/></div><div class="fot">';}//ВЛОЖЕННЫЕ ПАПКИ$glob_dir=glob('load/'.$dir.'/*',GLOB_ONLYDIR);if($glob_dir){$count=sizeof($glob_dir);$countstr=ceil($count/$dirstr);$page=intval($_GET['page']);if($sort){usort($glob_dir, 'sortnew');}$start = $page * $dirstr;if($start>=$count OR $start<0){$start=0;}$end = $start + $dirstr;if($end>=$count){$end = $count;}for($i=$start; $i<$end; $i++){$dirt=str_replace('load/',null,$glob_dir[$i]);$dir_exp=explode('/',$dirt);$count=countf($dirt);print '<img src="dir.gif" alt=""/> <a href="index.php?dir='.$dirt.'&amp;p='.$p.'&amp;sort='.$sort.'">'.transdir($dir_exp[count($dir_exp)-1]).'</a>['.$count.']<br />';}}$glob_file=glob("load/$dir/*.{{$allfile}}",GLOB_BRACE);if($glob_file) //ФАЙЛЫ{if($sort){usort($glob_file, 'sortnew');}$count=sizeof($glob_file);$countstr=ceil($count/$filestr);$page=intval($_GET['page']);$start = $page * $filestr;if($start>=$count OR $start<0){$start=0;}$end = $start + $filestr;if($end>=$count){$end = $count;}for($i=$start; $i<$end; $i++){$name=translit($glob_file[$i]);$filesize=filesize($glob_file[$i]);if($filesize>1024){$filesize=round($filesize/1024, 2).' кб';}else{$filesize.=' б';}if(r($glob_file[$i])=='txt'){$text=file($glob_file[$i]);$name=$text[0];$opis=$text[1].$text[2].$text[3].$text[4];}$basename=basename($glob_file[$i]);//Скриншотif($p and file_exists('skrin/'.$basename.'.gif')){print '<img src="pic.php?file=skrin/'.$basename.'.gif" alt="Скрин" /><br />';}elseif($p and file_exists('skrin/'.$basename.'.jpg')){print '<img src="pic.php?file=skrin/'.$basename.'.jpg" alt="Скрин" /><br />';}elseif($p and file_exists('skrin/'.$basename.'.png')){print '<img src="pic.php?file=skrin/'.$basename.'.png" alt="Скрин" /><br />';}if((r($glob_file[$i])=='jpg' or r($glob_file[$i])=='gif' or r($glob_file[$i])=='png') and $p){print '<img src="pic.php?file='.$glob_file[$i].'" alt="Скрин" /><br />';}print '<strong>'.$name.'</strong><br />';if(file_exists('opis/'.$basename.'.txt')){$opis=htmlspecialchars(file_get_contents('opis/'.$basename.'.txt'));}if($opis){print nl2br(htmlspecialchars($opis)).'<br />';}$opis = false;if(r($glob_file[$i])=='jar'){print '<a href="'.$glob_file[$i].'">Скачать JAR ('.$filesize.')</a>[<a href="file.php?p='.$p.'&amp;file='.$glob_file[$i].'&amp;sort='.$sort.'">?</a>]<br />';print '<a href="jad.php?p='.$p.'&amp;file='.$glob_file[$i].'&amp;sort='.$sort.'">Скачать JAD</a><br />';}elseif(r($glob_file[$i])=='txt'){print '<a href="txt.php?p='.$p.'&amp;file='.$glob_file[$i].'&amp;sort='.$sort.'">Читать</a><br />';}else{print '<a href="'.$glob_file[$i].'">Скачать('.$filesize.')</a>[<a href="file.php?p='.$p.'&amp;file='.$glob_file[$i].'&amp;sort='.$sort.'">?</a>]<br />';}//Подсчитываю количество комментриев$dirkomm=str_replace('/', 'D', str_replace('.', 'T', $glob_file[$i]));if(!file_exists('komm/'.$dirkomm)){$countkomm=0;}else{$countkomm=count(file('komm/'.$dirkomm));}print '<a href="komm.php?p='.$p.'&amp;file='.$glob_file[$i].'&amp;sort='.$sort.'">Комментрии</a>['.$countkomm.']<br /></div><div class="fot">';}}//Разбивка на страницы:if($countstr>1){print nav_page($countstr,$page,$dir,$p,$sort,'index');}//Возврат на уровень вверх:$dir_exp=explode('/',$dir);if($dir){print '</div><div class="bor">Вернуться:<br />';}if(($countj=count(explode('/',$dir)))>1){$j=explode('/',$dir);for($i=0; $i<=$countj; $i++){$u=$j[count($j)-2];if($u){unset($j[count($j)-1]);$g[$i]= '|<a href="index.php?dir='.join('/', $j).'&amp;p='.$p.'&amp;sort='.$sort.'">'.transdir($u).'</a>';}}for($i=count($g)-1; $i>=0; $i--){print $g[$i];}print '<br/>';}if($dir){print '<a href="index.php?p='.$p.'&amp;sort='.$sort.'">Загрузки</a><br/>';}print '</div>'.$foot;?>
Akdmeh » 2008.12.04 12:24

Помилка під час аналізу XML: синтаксична помилка (Рядок: 9, Символ: 260)
дык это XML.
Ща посмотрим валидатором.
Добавлено спустя   1 минуту  14 секунд:
http://validator.w3.org/check?uri=http% … mp;group=0

Gemorroj » 2008.12.04 12:26

в этом коде ошибок нету. возможно ошибки в файлах которые инклудятся.

Akdmeh » 2008.12.04 12:32

Смотри, вот взял результат страницы

Код:

1
lt;?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Загрузки</title><link rel="stylesheet" href="style.css" type="text/css" /></head><body><div class="w">alaya.org.ru</div><div class="n">Загрузки</div><div class="bor">Предпросмотр: <a href="index.php?p=1&amp;sort=0&amp;dir=">+</a>/-<br />Сортировка по: имени/<a href="index.php?p=0&amp;sort=1&amp;dir=">дате</a></div></body></html>

, правда добавил </body></html> и убрал в конце <div class="fot">
как я понял-основная ошибка-в твоей странице нет закрывающих тегов </body></html>
как только я их добавил-
This document was successfully checked as XHTML Mobile Profile 1.0!Result:    Passed

Gemorroj » 2008.12.04 12:44

Я так понял мы обсуждаем ошибку парсинга php кода, а не сгенерированного им HTML кода. Лена?

Alaya » 2008.12.04 12:50

конкретную ошибку мы обсуждаем.
Добавлено спустя   1 минуту  24 секунды:

Код:

1
span style="color: #0000BB"><?php//Включить сжатие?(1 или 0)$zip = 1;//Количество файлов на страницу:$filestr = 9;//Количество папок на страницу:$dirstr = 9;//Список файлов$allfile = 'mp3,amr,wav,mmf,mid,jpg,JPG,gif,GIF,png,PNG,3gp,avi,mp4,sis,sisx,sys,jar,txt,zip,rar';//Длина и высота картинок для предпросмотра$neww = 40;$newh = 40;//Количество комментариев на страницу:$kommstr = 9;// PCLZIP$pclzip = 'pclzip.lib.php';// ID$mp3 = 'id.php'; // там же должен находиться pear.php// Верх$top = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Загрузки</title><link rel="stylesheet" href="style.css" type="text/css" /></head><body><div class="w">'.$_SERVER['HTTP_HOST'].'<br/></div>';// Низ$foot = '<div class="w"><div class="n"><div class="fot">'.$_SERVER['HTTP_HOST'].'</div></div></div></body></html>';if(substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')){header('Content-type: text/html; charset=utf-8');}else{header('Content-type: application/xhtml+xml; charset=utf-8');}header('Cache-control: no-cache');?>

Добавлено спустя   2 минуты  57 секунд:
то есть, конкретная страница верно построена, и body и html

Gemorroj » 2008.12.04 13:35

блооооо... это ошибка php или html????

Alaya » 2008.12.04 13:37

xml parsing failed
Добавлено спустя   3 минуты  22 секунды:
Паш, ну откуда мне знать, о чем ты спрашиваеш?! Парсинг... Сайт был построен на основе этого скрипта . Не работает теперь. После смены настроек сервера, все скрипты глюкнули. Всё вроде разгребла, а вот это основное... Никак

Alaya » 2008.12.04 13:49

дивы убрала, в этих двух строках. Ошибка осталась на месте, хотя по идее, ошибка уже другая должна быть - закрытые несуществующие дивы (не знаю как это правильно назвать)

Gemorroj » 2008.12.04 14:46

Код:

1
2
3
4
//ВЛОЖЕННЫЕ ПАПКИ
$glob_dir=glob('load/'.$dir.'/*',GLOB_ONLYDIR);
print_r($glob_dir);
exit;

замени таким образом, что пишет?

Alaya » 2008.12.04 15:07

xml passing failed : syntax error ( line 14 , character 0)
показывает строки 11, 12, 13
Добавлено спустя   5 минут  5 секунд:
вот что показывает
Добавлено спустя   7 минут  58 секунд:
влезает слеш второй...

Gemorroj » 2008.12.04 15:29

да мне не парсинг надо, а где прерывается работа скрипта.
теперь убери то и закомментируй строку $count=countf($dirt);

Alaya » 2008.12.04 15:39

страница открылась. Но папка с загрузками не видна.

Gemorroj » 2008.12.04 16:19

давай описание функции countf

Alaya » 2008.12.04 17:03

где его брать? Это?

Код:

1
span style="color: #0000BB"><?phpfunction countf($f){$f2 = str_replace('/', 'D',$f);if(file_exists('count/'.$f2.'.dat')){$j=explode('|',file_get_contents('count/'.$f2.'.dat'));if($j[0]>time()-3600){return $j[1];}}$d[] = 'load/'.$f;$sz = 0;do{$dir = array_shift($d);$h = opendir($dir);while($f = readdir($h)){if($f != '.' && $f != '..' && $f[0]!='.' && is_readable($dir.'/'.$f)){if(is_dir($dir.'/'.$f)){$d[] = $dir.'/'.$f;}else{++$all;}$sz += filesize($dir.'/'.$f);}}closedir($h);}while(sizeof($d) > 0);if($sz >= 1048576){$c = (int)$all.' / '.round($sz/1048576,1).' mb';}else{$c = (int)$all.' / '.round($sz/1024,1).' kb';}file_put_contents('count/'.$f2.'.dat',time().'|'.$c);return $c;}?>
Gemorroj » 2008.12.04 17:19

это, только ошибки так сразу и не вижу.

Alaya » 2008.12.04 17:22

этот скрипт у тебя брала. В загрузках, wap4ik2.zip
Добавлено спустя   1 минуту  20 секунд:
там где-то выползает вторая / в директории . Может в этом дело?

Gemorroj » 2008.12.04 18:56

PHP Version 4.4.9
Лена!!! Я даже не рассматриваю эту давным давно устаревшую версию! Переползай на PHP 5. Проблема именно в версии PHP. Скрипты из архива на wapinet.ru почти все требуют именно PHP 5.

Alaya » 2008.12.04 19:03

через фтакесс подключаю 5 . И толку нет
Добавлено спустя   6 минут  35 секунд:
:( пи[цензура] сайту

Gemorroj » 2008.12.04 19:14

через .htaccess ты делаешь php5 как cgi модуль. а нужно как модуль апача. тем более что в данный момент там стоит php4.
Добавлено спустя   1 минуту  16 секунд:
не сайту пи, а пи старой версии PHP. Ты еще дольше тяни с переходом, будет проблем еще больше.

Alaya » 2008.12.04 19:40

да не я тяну , Паш. Они вернулись к 4й , весь сервер.

Gemorroj » 2008.12.04 19:41

чем мотивируют?

Alaya » 2008.12.04 19:41

а у меня скрипты глюкают , то когда на 5ю переходили, то теперь на 4ю возвращались.
Добавлено спустя   4 минуты  49 секунд:
что то на днях там произошло , всё полетело. Не работал сайт. Вроде всё наладила, через день снова.
Таня сказала "был
пересобран апаче и php.
по умолчанию теперь
php4 а доп php5/ то есть
такие же настройки как
на старом сервере были.
не удалось всё
восстановить, всё равно
был конфликт ПО

Akdmeh » 2008.12.04 22:08

Алая, меня тоже это задрало.
думаю-не уйти ли мне от них к Макстору?

Alaya » 2008.12.04 23:16

думаеш лучше будет ? По большому счету, для сайта тематики Пашки, действительно нужно обновляться постоянно. Для сайта моего направления, наверное важнее стабильность работы, так как всё же более нацелено на развлечения и информацию. В качестве поддержки, Татьяне нет равных. Поэтому не знаю, Андрей, что тебе выбирать. Я не уйду с зеосхост.
Добавлено спустя   1 минуту  11 секунд:
вроде работает главная. Частично :)

Gemorroj » 2008.12.04 23:25

Лена, весь интернет перешел на PHP5. Тебя устроит такое положение, что как и с данным скриптом, ты не сможешь пользоваться другими скриптами? Что ты не сможешь использовать весь тот дополнительный функционал, который дает PHP5, по сравнению с PHP4?
Дружба дружбой, но я бы знакомым рекомендовать хостинг, который до сих пор не может поставить PHP5, рекомендовать не стал.

Alaya » 2008.12.04 23:29

Паш, а чем отличается 5 от 4 ?

Gemorroj » 2008.12.04 23:44

лучшим ответом будет отправка тебя на php.net =) но я добрый и отвечу так - функционалом)
Добавлено спустя   2 минуты  42 секунды:
в данном случае сбоит на file_put_contents , эта функция появилась только в PHP5.

Alaya » 2008.12.05 09:34

понятно теперь.

Akdmeh » 2008.12.18 19:33

пошел я все-таки к Макстору.
Жалоб пока нет, да и я не особо то пока что-то делаю-времени нет