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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<?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>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/10242).' кб';}
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
2
3
4
5
6
7
8
9
10
11
12
13
<?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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
function 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

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