Ошибка в PHP коде. Sourcebans.

Тема в разделе "SourceBans", создана пользователем Павел 01, 30 июн 2015.

  1. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Вот ошибка: [​IMG]
    А вот PHP код:
    PHP:
    <?
    $dir opendir ("./demo");
     
    $a =array();
    while (
    $file readdir ($dir))
    if (
    stripos($file,".dem") != false) {
        
    $a[filemtime($file)] = $file;
      }
    ksort($a);
    $rev array_reverse($a);
    $len count($rev);

    echo 
    '
    <table>
    <tr><th>Имя</th><th>Дата</th></tr>'
    ;

    $arr glob("*.dem");
    for (
    $i 0$i $len$i++ ) {
    echo 
    '<tr><td><a href="'.$rev[$i].'">'.$rev[$i].'</a></td><td>'.date('H:i:s d-m-Y',filemtime($rev[$i])).'</td></tr>';
    }
    echo 
    '</table>';
    ?>
     
  2. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    А права на чтение стоят?
     
  3. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Да конечно, другие флаги не могут быть, по любому чтение будет..
     
  4. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    вставь текстом сюда ошибку
     
  5. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    PHP:
    Warningfilemtime(): stat failed for test.dem in /var/www/html/crysisban.ru/pages/page.demo.php on line 6 Warningfilemtime(): stat failed for test.dem in /var/www/html/crysisban.ru/pages/page.demo.php on line 18
     
  6. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.193
    Симпатии:
    423
    Павел 01, какая версия php?
     
  7. ★$$StOk$$★

    ★$$StOk$$★

    Сообщения:
    648
    Симпатии:
    178
    Код шаблона page.demo.php дай.
     
  8. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    это весь код ?

    проблема не в версии пшп
     
  9. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Да весь...
     
  10. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    это не может быть всем кодом, тут даже ничего не выводит кроме блоков td.
    да и вообще код не о чем :)

    Оффтоп
     
  11. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Если $dir = opendir ("./demo"); , поменять на $dir = opendir (".");
    Будет работать, но она берет не из той директории, которая мне нужна. Мне кажется это в коде что-то не так.
     
  12. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Павел 01, ну убери точку перед /demo
    Короче, $dir = opendir ("/demo/"); сделай

    Да и проверку бы делал, if(is_dir($dir)) { ... }
     
  13. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Да весь код это, он должен выводить файлы с разрешением ".dem".

    Добавлено через 3 минуты
    Так как убрать начальную директорию, он по любому выдаст ошибку. Если ток с самого начала диска, то есть /home/sait/demo/
     
    Последнее редактирование: 30 июн 2015
  14. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Павел 01, а просто url поставить нельзя? ftp:// http:// file://
     
  15. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Сделать то можно, но ошибка остается. Файл находит, а время его создания не может считать, выдает ошибку...
     
  16. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    потому что не так написан запрос с php
     
  17. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    PHP:
    while ($file readdir ($dir)) 
    замени на
    PHP:
    while (false !== ($file readdir($dir)))
     
  18. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    916
    You go m8:
    PHP:
    <?
        
    $files = array();
        foreach (
    glob("./demo/*.dem") as $file) { $files[] = $file; }
        
    $len count($files);

            echo<<<'head'
    <table> 
        <tr>
            <th>Имя</th>
            <th>Дата</th>
        </tr>
    head;

        for(
    $i=0$i $len$i++) {
            
    $date date('H:i:s d-m-Y'filemtime($files[$i]));
            
    $blast explode("/"$files[$i]); //массив из пути. Название файла — blast[2].
            
    echo <<<LIST
    <tr>
        <td><a href='
    {$files[$i]}'>{$blast[2]}</a></td>
        <td>
    {$date}</td>
    </tr>
    LIST;
        }
    echo 
    "</table>";
    ?>
    Дата работает. Точную причину бага с opendir не скажу, ибо так и не нашёл решения. Но и так можно, например.

    А если свой скрипт устраивает, то можно просто оператор подавления поставить и забыть.
     
  19. Павел 01

    Павел 01

    Сообщения:
    72
    Симпатии:
    1
    Добавить в SourceBans

    Я добавил авто-залив демок на сайт, но в отдельную папку demos. А код берет из самого сайта, а нужно из demos. Можете оптимизировать код, заранее спасибо.:)
    PHP:
    <?
    $dir opendir (".");
     
    $a =array();
    while (
    $file readdir ($dir))
    if (
    stripos($file,".dem") != false) {
        
    $a[filemtime($file)] = $file;
      }
    ksort($a);
    $rev array_reverse($a);
    $len count($rev);

    echo 
    '
    <table>
            <tr>
                <td height="16" ><b>Имя демки</b></td>
                <td width="24%" height="16" align="center"><b>Дата</b></td>
            </tr>
    '
    ;

    $arr glob("*.dem");
    for (
    $i 0$i $len$i++ ) {
    echo 
    '<tr><td><a href="'.$rev[$i].'">'.$rev[$i].'</a></td><td>'.date('H:i:s d-m-Y',filemtime($rev[$i])).'</td></tr>';
    }
    echo 
    '</table>';
    ?>
     
  20. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    916
    Re: Добавить в SourceBans

    PHP:
    $dir opendir (".");
    Замени на
    PHP:
    $dir opendir ("./demos");