ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

29.03.2008, 03:04
|
|
Познающий
Регистрация: 24.06.2007
Сообщений: 84
Провел на форуме: 1348653
Репутация:
192
|
|
я что-то совсем не могу врубится, что это шняга делает(не достаточно владею JS), но разве это не раздел для php??
|
|
|

29.03.2008, 03:41
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
у тя скрипт каким образом глючит? кстате существует конструкция elseif или switch case
|
|
|

29.03.2008, 14:28
|
|
Новичок
Регистрация: 28.03.2008
Сообщений: 24
Провел на форуме: 52770
Репутация:
-5
|
|
PHP код:
<?php
include_once"../template/pclzip.php";
$dir=check($dir); //папка
$arch=check($arch); //архив
$open=check($open);
echo '<div class=v><b>Просмотр архива</b></div>';
if($dir!="" && $arch!=""){
if (!$action){
$zip=new PclZip("$dir/$arch");
if (($list = $zip->listContent()) != 0){
for ($i=0; $i<sizeof($list); $i++){
for(reset($list[$i]);
$key = key($list[$i]);
next($list[$i])) {
$zfilesize = strstr($listcontent,"--size");
$zfilesize = ereg_replace("--size:","",$zfilesize);
$zfilesize =@ereg_replace("$zfilesize","$zfilesize|",$zfilesize);
$sizelist .="$zfilesize";
$listcontent = "[$i]--$key:".$list[$i][$key]."";
$zfile = strstr($listcontent,"--filename");
$zfile =ereg_replace("--filename:","",$zfile);
$zfile =@ereg_replace("$zfile","$zfile|",$zfile);
$savelist .="$zfile";
}}
$sizefiles2 = explode("|",$sizelist);
$sizelist2=array_sum($sizefiles2);
$obkb=round($sizelist2/1024,2);
$preview = explode("|",$savelist);
$count = count($preview)-1;
echo '<div class=pay><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
echo '<img src="../img/o.gif" alt="">Всего файлов: '.$count.'<br><img src="../img/go.gif" alt="">Вес архива: '.$obkb.' кб</div>';
if (empty($_GET['start'])) $start = 0;
else $start = $_GET['start'];
if ($count < $start + $config_ziplist){ $end = $count; }
else {$end = $start + $config_ziplist; }
for ($i = $start; $i < $end; $i++){
$sizefiles = explode("|",$sizelist); //вырезаем элементы из массива с размерами файлов
$selectfile = explode("|",$savelist);
$path = $selectfile[$i];
$fname = ereg_replace(".*[\\/]","",$path);
$zdir = ereg_replace("[\\/]?[^\\/]*$","",$path);
$path = str_replace("/","*",$path);
$ext=strtolower(strrchr($fname, "."));
switch($ext){
case 'dir': $ico='dir.gif'; break;
case '.jpg': case '.jpeg': $ico='jpg.gif'; break;
case '.gif': $ico='gif.gif'; break;
case '.mid': $ico='mid.gif'; break;
case '.mp3': $ico='mp3.gif'; break;
case '.wav': case '.amr': $ico='wav.gif'; break;
case '.mmf': $ico='mmf.gif'; break;
case '.jad': $ico='jad.gif'; break;
case '.jar': $ico='jar.gif'; break;
case '.zip': $ico='zip.gif'; break;
case '.txt': $ico='txt.gif'; break;
case '.exe': $ico='exe.gif'; break;
case '.htm': $ico='htm.gif'; break;
case '.html': $ico='htm.gif'; break;
case '.php': $ico='php.gif'; break;
default: $ico='file.gif'; break; }
if(!$fname){
echo '<img src="../images/icons/dir.gif" alt=""> <b>Директория '.$zdir.'</b><br>';
}else{
echo '<img src="../images/icons/'.$ico.'" alt=""> <a href="zip.php?action=preview&dir='.$dir.'&arch='.$arch.'&open='.$path.'&start='.$start.'&'.SID.'">'.$zdir.'/'.$fname.'</a>';
echo ' ('.formatsize($sizefiles[$i]).')<br>';
}}
echo '<div class=pay>';
if ($start != 0) {echo '<img src="../img/go.gif" alt=""><a href="zip.php?start='.($start - $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Назад</a>';}else{echo'<img src="../img/go.gif" alt="">Назад';}
echo ' | ';
if ($count > $start + $config_ziplist) {echo ' <a href="zip.php?start='.($start + $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Далее</a><img src="../img/g.gif" alt="">';}else{echo'Далее<img src="../img/g.gif" alt="">';}
$total=$count;
if($total>0){
$ba=ceil($total/$config_ziplist);
$ba2=$ba*$config_ziplist-$config_ziplist;
echo '<br>';
echo '<img src="../img/g.gif" alt="">Страницы:';
$asd=$start-($config_ziplist*3);
$asd2=$start+($config_ziplist*4);
if($asd<$total && $asd>0){echo ' <a href="zip.php?start=0&dir='.$dir.'&arch='.$arch.'&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_ziplist);
if ($start==$i) {
echo ' <b>'.$ii.'</b>';
} else {
echo ' <a href="zip.php?start='.$i.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ii.'</a> ';
}}
$i=$i+$config_ziplist;
}
if($asd2<$total){echo ' ... <a href="zip.php?start='.$ba2.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ba.'</a>';}
}
}else{
echo '<br><b>Невозможно открыть архив!</b><br>';
echo 'Ошибка: '.$zip->errorInfo(true);
}
echo'<br><div class=pay><img src="../img/go.gif" alt=""><a href="down.php?action=ob&did='.$dir.'&fid='.$arch.'&'.SID.'">Вернуться</a></div>';
}
//////////////////////////////////action preview////////////////////////////////
if($action=="preview"){
$open = str_replace("*","/",$open);
$zip=new PclZip("$dir/$arch");
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $open,PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$letters=array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");
for ( $b=0; $b<66; $b++) {if(strstr($content,$letters[$b])!== false){$utf="ok";}}
$preview2 = explode("\r\n",$content);
$count = count($preview2);
/* function highlight_code($code) {
$code=trim($code);
return highlight_string($code,true);} */
echo '<img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
echo '<img src="../images/img/files.gif" alt=""> <b>'.$open.'</b><br>';
echo 'Всего строчек: '.(int)$count.'<br><hr>';
if($utf=="ok"){echo highlight_code($content);}else{echo highlight_code(win_to_utf($content));}
echo'<div class=pay><img src="../img/go.gif" alt="">';
echo'<a href="zip.php?start='.$start.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Вернуться</a></div>';
}
}else{header ("Location: index.php?".SID); exit;}
echo'<div class=pay><img src="../img/go.gif" alt=""><a href="down.php?did='.$dir.'&'.SID.'">В раздел</a><br>';
echo'<img src="../img/go.gif" alt=""><a href="index.php?'.SID.'">К категориям</a></div></div></div>';
?>
------------------------------------------------
Подскажите, как сделать чтоб не только просматривать файлы в архиве можно было, но и выкачивать их напрямую из архива, нераспаковывая его
Последний раз редактировалось azote; 29.03.2008 в 14:32..
|
|
|

29.03.2008, 14:29
|
|
Познающий
Регистрация: 24.06.2007
Сообщений: 84
Провел на форуме: 1348653
Репутация:
192
|
|
РАБОЧИЙ:
Код HTML:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd'>
<html><head>
<title>Creeptor</title>
<link rel='SHORTCUT ICON' href='http://status.icq.com/27/online1.gif' />
<link rel='stylesheet' type='text/css' href='/css/index.css' />
</head>
<body>
<h1>Проверено: 51(с 900051 до 900050)<br />В онлайне: 0<br />В офлайне: 1<br />Неизвесно: 50<br />Ошибок: 0</h1></body></html>
НЕРАБОЧИЙ:
Код HTML:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd'>
<html><head>
<title>Creeptor</title>
<link rel='SHORTCUT ICON' href='http://status.icq.com/27/online1.gif' />
<link rel='stylesheet' type='text/css' href='/css/index.css' />
</head>
<body>
если просмотреть исходный код готовый страницы тогда видно, что for(...) не работает до конца...
|
|
|

29.03.2008, 23:10
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
1. Нормальная регулярка для проверки емаил на валидность (при условии что потом $email приводим к нижнему регистру) или есть получше?
PHP код:
function email_test($email)
{
if(ereg('^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]*.)+[a-zA-Z]{2,4}$', $email)) return 1; //правильный емайл
return 0; // не правильный емайл
}
2. Дайте, плиз нормальную, готовую регулярку для проверки логина на валидность. Под валидностью подразумевается использование разрешённых символов, длина {4,10}
Последний раз редактировалось -=lebed=-; 29.03.2008 в 23:26..
|
|
|

29.03.2008, 23:18
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
[_.0-9a-zA-Z-] -> [_\.0-9a-zA-Z-]
([0-9a-zA-Z][0-9a-zA-Z-]*.) зачем круглые скобки? снова точка не экранируется
|
|
|

29.03.2008, 23:25
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
И можно убрать A-Z, оставить только a-z, а функцию заменить на eregi(), а лучше вообще в PCRE написать, они быстрее posix.
|
|
|

29.03.2008, 23:31
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от Piflit
[_.0-9a-zA-Z-] -> [_\.0-9a-zA-Z-]
([0-9a-zA-Z][0-9a-zA-Z-]*.) зачем круглые скобки? снова точка не экранируется
Так?
[php]
PHP код:
function email_test($email)
{
if(ereg('^[_\.0-9a-zA-Z-]+@[0-9a-zA-Z][0-9a-zA-Z-]*\.+[a-zA-Z]{2,4}$', $email)) return 1; //правильный емайл
return 0; // не правильный емайл
}
|
|
|

29.03.2008, 23:38
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
\w|[\._-]+@(\w|\.+)[a-z]{2,4} м?
-=lebed=- PCRE рулит и скоро обгонит POSIX во всём=)
Последний раз редактировалось Doom123; 29.03.2008 в 23:46..
|
|
|

29.03.2008, 23:39
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
/^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|