2013-11-17 4 views
0

ОБНОВЛЕНИЕ: Прочитав все ваши советы, я попытался использовать! Isset(), но это тоже не работает.Мои вызовы PHP не выполняются в правильном порядке

Если есть 4 обращения к файлу PHP, кажется, все они должны прибыть в то же время, так что, когда я выполняю

if(!isset($_SESSION['element_01'])){$_SESSION['element_01'] = "Something";} 

, кажется, 2 или 3 звонков все найти $ _SESSION [ «element_01» ] unset!

Должно быть решение этого!

================================================================================================================================== ==============================

у меня есть приложение, которое делает несколько вызовов на PHP файл из

<img src="myfile.php" /> 

Вот пример:

<img src="http://myserver.com/demo/?element=1" ></img> 
<img src="http://myserver.com/demo/?element=2"></img> 
<p>Check out our amazing site for everything we offer</p> 
<img src="http://myserver.com/demo/?element=3"></img> 
<img src="http://myserver.com/demo/?element=20"></img> 

Когда я посылаю значение элемента к error_log как каждый делает свой вызов в мой файл index.php я получаю следующее в моем php_error.log: (NB: Они, кажется, в случайные заказы)

[17-Nov-2013 12:53:54] Element = 2 
[17-Nov-2013 12:53:54] Element = 1 
[17-Nov-2013 12:53:54] Element = 20 
[17-Nov-2013 12:53:54] Element = 3 

Дело в том, я полагаюсь на элемент = 1 называют первым, как я хранения сеанса и с помощью $ _SESSION [ «element_01»] в качестве руководства для других, но потому, что они, кажется, достигают index.php в случайных заказов это может привести к ошибкам PHP, таких как:

PHP Notice: Undefined offset: -1 in http://myserver.com/demo/index.php on line 133 

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

Так мой вопрос:

  1. Есть ли способ обойти это, или есть способ гарантировать, что они называются в правильном порядке? Что-то я ошибаюсь, может быть?

спасибо.

+0

Это для браузеров, чтобы решить, какое изображение на странице нужно получить первым. Однако вы можете просмотреть предварительную выборку и предварительную выборку изображений JavaScript. –

+0

Спасибо, что ответили. Я действительно задавался вопросом, сделали ли браузеры свои дела на этом! – Andy

+0

Если кеширование настроено правильно, браузер может не запрашивать изображения при повторном посещении. Не полагайтесь на то, что может сделать браузер: настройте сеанс на основе того, что запрашивается сервером. т. е. ваш PHP-скрипт. –

ответ

0

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

+0

Спасибо за ваш ответ. Я бы использовал AJAX (и делаю для других вещей), но это приложение позволяет пользователям размещать эти вызовы на своих собственных веб-страницах, поэтому я не могу настаивать на AJAX! – Andy

1

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

Вы должны выполнить эту процедуру в другом месте, прежде чем печатать фотографии. Или проверьте, определена ли эта переменная (посмотрите на язык isset()), прежде чем использовать его, а если нет, создайте его.

+0

Спасибо. Мне нужно будет переосмыслить это! И я просто смотрел на isset(), когда вы отправили свой следующий ответ! :-) – Andy

+0

[pedantic] из документации 'isset': _« это языковая конструкция, а не функция »_. Важное отличие ИМО [/ pedantic]. @Andy: прочитайте раздел справки: вас попросят _not_ оставить _ «спасибо» _ комментарии, но вместо этого отметьте ответ, который помог вам максимально согласиться. –

+0

@ Элиас Ван Оотегем, ты прав, это важно! Я исправил ответ. – saulotoledo

Смежные вопросы