Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Три меняющиеся картинки (https://javascript.ru/forum/project/8341-tri-menyayushhiesya-kartinki.html)

viktod 20.03.2010 05:51

Три меняющиеся картинки
 
Подскажите пожалуйста как сделать, чтобы наверху страницы сайта было три картинки, которые обновляются при каждом обновлении страницы?
Образец здесь
http://gunbid.info/index.php?
Нашел много скриптов, но для одной картинки, а нужно три.
Уверен, что это многим пригодится.
Если можно - дайте пожалуйста код скрипта или ссылку на него.
Спасибо.

bushstas 20.03.2010 07:51

Я написал код (если я правильно тебя понял) решения на PHP т.к. тебе динамически не надо обновлять картинки а только при загрузке выбирать 3 случайные

<div style="position:absolute;left:50%;margin-left:-500px;margin-top:320px;width:1000px" id="ThreePictures">
<table style="width:100%">
<tr>

<?

$url = "pictures/catalog"; // адрес папки где хранятся картинки для выборки
if (is_dir($url)) { // далее цикл для поиска всех картинок в указанной папке
if ($dir = opendir($url)) {
$i=0;
$allPictures=Array();
while (false !== ($file = readdir($dir))){

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

			$a=pathinfo($file);
			if ($a['extension']=="jpg"){$i++; // здесь можно указать и другие типы файлов типа png, gif и т.п.
			$allPictures[$i]=$file;
		}	 
	}
}
		$total=$i;
		closedir($dir);
		
	}
}

// далее выбираем случайные 3 штуки (можно хоть сколько) и выводим их в таблице
$i=1;
while($i<=3){
$n=rand(1,$total);
$file[$i]=$allPictures[$n];

// здесь проверяем не выбрал ли эту картинку ранее вобщем чтоб не было повторений
$the_same_is_found=0;
for ($ii=1; $ii<$i; $ii++){
if ($file[$i]==$file[$ii]){$the_same_is_found=1;$ii=$i;}
}

if($the_same_is_found==0){
?>

<td style="width:33%; text-align:center;"><img src="<?=$url?>/<?=$file[$i]?>" id="pic<?=$i?>"></td>
<?
$i++;}
}
?>

</tr>
</table>
</div>


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

viktod 20.03.2010 17:42

Спасибо, сейчас попробую.

viktod 20.03.2010 18:09

Вставил весь код в <body>, дал адрес с картинками $url = "http://ua-ru.com/images/4000-4999/4476"; // адрес папки где хранятся картинки для выборки, опубликовал на сервере на своем сайте
- и ничего не случилось - пустой лист.
http://ww2army.com/1.htm
В папке лежит 10 .jpg картинок
http://ua-ru.com/images/4000-4999/4476/1.jpg
Что же не так?
Может быть нужно прописывать конкретные адреса всех 50+ картинок?

bushstas 21.03.2010 11:32

так и не случится потому что картинки должны находится в одной из папок на твоем сайте, я то не думал что картинки лежат на стороннем сайте, тогда нужно другое решение. А копировать картинки себе на сайт?
нет прописывать адреса не надо, т.к. код их ищет сам не зная имен файлов, тебе нужно другое решение тогда

viktod 21.03.2010 18:16

1. Переделал. Опять пустой лист
http://ua-ru.com/2.htm
Картинки в http://ua-ru.com/images/4000-4999/4476
Их видно по
http://ua-ru.com/images/4000-4999/4476/1.jpg
2. Положил код непоспедственно к картинкам
http://ua-ru.com/images/4000-4999/4476/2.htm
тоже без результата.

bushstas 21.03.2010 18:25

я так понимаю на странице 2.htm размещен мой код, вствавь его сюда пожалуйста, а еще вероятно что код php просто не работает в файлах типа html и htm, обычно по умолчанию это отключено, я обращался на хостинг с просьбой включить поддержу php кода на страницах html, попробуй узнать у техподдержи
более вероятно что проблема в этом

viktod 21.03.2010 18:33

Сделал, не работает
http://ua-ru.com/images/4000-4999/4476/3.php
Да, в 3.php ваш код.
Кстати, .php на сервере работает
http://ua-ru.com/images/4000-4999/4476/1.php
Весь код:

<body>
<div style="position:absolute;left:50%;margin-left:-500px;margin-top:320px;width:1000px" id="ThreePictures">
<table style="width:100%">
<tr>

<?

$url = "http://ua-ru.com/images/4000-4999/4476"; // адрес папки где хранятся картинки для выборки
if (is_dir($url)) { // далее цикл для поиска всех картинок в указанной папке
if ($dir = opendir($url)) {
$i=0;
$allPictures=Array();
while (false !== ($file = readdir($dir))){

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

$a=pathinfo($file);
if ($a['extension']=="jpg"){$i++; // здесь можно указать и другие типы файлов типа png, gif и т.п.
$allPictures[$i]=$file;
}
}
}
$total=$i;
closedir($dir);

}
}

// далее выбираем случайные 3 штуки (можно хоть сколько) и выводим их в таблице
$i=1;
while($i<=3){
$n=rand(1,$total);
$file[$i]=$allPictures[$n];

// здесь проверяем не выбрал ли эту картинку ранее вобщем чтоб не было повторений
$the_same_is_found=0;
for ($ii=1; $ii<$i; $ii++){
if ($file[$i]==$file[$ii]){$the_same_is_found=1;$ii=$i;}
}

if($the_same_is_found==0){
?>

<td style="width:33%; text-align:center;"><img src="<?=$url?>/<?=$file[$i]?>" id="pic<?=$i?>"></td>
<?
$i++;}
}
?>

</tr>
</table>
</div>
</body>

bushstas 21.03.2010 23:02

когда переменная $url указана как "http://......" это не работает, и когда исполняемый php файл или по-другому страница на которой находится данный код и сами картинки расположены в одной папке тоже не работает, не важно где расположена страница главное чтобы в том же месте была папка с картинками допустим http://ua-ru.com/images/4000-4999/4476/3.php это адрес твоей страницы тогда нужно чтобы картинки находились по такому адресу http://ua-ru.com/images/4000-4999/4476/images тогда $url будет равняться "images" понимаешь

вобщем создай папку в том же месте где и файл 3.php или какой там у тебя назови ее как хочешь и имя этой папки и будет $url, и там должны быть те самые картинки

просто я не совсем понимаю стркутуру твоего сайта, это вообще твой сайт????
или ты пытаешься загружать к себе на страницу картинки с этого самого ua-ru???

и еще images/4000-4999/4476/3.php выглядит странно в папке с картинками или в ее подпапках не нужно никаких php файлов файл php и папка images должны находится в одной директории

viktod 21.03.2010 23:12

Сделал. Ничего
http://ua-ru.com/images/4000-4999/4476/3.php
Картинки переложил в
http://ua-ru.com/images/4000-4999/4476/images
и они отзываются
http://ua-ru.com/images/4000-4999/4476/images/1.jpg

bushstas 21.03.2010 23:15

переменная $url должна равняться "images" а у тебя $url = "http://ua-ru.com/images/4000-4999/4476";

bushstas 21.03.2010 23:18

и вообще открываю исходный код твоей страницы в браузере а там php код как есть пишет а это значит что он расценивается как обычный текст значит php не работает как еще такое объяснить

viktod 21.03.2010 23:21

Это мой сайт и мой сервер.
Я могу положить файлы в любое место.
Такой стиль сайта - вместе с картинками лежит .php файл и уже 5 лет как работают.
Так что же нужно сделать?
Я готов на любые эксперименты.

viktod 21.03.2010 23:23

В каждой странице больше десятка .php файлов и все работают.
причина вероятно в другом.

bushstas 21.03.2010 23:23

должно быть
http://ua-ru.com/3.php

http://ua-ru.com/images/4000-4999/4476

тогда $url ="images/4000-4999/4476"
и все должно работать

bushstas 21.03.2010 23:25

открой исходный код своей страницы в браузере
если ты видишь там php код значит php не работает

bushstas 21.03.2010 23:28

сделай так
страница
http://ua-ru.com/images/4000-4999/4476/3.php
картинки
http://ua-ru.com/images/4000-4999/4476/images/

тогда $url ="images"

все должно работать

viktod 21.03.2010 23:30

Так у меня же так и сделано.
страница
http://ua-ru.com/images/4000-4999/4476/3.php
картинки
http://ua-ru.com/images/4000-4999/4476/images/
Кстати, весь ваш код я положил в отдельный .php файл - сейчас он не будет виден как обычный текст.
А другой .php в этой же папке работает
http://ua-ru.com/images/4000-4999/4476/1.php

bushstas 21.03.2010 23:31

открой код исправь строку $url = "http://ua-ru.com/images/4000-4999/4476"; // адрес папки где хранятся картинки для выборки

на $url = "images"; // адрес папки где хранятся картинки для выборки

viktod 21.03.2010 23:39

Исправил - ничего.
$url = "http://ua-ru.com/images/4000-4999/4476/images/";

bushstas 21.03.2010 23:45

да нет же нужно просто $url="images"

bushstas 21.03.2010 23:46

вот щас php работает и не отображается в исходном коде :)
осталось путь исправить

viktod 22.03.2010 00:07

Попробовал
$url = "images";
вместо полного адреса - ничего.
Кстати в .php нужно включать?
<td style="width:33%; text-align:center;"><img src="<?=$url?>/<?=$file[$i]?>" id="pic<?=$i?>"></td>
<?
$i++;}
}
?>

Или это идет вместе с файлом?
Попробовал оба варианта - без результата.

М.б. весь код поможет разобратся:
http://ua-ru.com/images/4000-4999/4476/3.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 2</title>
</head>

<body>
<div style="position:absolute;left:50%;margin-left:-500px;margin-top:320px;width:1000px" id="ThreePictures">
<table style="width:100%">
<tr>

<?php
include("../../../other/threeImages.php");
?>

</tr>
</table>
</div>
</body>

</html>

threeImages.php:

<?

$url = "images"; // адрес папки где хранятся картинки для выборки -они в http://ua-ru.com/images/4000-4999/4476/images/
if (is_dir($url)) { // далее цикл для поиска всех картинок в указанной папке
if ($dir = opendir($url)) {
$i=0;
$allPictures=Array();
while (false !== ($file = readdir($dir))){

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

$a=pathinfo($file);
if ($a['extension']=="jpg"){$i++; // здесь можно указать и другие типы файлов типа png, gif и т.п.
$allPictures[$i]=$file;
}
}
}
$total=$i;
closedir($dir);

}
}

// далее выбираем случайные 3 штуки (можно хоть сколько) и выводим их в таблице
$i=1;
while($i<=3){
$n=rand(1,$total);
$file[$i]=$allPictures[$n];

// здесь проверяем не выбрал ли эту картинку ранее вобщем чтоб не было повторений
$the_same_is_found=0;
for ($ii=1; $ii<$i; $ii++){
if ($file[$i]==$file[$ii]){$the_same_is_found=1;$ii=$i;}
}

if($the_same_is_found==0){
?>

<td style="width:33%; text-align:center;"><img src="<?=$url?>/<?=$file[$i]?>" id="pic<?=$i?>"></td>
<?
$i++;}
}
?>

bushstas 22.03.2010 00:25

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

viktod 22.03.2010 00:28

Но код , который я сейчас показал, правильный?
Если сервер халтурит, то почему
http://ua-ru.com/images/4000-4999/4476/1.php
работает?

bushstas 22.03.2010 00:32

а у тебя тут include
а ты уверен что "../../../other/threeImages.php" это верный адрес?
может вставишь код в файл 3.php
у меня все работает как ни крути

bushstas 22.03.2010 00:34

да 1.php работает значит ошибки в прописании путей к файлам и сервер просто не выдает репорт о них

bushstas 22.03.2010 00:36

возможно путь такой "../../../../other/threeImages.php" если папка other имеет адрес http://ua-ru.com/other
да точно посчитай слэши их четыре

viktod 22.03.2010 00:39

Вставил весь код в страницу. без результата
http://ua-ru.com/images/4000-4999/4476/4.php

Все слэши нормальные - такие же как и в 1.php - они лежат рядом.

bushstas 22.03.2010 00:39

зашел в папку other все файлы в исходном коде нормально а threePictures php код как текст смотри сам

viktod 22.03.2010 00:45

Вижу, и это странно.
А не лишние ли <?
в начале кода?
Мне кажется, что они нужны если этот код используется среди html кода.

viktod 22.03.2010 00:46

У меня все .php без них.
Не получается ли двойной код?
Кстати, если весь php код виден как текст - это говорит что со слэшами все нормально.
А вот с его включением проблемы.

bushstas 22.03.2010 00:54

дружище я воссоздал такую структуру на своем сайте
http://lepka-peterburg.ru/images/4000-4999/4476/1.php
картинки лежал в http://lepka-peterburg.ru/images/4000-4999/4476/images убедись сам как работает

bushstas 22.03.2010 00:56

возможно лишние два раза <? <? это ошибка

bushstas 22.03.2010 01:02

использовал код с твоей страницы как видишь работает

viktod 22.03.2010 01:03

Да, у вас работает.
Но в source code у вас 3 tables, в моем коде один.

bushstas 22.03.2010 01:06

:) так там же в php коде цикл for который выполняется три раза отсюда и берутся три элементa td таблицы, другое дело когда цикл не выполняется потому что php не работает :)

viktod 22.03.2010 01:07

Что же делать?

viktod 22.03.2010 01:08

Хорошо, начну все сначала.
Дайте пожалуйста обе части вашего кода.

bushstas 22.03.2010 01:09

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


Часовой пояс GMT +3, время: 13:45.