Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: возвратить кликабельный список файлов директории- только из корня?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Паэт
Отправлено: 24 Июля, 2016 - 11:38:59
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Швейцария, Базель


Помог: 0 раз(а)




Добрый день,

бьюсь с кодом, -

<?php $dir = 'proza_moi_basic';

$files = scandir($dir);

foreach ($files as $key => $value) {
echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/proza_moi_basic/'.$value.'">'.$value.'</a> <br/>';
}
?>

что интересно - иногда срабатывает!
пхп должен однако находиться в корне, в корне должна быть и папка 'proza_moi_basic';
однако позже (очевидно, при обновлении кэша) мой хтмл не может найти пхп по простой ссылке а href.... а если находит выдает подобную ошибку:

// //
Warning: scandir(kalaki_ris) [function.scandir]: failed to open dir: No such file or directory in /var/www/web1028/html/paet/paet_ hauptkatalog/php_paet_hauptkatal og/katalogisator_so_ssilkoi.php on line 26

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /var/www/web1028/html/paet/paet_ hauptkatalog/php_paet_hauptkatal og/katalogisator_so_ssilkoi.php on line 26

Warning: Invalid argument supplied for foreach() in /var/www/web1028/html/paet/paet_ hauptkatalog/php_paet_hauptkatal og/katalogisator_so_ssilkoi.php on line 27
//

(здесь другие каталоги)


так что, в общем-то хелп, чо.

Однако
 
 Top
Fart
Отправлено: 25 Июля, 2016 - 07:55:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




ищет в $dir что вписал. проверь правильный адрес файлов и папок.

а так $dir = 'proza_moi_basic';

должен содержать либо абсолютный адрес, либо с указание старшинства директы.

$files = scandir($dir);

через var_dump($files); зырь, что в нем подставив в цикл.

подозреваю что:

$dir = './proza_moi_basic';
или
$dir = '../proza_moi_basic';

как думаешь?

(Отредактировано автором: 25 Июля, 2016 - 08:04:46)

 
 Top
Паэт
Отправлено: 25 Июля, 2016 - 20:57:32
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Швейцария, Базель


Помог: 0 раз(а)




Так что я думаю, если вот он оригинальный работающий код:

<html><body>

<div style="height: 98%; width: 45%; margin: auto; background-color: #c7fcec; border-left: 4px solid #ff0026;" align="center"><pre><p> <p> </pre>
<b>Cодержание каталога "Франт <br>"Мудрилка клуба постоянных"<br><i><br> Для увеличения текста- <br>нажмите комбинацию клавиш "Ctrl" и "+" <p></i>
<?php // пробую передвинуть сканируемую папку добавив .\
$dir = 'katalog';
$files = scandir($dir);
foreach ($files as $key => $value) {
echo '<a href="http://'.$_SERVER['HTTP_HOST'].'./katalog/'.$value.'">'.$value.'</a> <br/>';
}
?>

</div></html>






Fart пишет:
ищет в $dir что вписал. проверь правильный адрес файлов и папок.

а так $dir = 'proza_moi_basic';

должен содержать либо абсолютный адрес, либо с указание старшинства директы.

$files = scandir($dir);

через var_dump($files); зырь, что в нем подставив в цикл.

подозреваю что:

$dir = './proza_moi_basic';
или
$dir = '../proza_moi_basic';

как думаешь?

(Добавление)
я думаю, что просто так во вложенную папку нельзя зайти, даже если она отображается в виде ссылки. Нужны фокуспокусы.
Провайдер сказал, что дело не в апаче вообще, дело в том, что должен быть механизм открытия вложенных папок автоматически (без указания пути) и соотв. выведения списка файлов в виде ссылок.
 
 Top
Fart
Отправлено: 26 Июля, 2016 - 02:56:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




доступы ты получаешь к нужной тебе директории из любого файла.
в указанной ссылке могут быть осуществлен доступ.
создавай такой с соответствующими параметрами.

скажем у тебя директы
logs/1
www/1
www/1/1
www/1/2
чтение по ссылке происходит из www/1 (типа http // ip / index)
www/1/1 (типа http // ip / papka / index)

доступ к logs/1 через http протокол не получить - это для внутреннего чтения.

из www/1 и низшего порядка www/1/1 и www/1/2 можешь получить доступ к logs/1

(Отредактировано автором: 26 Июля, 2016 - 03:03:45)

 
 Top
Паэт
Отправлено: 26 Июля, 2016 - 20:23:05
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Швейцария, Базель


Помог: 0 раз(а)




Fart пишет:
доступы ты получаешь к нужной тебе директории из любого файла.
в указанной ссылке могут быть осуществлен доступ.
создавай такой с соответствующими параметрами.

скажем у тебя директы
logs/1
www/1
www/1/1
www/1/2
чтение по ссылке происходит из www/1 (типа http // ip / index)
www/1/1 (типа http // ip / papka / index)

доступ к logs/1 через http протокол не получить - это для внутреннего чтения.

из www/1 и низшего порядка www/1/1 и www/1/2 можешь получить доступ к logs/1




Вот чувствую - правильное направление! Но что значит - чтение по ссылке из... ? Я из статичного хтмл по хтттп протоколу тупо ссылаюсь на файл php, который и выполняет доступ. Попытка запихать этот пхп в любую другую папку кроме корня приводит к тому, что срабатывает пару раз и пишет - не могу найти. Должен ли этот пхп лежать в папке низшего уровня, чтобы он мог читать папки высшего или как? Задача в принципе - по щелчку на кнопке-картинке вызывать список файлов и вложенных папок, которые тоже можно открыть и так далее...
 
 Top
Fart
Отправлено: 27 Июля, 2016 - 16:45:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




если ты исправил и у тебя заработало, то все хорошо. однако, тебе рекомендую прочитать как работает php с файлами и папками для дальнейшего понимания и более сложной работы с директориями на сервере.

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

так как я не вижу "всей картины" твоего хоста, то однозначно не могу подсказать как исправить код.

вкратце скажу, что сайт имеет корневую папку ( например С:\Server\domains\site\www ) с файлом index.php - это файл с которого начинается работа любого сайта http://site/

если после корневой папки идет следующие например С:\Server\domains\site\www\dir1\dir2, то доступ можно к этим папкам получить http://site/dir1/dir2/

если имеется такой пример С:\Server\domains\site\log - то прямой доступ через ссылку пользователя получить будет нельзя. для этого нужно в "просмотре" директории указывать ./log - это значит, что нужно вернуться назад к верхней директории и обратиться к папке log.

Это все лирика.

Что касается твоего примера ты указал scandir("proza_moi_basic");
PHP ответил, что Warning: scandir(kalaki_ris) [function.scandir]: failed to open dir: No such file or directory... это значит, что в "kalaki_ris" - пхп не видет и не найдет "proza_moi_basic". к тому же у тебя в scandir имеется наименование kalaki_ris и далее похожая ошибка. допускаю, что еще и допущена ошибка в коде, кроме неверное указанных данных.

Возвращаясь к моему описанию выше - тебе нужно понять как правильно расположены у тебя директории и файлы с ними, какие являются корневыми, а какие вложенные. После этого, как разберешься в паутине папок, поймешь и будет легко и просто писать код связанный с папками и файлами.

PS. лично я не придерживаюсь создавать бесконечное количество ссылок к каждому вложенному файлу или папке. ИМХО возникают проблемы с кодом, мониторингом и контролем за ними.

Я бы на твоем месте сделал скрытые файлы и папки, которые бы лежали вне корневого сайта. И из определенного файла делал доступ по зашифрованному тобой кешу к ним. Так бы ты избавился от лишнего кода и было проще работать с ними.

(Отредактировано автором: 27 Июля, 2016 - 16:48:04)

 
 Top
Паэт
Отправлено: 29 Июля, 2016 - 18:27:32
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Швейцария, Базель


Помог: 0 раз(а)




Весьма признателен за профессиональные и добрые советы, очень признателен.
И ошибки в коде и недостаток знаний - всё присутствует. Сайт нужен уже сейчас, а пока я дочитаюсь до сути, времени уйдет прорва

Я научился "заходить" во вложенные папки, проблема только в том, что пхп, который к ним обращается, обязательно должен находиться в корне. Что бы я ни делал - только так.

Вот я дам свой рабочий код и за ним - ссылка из хтмл как это у меня организовано.
Если бы мне можно было как-то этот пхп не в корень, а, скажем, в ту же папку положить где и файлы - вот было бы здоровско!

<!-- . -->
"бывший сайт"<p><sub>Отрывки из "Дневник Паэта" с безвременно убиенного джумлой<br>по-доброму задуманного сайта.</sub><p>
<a href="..\arc_dnewnik_img.php">
<img src="zep.gif"></a><p>
<!-- -->

а это сам пхп, лежащий в корне


<html><body>

<div style="height: 98%; width: 45%; margin: auto; background-color: #c7fcec; border-left: 4px solid #ff0026;" align="center"><pre><p> <p> </pre>
<b><b>дневник. <br><br><i><sub><br> Для увеличения текста- <br>нажмите комбинацию клавиш "Ctrl" и "+" <p></i></sub>
<?php // рабочий мустер
$dir = 'paet_hauptkatalog/arc_dnewnik_img';
$files = scandir($dir);
foreach ($files as $key => $value) {
echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/paet_hauptkatalog/arc_dnewnik_img/'.$value.'">'.$value.'</a> <br/>';
}
?>

</div></html>
 
 Top
miketomlin
Отправлено: 31 Июля, 2016 - 17:12:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016  


Помог: 5 раз(а)




Подправили значение $dir? Заработало?
 
 Top
Fart
Отправлено: 31 Июля, 2016 - 17:39:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




Если тебе нужна помощь лично, Паэт, пиши в личку , помогу с этим вопросом.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB