Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.06.2011, 23:51   #1
Sanek_ntsk
Форумчанин
 
Регистрация: 08.11.2007
Сообщений: 91
Репутация: 5
По умолчанию Вывод 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
Репутация: 74

icq: 332883664
По умолчанию

ну если смысл всего этого извращения в том, чтобы не палить путь к папке в которой лежат картинки, то можно в главной страничке выбрать два числа:
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
Репутация: 366

icq: 452325803
skype: igreblin
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод изображений 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 11:09
delphi вывод 3д изображений ben95 Помощь студентам 1 29.03.2008 14:22


08:32.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.