X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Нахождение в базе данных пагубно влияет на мой код
Ton4atik
Ton4atik
Topic Starter сообщение 6.8.2012, 19:35; Ответить: Ton4atik
Сообщение #1


У меня вот такой код
[PHP]
<?php
$dir = "photos/activities/almet/";
$files = scandir($dir);

foreach($files as $key => $val)
{

if($val != "." && $val != "..")
{
$pieces = explode(".", $val);

if(strtolower ($pieces[1])== "jpg" || strtolower ($pieces[1])== "jpeg")
{

list($width, $height) = getimagesize("photos/activities/almet/".$val);
if($width>$height)
{
$image = 'width = "100"';
}
else
{
$image = 'height = "100"';
}

echo '<table style="float: left; height: 110px; margin-right: 15px; margin-bottom: 8px" width="110px">
<td style="border: 1px solid black; background-color: #272638"><center> <a href="photos/activities/almet/'.$val.'" rel="lightbox[roadtrip]" title=""><img '.$image.' src="photos/activities/almet/'.$val.'"></a></center> </td>
</table>';
}
}
} ?>
[/PHP]

Если его вставить в тег BODY он будет нормально отображаться, но мне нужно вытакскивать его из базы данных и когда я делаю это мой код начиная с 5-ой строки выводится на страницу.
Я все перепробовал и не могу понять в чем проблема. С кодом что-то случается пока он летит из базы.
Помогите пожалуйста.
Спасибо
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
сообщение 6.8.2012, 21:22; Ответить: r3ntg3n
Сообщение #2


(Ton4arik @ 6.8.2012, 22:35) *
Если его вставить в тег BODY он будет нормально отображаться, но мне нужно вытакскивать его из базы данных и когда я делаю это мой код начиная с 5-ой строки выводится на страницу.
Я все перепробовал и не могу понять в чем проблема. С кодом что-то случается пока он летит из базы.

Простите, но этот какой-то бред о_О

Где, покажите, пожалуйста, в вашем коде имеет место работа с базой? Извините, но там всего лишь сканирование директории на сервере и отображение всех jpg или jpeg файлов, которые в ней лежат,
И то, у вас корявое сканирование:
(Ton4arik @ 6.8.2012, 22:35) *
[PHP]$pieces = explode(".", $val);
if(strtolower ($pieces[1])== "jpg" || strtolower ($pieces[1])== "jpeg")[/PHP]

Да, это, несомненно, очень классный способ получения и проверки расширение файла. А если в имени файла будет точка? Помогу - тогда ключ элемента, в котором будет расширение увеличиться на 1. А если 2 точки? Для получения расширения спользуйте pathinfo().

Что касается проверки расширения файла - можно абсолютно спокойно положить исполняемый файл, записав расширение jpg/jpeg, а вы, ничего не подозревая, возьмете и сами запусите руткит или червя какого-то. Всего-лишь просканив папку и проверив тип файла только по его расширению. Используемая вами функция getimagesize() умеет не только ширину и высоту возвращать, а намного больше интерессной информации. Читайте документацию.

UPD-0: а если в папке будет 1К изображений, вы их вот так, скопом, и выведете человеку на одной страние? Да еще и полноразменые копии (пофиг, что вы указали ширину/высоту в 100 пикселей, размер картинки-то не уменьшился из-за этого)... Да у посетителя браузер быстрее умрет, чем сможет полностью загрузить вашу страницу.

UPD-1: проверять, является ли файл изображением, можно через его mime-тип

И, напоследок, о вашем html:
(Ton4arik @ 6.8.2012, 22:35) *
<table style="float: left; height: 110px; margin-right: 15px; margin-bottom: 8px" width="110px">
<td style="border: 1px solid black; background-color: #272638"><center> <a href="photos/activities/almet/'.$val.'" rel="lightbox[roadtrip]" title=""><img '.$image.' src="photos/activities/almet/'.$val.'"></a></center>* </td>
</table>

Откройте для себя CSS и забудьте о таком тэге, как <center></center>

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
14 yaroslav89 6628 13.3.2024, 23:16
автор: spoyer_ru
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБезанкорный прогон по базе 1600 000 сайтов из DMOZ
44 aleggator 13433 10.3.2024, 18:29
автор: kuprum
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСтатейное продвижение ваших сайтов по качественной базе с тИЦ
тИЦ 10+
236 Intersect 257175 6.3.2024, 14:40
автор: ArchiDOM
Открытая тема (нет новых ответов) Нужна рассылка по емаил базе сео-студий
0 kasey7 622 2.3.2024, 23:13
автор: kasey7
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3801 9.2.2024, 16:04
автор: baza0013


 



RSS Текстовая версия Сейчас: 29.3.2024, 0:29
Дизайн