Перенос переменой

H
На сайте с 05.08.2008
Offline
18
671

Приветствую!

Как перенести переменную изодного файла php в другой?

Например. В index.php есть $level, что сделать, чтобы и в постороннем файле image.php она была понятна?

sowich
На сайте с 11.06.2007
Offline
26
#1

require например

Мой блог (http://sowich.info) Пишу скрипты на php, perl - велком!
K
На сайте с 31.08.2006
Offline
47
#2
Hilgert:
Приветствую!
Как перенести переменную изодного файла php в другой?
Например. В index.php есть $level, что сделать, чтобы и в постороннем файле image.php она была понятна?

Если я правильно понял, то у вас в index.php генерируется тег

<img src="image.php" ...>
, который выводит картинку?

Если так, тогда в индекс.пхп выводите другой тег -

<img src="image.php?level=N" ...>

, где N - это значение переменной level.

Тогда в image.php вы сможете узнать получить значение из переменной.

$_GET['level']

Но надо быть аккуратным - все данные, принятые от пользователя (браузера) надо проверять и фильтровать. Если level может содержать только целое число, может подойти самая простая проверка:

if (!is_int($_GET['level']))  {

die('Incorrect level value');
}
Размещаем статьи - Украинское СМИ, ПР5, ТИЦ 3000, ЯК, ДМОЗ, домену > 10 лет (/ru/forum/416715)
InoHacker
На сайте с 18.10.2009
Offline
75
#3

А сессии для кого придуманы ? =)

http://www.phpfaq.ru/sessions

Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
K
На сайте с 31.08.2006
Offline
47
#4
InoHacker:
А сессии для кого придуманы ? =)
http://www.phpfaq.ru/sessions

А если на странице выводится не одна картинка? а десять картинок с разным значением левела?

Мой вариант будет работать в любом случае. Сессии - только если 1 картинка на странице, и если пользователь не откроет 2 страницы подряд. Иначе - результат непредсказуем.

🍻

InoHacker
На сайте с 18.10.2009
Offline
75
#5
Kirilll:
А если на странице выводится не одна картинка? а десять картинок с разным значением левела?
Мой вариант будет работать в любом случае. Сессии - только если 1 картинка на странице, и если пользователь не откроет 2 страницы подряд. Иначе - результат непредсказуем.
🍻

Ммм ... не совсем понял, что мешает передавать через сессии толпу переменных ? =))

ИМХО при правильной работе с сессиями ничего критичного не будет. Как вариант убивать в конце файла image.php сессии ...

или я что то не так понял ? =)

K
На сайте с 31.08.2006
Offline
47
#6
InoHacker:
Ммм ... не совсем понял, что мешает передавать через сессии толпу переменных ? =))
ИМХО при правильной работе с сессиями ничего критичного не будет. Как вариант убивать в конце файла image.php сессии ...
или я что то не так понял ? =)

Попытаюсь объяснить.

Вот например страница индекс.пхп

На ней выводится 10 рисунков, которые генерит имедж.пхп на основании этой переменной левел...

Допустим, мы сохраним массив из 10 элементов в сессию, и будем забирать элементы из массива по мере поступления запросов к имедж.пхп

Но интернет - не очень надежная штука. Поэтому запрос на 10-ю картинку может прийти раньше, чем запрос, например, на 8-ю... Тогда есть вероятность, что имедж.пхп сгенерирует не ту картинку, которую ожидает увидеть пользователь.

Другая ситуация - пользователь два раза вызывает индекс.пхп с разными параметрами.

Например, сначала индекс.пхп?ид=1 и через полсекунды индекс.пхп?ид=2.

если при каждом вызове будет сохраняться в сессии по 10 картинок - то вызов индекс.пхп?ид=2 заменит в сессии массив, который сгенерирует индекс.пхп?ид=1... Соответственно, если за эти полсекунды окно, вызвавшее индекс.пхп?ид=1 не успеет загрузить все картинки, то последние картинки могут относиться не к странице индекс.пхп?ид=1, а к индекс.пхп?ид=2

Можно конечно решить эту проблему, но проще передать левел ДЖЕТОМ, и не мучаться.

Надеюсь, изложил мысль понятно )

H
На сайте с 05.08.2008
Offline
18
#7

Kirill, спасибо!

ewg777
На сайте с 04.06.2007
Offline
225
#8

Hilgert, долго Вы ещё будете терроризировать сёрч элементарными вопросами по php? Уже не смешно, как бы.

Dreammaker
На сайте с 20.04.2006
Offline
569
#9
Kirilll:
все данные, принятые от пользователя (браузера) надо проверять и фильтровать.

не все, а только те которые нужно проверять :)

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