Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 23:51   #1
Sanek_ntsk
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 91
По умолчанию Вывод 2 разных изображений

В папке хранится 10 изображений. С помощью скриптов пытаюсь вывести на страницу 2 разных изоражения. Для 1го изображения скрипт:
Код:
<?php
	session_start();
	$fnames = glob("photos/*.{jpg}", GLOB_BRACE);
	$photoid = rand(1, count($fnames));
	$_SESSION['last'] = $photoid;
	$fname = "photos/photo_".$photoid.".jpg";
	$size = getimagesize($fname);
	header("Content-type: {$size['mime']}");
	echo file_get_contents($fname);
?>
Для 2 го:
Код:
<?php
	session_start();
	$fnames = glob("photos/*.{jpg}", GLOB_BRACE);
	do { 
		$photoid = rand(1, count($fnames));
	} while($photoid == $_SESSION['last']);
	$fname = "photos/photo_".$photoid.".jpg";
	$size = getimagesize($fname);
	header("Content-type: {$size['mime']}");
	echo file_get_contents($fname);
?>
На главной странице пишу так:
Код:
<img src="image1_scr.php" />
<img src="image2_scr.php" />
Проблема в том, что при первом открытии страницы второе изображение не грузится, а после обновления всё работает отлично!
1. Как мне исправить проблему?
2. Можно ли загружать изображения с помощью только одного скрипта? Если можно, то как?
Не мы такие, жизнь такая...
Sanek_ntsk вне форума Ответить с цитированием
Старый 29.06.2011, 06:30   #2
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

ну если смысл всего этого извращения в том, чтобы не палить путь к папке в которой лежат картинки, то можно в главной страничке выбрать два числа:
PHP код:
$fnames=glob("photos/*.{jpg}",GLOB_BRACE);
$count=count($fnames);
$photoid_1=rand(1,$count);
do{
$photoid_2=rand(1,$count);} while($photoid_2==$photoid_1);

echo 
'<img src="image_scr.php?id='.$photoid_1.'">';
echo 
'<img src="image_scr.php?id='.$photoid_2.'">'
а в файле image_scr.php вывести нужное:
PHP код:
$id=$_GET['id'];
$fnames=glob("photos/*.{jpg}",GLOB_BRACE);
$fname="photos/photo_".$id.".jpg";
//дальше выводим изображение 
недостаток такого варианта в том, что функция glob() будет на один раз больше выполняться, потому если это критично, то можно сразу в главном файле выбирать имя файла (без расширения даже) и передавать его в image_scr.php, а там формировать полный путь и выводить.
а если нет необходимости и пути к файлам прятать, тогда все можно сделать в главном файле.
Все генитальное просто.

Последний раз редактировалось kirosin; 29.06.2011 в 06:45.
kirosin вне форума Ответить с цитированием
Старый 29.06.2011, 06:35   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Второй скрипт не знает идентификатора сессии, которую создал первый скрипт, соответственно, для него $_SESSION["last"] не определён
Самым простым способом будет в начале работы главного скрипта создать сессию, записать туда число и передавать её идентификатор image1_scr и image2_scr. Кстати тогда надобность в двух разных скриптах вообще отпадает, если после извлечения номера фотографии записать в сессию новый номер

Кстати, учтите, что есть одно тонкое место - никто не гарантирует что порядок выполнения скриптов будет именно сначала image1_scr, потом image2_scr
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод изображений dimonnnn PHP 3 14.08.2010 10:42
Вывод изображений из списка ListBox ChEaTeR-abc Помощь студентам 6 13.07.2010 16:55
Вывод изображений с задержкой. hk47 Компоненты Delphi 11 28.04.2010 09:27
Вывод изображений из базы данных Princesse PHP 5 12.01.2010 10:09
delphi вывод 3д изображений ben95 Помощь студентам 1 29.03.2008 13:22