Не отображаются картинки на php

12
B
На сайте с 30.12.2010
Offline
18
9075

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

В основном "теле" 20, в шапке 8 + ещё всякие кнопки. Основные изображения хранятся в папке, где общее их количество около 10 тыс.

Имя файла берётся из БД и выглядит как $row['id'].".jpg". (primary)

Проблема в том, что при открытии страницы некоторые картинки не отображаются, как будто нет файла, хотя в .html все пути есть. После обновления страницы те картинки, которые было "не видно" отображаются, но могут пропасть видимые. Иногда требуется 3 раза нажать f5, чтобы заставить показываться все картинки. Иногда не успевают загрузиться кнопки.

Пробовал отдельно через цикл из этой папки 100 картинок выводить - всё ок. Я понимаю, что м.б. дело в скрипте. Помимо вывода картинок там ещё много чего выполняется. Но почему, если скрипт "не успевает" отобразить картинку просто "плюёт" на неё. Мог бы тогда по-дольше выполнятся.

Пробовал чистить кэш браузера и с разных браузеров заходил и с телефона - одно и то же.

Подскажите пожалуйста, почему это происходит и как побороть проблему. Никак ума не приложу.

Извините, если не ту ветку выбрал, просто не знаю в чём именно проблема.

Вот код:

<?php

header("Content-Type: text/html; charset=utf-8");
require_once("conf.php");
require_once("function.php");
require('rating.php');

/* Для постраничной навигации */
$pnumber = 20;
if(isset($_GET['page'])) {
if(!preg_match("/^[0-9]+$/", $_GET['page'])) {
header("Location: ".$url."404.php");
exit;
} else {
$page = $_GET['page'];
}
}
else {
$page = 1;
}
$start = ($page - 1) * $pnumber;
/*****************************/
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Мой сайт</title>
<meta name="description" content="Описание моего сайта" />
<meta name="keywords" content="мой сайт" />
<meta name=robots content="index, follow" />
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<link rel="stylesheet" type="text/css" href="/css/rating_small.css" />
<script type="text/javascript" src="/js/behavior.js"></script>
<script type="text/javascript" src="/js/rating.js"></script>
</head>
<body>
<div id="wrapper">
<div id="main">
<div id="content">
<?php
/* Для постраничной навигации */
$query = "SELECT COUNT(*) FROM films
WHERE films.showtime < NOW()
AND films.hide = 'show'";
$tot = mysql_query($query);
if(!$tot) exit("Ошибка обращения к БД");
$total = mysql_result($tot,0);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
/*****************************/
echo "<div class='index'>";
echo "<h2>Новинки кино</h2>";
echo "<div class='index_c'>";
/**** Выбираем фильмы ****/
$query = "SELECT films.id, films.sef, films.name, films.year
FROM films
WHERE films.showtime < NOW()
AND films.hide = 'show'
ORDER BY films.showtime DESC
LIMIT $start, $pnumber";
$result = mysql_query($query);
if(!$result) exit("Ошибка в синтаксисе запроса к БД2");
if(mysql_num_rows($result) > 0) {
$j = $pnumber * $page - $pnumber + 1; // Для постраничной навигации
while($row = mysql_fetch_array($result)) {
echo "<div class='index_item'>";
echo "<a href='".$url.$row['year']."/".$row['sef'].".html' title='Смотреть онлайн'>";
if(file_exists($_SERVER['DOCUMENT_ROOT']."/images/".$row['id']."_small.jpg")) {
$img = $url."/images/".$row['id']."_small.jpg"; // Здесь берём картинку
} else {
$img = $url."icon/no_poster_small.jpg";
}
echo "<img src='".$img."' alt='".$row['name']."' title='Смотреть онлайн'>"; // Здесь выводим картинку
echo "<p>".cutstring($row['name'], 80)."</p>";
echo "</a>";
echo rating_bar($row['id'],'10','static','small'); // Рисуем рейтинг
echo "</div>";
flush();
}
} else echo "<p class='s'>Поиск не дал результатов<br /><a href='javascript:history.back()' onMouseOver='window.status=\"Назад\";return true'>Назад</a></p>";
echo "<div class='clear'></div>";
/******* Постраничная навигация *********/
if($j) {
echo "<div class='pnavi'>";
// $j - нумерация фильмов на странице
// $pnumber - количество фильмов на странице
// $number - общее количество страниц
// $page - номер текущей страницы
// $total - общее количество фильмов
if($page > 5) { // Если текущая страница не первая, воводим "На первую" и "Назад"
echo "<a href='".$url."'>1</a>&nbsp;...&nbsp;";
/*echo "<a href='".$url.$cat."-".($page-1)."/'><Назад</a>&nbsp;";*/
}
if($page<=4) $begin = $page-1;
else $begin = 4;
for($i=($page-$begin); $i<$page; $i++) {
if($i==1) echo "<a href='".$url."'>".$i."</a> ";
else echo "<a href='".$url."p".$i."/'>".$i."</a> ";
}
echo "<span>".$page."</span> ";
if(($number-$page)<4) $end = $number-$page;
else $end = 4;
for($i=$page+1; $i<=$page+$end; $i++) {
echo "<a href='".$url."p".$i."/'>".$i."</a> ";
}
if($page < ($number-4)) { // Если текущая страница не последняя, воводим "Вперёд" и "На последнюю"
/*echo "<a href='".$url.$cat."-".($page+1)."/'>Вперёд></a>&nbsp;";*/
echo "&nbsp;...&nbsp;<a href='".$url."p".$number."/'>".$number."</a>";
}
echo "</div>";
}
/***************************************/
echo "</div>"; // <div class='index_c'>
echo "</div>"; // <div class='index'>
?>
</div>
</div>
<div id="sidebar">
<div id="menu">
<?php
require_once("menu.php");
?>
</div>
</div>
<br class="clear" />
<div id="header">
<div class="transparency"></div>
<div class="content">
<a href="<?php echo $url; ?>" title="Главная"><img src="/icon/logo.png" alt="logo"></a>
<div class="search">
<form action="<?php echo $url; ?>search.php" method="GET">
<input type="text" size="30" maxlength="64" name="s" placeholder="Найти фильм..." /><input type="submit" name="submit" value="Вперёд!" />
</form>
</div>
</div>
</div>
<div id="header2">
<div id="center2"><?php
require_once("topmenu.php");
?></div>
</div>
<div id="footer"><?php
require_once("bottommenu.php");
?></div>
</div>
</body>
</html>

Извините, что выложил весь код. Просто не знаю, где может быть проблема. Отметил, где выводятся картинки.

Может кто сталкивался с подобной проблемой?

Спасибо.

IL
На сайте с 20.04.2007
Offline
435
#1
boomrest:
Но почему, если скрипт "не успевает" отобразить картинку просто "плюёт" на неё.

Есть предположение, что это не сам скрипт, а настройки веб-сервера..

Если вывести список картинок без скрипта (т.е. много картинок на одной странице.. но без "лишнего кода") - будут ли картинки "пропадать"?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
elina732
На сайте с 26.04.2013
Offline
12
#2

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

дани мапов
На сайте с 06.09.2012
Offline
204
#3

Правой кнопкой на незагрузившейся картинке и посмотреть свойства изображения или в Firebug. Если отображается правильный путь - то со скриптом все в порядке и как уже выше сказали, проблема в хостере.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
siv1987
На сайте с 02.04.2009
Offline
427
#4

Дело не в скрипте если в исходном коде все в порядке, а дело в отдаче сервером этих картинок.

elina732
На сайте с 26.04.2013
Offline
12
#5

Еще мысля пришла... Надо посмотреть вес картинок. Возможно там затерялся мегатроник и он не дает циклу высветить все изображения

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#6
elina732:
Возможно там затерялся мегатроник и он не дает циклу высветить все изображения

Простите, кто затерялся?

elina732
На сайте с 26.04.2013
Offline
12
#7

картинко с очень большим весом ))) Хотя при таком раскладе стьраница вообще не должа открываться полностью

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#8
elina732:
картинко с очень большим весом ))) Хотя при таком раскладе стьраница вообще не должа открываться полностью

А картинки с большим весом мешают циклу?

elina732
На сайте с 26.04.2013
Offline
12
#9

могут мешать не циклу, а загрузке всех остальных изображений, тем более, что если вдруг таких несколько. Хотя это только предположение. У меня такой случай был много лет назал на бесплатном хостинге ))

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#10

elina732, вы же сами написали "Возможно там затерялся мегатроник и он не дает циклу высветить все изображения" - я и пытаюсь осилить мегатроники в цикле, но прихожу к выводу, что это белиберда какая то.

12

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