как правильно работать с opendir

kvins
На сайте с 23.08.2011
Offline
95
600

в теории должно работать так , зашел на страницу с переменной которая имеет значение 2

$str = 2

эту переменую я превращаю в сесию

$_SESSION['loadfa'] = $str;

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

делал сначала так открывалась через значение сессии , но были какие то лишние картинки

$dir = opendir ("siemka/$loadfa");

while ($file = readdir ($dir))

{

echo " <img class='gall' src='siemka/$loadfa/$file' ><br>";

}

closedir ($dir);

и на форуме мне показали что надо такой код

if ($handle = opendir('siemka/$loadfa')) {

while (false !== ($file = readdir($handle))) {

if ($file != "." && $file != "..") {

echo " <img src='siemka/$loadfa/$file' ><br>";

}

}

closedir($handle);

}

вроде все теперь ошибок нет , ну этот кусок почему то не реагирует на сессию , тоесть никакая папка не открываеться , только если подставить циферку вместо этого

Магазин уникальных статей. (http://linkum.ru/to/13254/)
LEOnidUKG
На сайте с 25.11.2006
Offline
1742
#1

Может быть не:

if ($handle = opendir('siemka/$loadfa')) {

а всё таки:

if ($handle = opendir('siemka/'.$_SESSION['loadfa'])) {

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
kvins
На сайте с 23.08.2011
Offline
95
#2
LEOnidUKG:
Может быть не:
if ($handle = opendir('siemka/$loadfa')) {

а всё таки:
if ($handle = opendir('siemka/'.$_SESSION['loadfa'])) {

хмм заработало , а почему так ??

в первом варианте и так работало а во втором нет ?

вроде же все сессии автоматически становятся переменными

LEOnidUKG
На сайте с 25.11.2006
Offline
1742
#3
вроде же все сессии автоматически становятся переменными

С каких пор? У вас что глобальные переменные включены?

А вообще посмотрите, что у вас кавычки отличаются. НО, пишите всегда так как я вам написал.

gormarket
На сайте с 29.12.2010
Offline
47
#4

в строках заключенных в одиночные кавычки PHP не обрабатывает переменные,

т.е. в строке

if ($handle = opendir('siemka/$loadfa')) {

$loadfa не будет заменена значением этой переменной и останется как есть, а если все-таки хотите, чтобы переменная заменялась внутри строки ее значением, используйте двойные кавычки:

if ($handle = opendir("siemka/$loadfa")) {

(я всегда избегаю использование такой возможности, или

if ($handle = opendir("siemka/".$loadfa)) {

а еще лучше

if ($handle = opendir('siemka/'.$loadfa)) {

,т.к. быстрее выполняется)

Добавлено:

а глобальные переменные лучше отключить

чтобы, если у Вас есть $_SESSION['loadfa'], эта переменная не была доступна по $loadfa

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий