Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с изображениями в системе управления сайтом
 
 автор: Dizels   (22.09.2006 в 13:23)   письмо автору
 
 

Итак, код CMS взят из мною любимой книги: PHP 5 Практика создания web-сайтов.

Так вот - сегодня решил протестировать возможность добавлять фотографии в статью - ввел текст параграфа, выбрал "вставить большую фотку" выбрал нужную, нажал добавить. В админке все получилось как надо: текст, под ним ссылка на изображение. При нажатии на ссылку - картинка открывается без проблем.

А вот на самом сайте, зайдя в этот раздел вижу следущее:

Warning: filesize(): Stat failed for ../files/s_20060922121303.jpg (errno=2 - No such file or directory) in z:\home\localhost\www\partizan\article\art.php on line 67


s_20060922121303.jpg - этот файл есть, собственно как я уже писал, через админку он прекрасно открывается. Так в чем тогда проблема и как ее решить?

   
 
 автор: Thrasher   (22.09.2006 в 13:53)   письмо автору
 
   для: Dizels   (22.09.2006 в 13:23)
 

Не видел кода системы, но догадываюсь, что путь к папке с картинками генерируется неверный. Вероятно, он относительный и относительно админки путь получается верный, а относительно корня сайта - нет.

   
 
 автор: cheops   (22.09.2006 в 20:27)   письмо автору
 
   для: Dizels   (22.09.2006 в 13:23)
 

Вы модифицировали код сайта? Откуда вызывается файл art.php или article.php?

   
 
 автор: Dizels   (23.09.2006 в 00:38)   письмо автору
 
   для: cheops   (22.09.2006 в 20:27)
 

Нет - модификации код не подлежал. Вызывается с index.php в той же папке(article)
Я вот единственное что думаю - может такое происходит из-за того, что я не вставляю маленькое изображение?

   
 
 автор: cheops   (23.09.2006 в 12:20)   письмо автору
 
   для: Dizels   (23.09.2006 в 00:38)
 

В этом случае ничего не должно отображаться, посмотрите существует ли файл files/s_20060922121303.jpg - такое может быть, если он не загружается и система не может его найти.

   
 
 автор: Dizels   (24.09.2006 в 16:08)   письмо автору
 
   для: cheops   (23.09.2006 в 12:20)
 

Файлы есть в этой дирректории, вот прикрепляю архив с папкой article, может все таки там чего-то не так..

   
 
 автор: cheops   (24.09.2006 в 16:18)   письмо автору
 
   для: Dizels   (24.09.2006 в 16:08)
 

Ага, у вас расположение директории изменилось относительно папок admin и files? Чтобы много не менять попробуйте в 67 строке файла art.php добавить строки
<?php
          $paragraph
['picture_small'] = str_replace("..","../termokrum",$paragraph['picture_small']);
          
$paragraph['picture_big'] = str_replace("..","../termokrum",$paragraph['picture_big']);
?>

У вас сейчас файлы, включающие art.php в каких директориях находятся и как они лежат относительно директорий admin и files?

   
 
 автор: Dizels   (24.09.2006 в 18:17)   письмо автору
 
   для: cheops   (24.09.2006 в 16:18)
 

Во! Появилось, спасибо большое, а в чем проблема я наконец-то понял(благодаря Вам конечно) - я art.php подключаю из папки mods. Т.е. структура такая: в главной папке admin, article, mods,....и т.д. Вот, а структура страницы у меня следущая: index.php?mod=mod1 т.е. если mod1 то это первая страница(так сказать главная), если mod2 - вторая(новости) и т.д. а сами эти страницы mod1,mod2 и т.д. как раз и лежат в папке mods. Надеюсь объяснил понятно:) Так вот - изображения работают все отлично. Огромное спасибо!
Вот только остался один вопросик - а как нибудь можно, чтобы не указывая на папку termokrum? А то у меня сайт не один - во всех менять придется, к тому же когда на хост заливаешь - там совсем другие папки - вобщем много мороки потом будет, поэтому очень интересно можно как-то упростить или нет?

   
 
 автор: cheops   (25.09.2006 в 11:27)   письмо автору
 
   для: Dizels   (24.09.2006 в 18:17)
 

У вас одна CMS обслуживает несколько сайтов или для каждого сайта своя копия?

   
 
 автор: Dizels   (25.09.2006 в 11:38)   письмо автору
 
   для: cheops   (25.09.2006 в 11:27)
 

Своя копия

   
 
 автор: Dizels   (26.09.2006 в 22:48)   письмо автору
 
   для: Dizels   (25.09.2006 в 11:38)
 

Итак, появилась новая проблема: залил все на хостинг - включил картинки, захожу в статью - а там просто окошечки - что есть типа картинки, но сами картинки не показываются.(т.е. как буд-то отключена графика на сайте, но я несколько раз все проверял). Из-за чего это происходит?

   
 
 автор: cheops   (27.09.2006 в 00:05)   письмо автору
 
   для: Dizels   (26.09.2006 в 22:48)
 

А права доступа к изображениям и директориям их содержащих какие выставлены?

   
 
 автор: Dizels   (27.09.2006 в 10:37)   письмо автору
 
   для: cheops   (27.09.2006 в 00:05)
 

А как это посмотреть и где настроить? (извените за тупой вопрос, но правда не знаю)

   
 
 автор: cheops   (27.09.2006 в 11:25)   письмо автору
 
   для: Dizels   (27.09.2006 в 10:37)
 

В FTP-менеджере должен быть обязательно интерфейс для управления правами доступа - у вас какой FTP-менеджер?

   
 
 автор: Dizels   (27.09.2006 в 22:15)   письмо автору
 
   для: cheops   (27.09.2006 в 11:25)
 

Я и не спорю, что кправление есть, я просто не знаю где оно находиться и как настраивается:) менеджер у меня Total Commander

   
 
 автор: cheops   (27.09.2006 в 23:19)   письмо автору
 
   для: Dizels   (27.09.2006 в 22:15)
 

Посмотрите, у вас имеется меню Files->Change Attributes?

   
 
 автор: Dizels   (28.09.2006 в 12:48)   письмо автору
 
   для: cheops   (27.09.2006 в 23:19)
 

Да, есть такое - поставил там все галочки, т.е. доступ получился 777 но все равно картинки не отображаются:(

   
 
 автор: cheops   (28.09.2006 в 13:15)   письмо автору
 
   для: Dizels   (28.09.2006 в 12:48)
 

Посмотрите HTML-код - какой путь к изображениям указывается?

   
 
 автор: Dizels   (28.09.2006 в 13:57)   письмо автору
 
   для: cheops   (28.09.2006 в 13:15)
 


<img src=../public_html/files/s_20060925094259.jpg align=right class=img border=0>


Вот так вот.

Для примера я приведу код

require_once("../public_html/admin/news/config.php");


Вот так вот я подключаю новости и все велеколепно работает. так что по ходу путь указан правильно. Изображение такое есть, так что в чем проблема понять не могу, вот ссылка прямо на текст с изображениями, может это что-то прояснит
http://giprovodxoz.crimea.ua/index.php?id_article=4&mod=mod3

   
 
 автор: Dizels   (28.09.2006 в 22:07)   письмо автору
 
   для: Dizels   (28.09.2006 в 13:57)
 

ну что - кто нибудь подскажет в чем проблема?

   
 
 автор: cheops   (28.09.2006 в 22:56)   письмо автору
 
   для: Dizels   (28.09.2006 в 13:57)
 

А сама страница, которая пытается вываодит изображения в какой директории лежит?

   
 
 автор: Dizels   (29.09.2006 в 16:29)   письмо автору
 
   для: cheops   (28.09.2006 в 22:56)
 

адрес страницы как я уже писал вот такой:
http://giprovodxoz.crimea.ua/index.php?id_article=4&mod=mod3

т.е. получается эта страница самая главная(index.php)? к которой подключается файл с переменной mod (все файлы с переменной mod лежат в папке mods), ну вот, а файл mod3 в свою очередь уже подключает файл index.php статей(лежит в папке article). Надеюсь объяснил понятно?!

   
 
 автор: Dizels   (29.09.2006 в 20:12)   письмо автору
 
   для: Dizels   (29.09.2006 в 16:29)
 

Я вот тут вот поговорил с еще одни человеком, который тоже в php неплохо разбирается, так вот, вот его ответ:


<img src=../public_html/files/s_20060925094259.jpg align=right class=img border=0>
require_once("../public_html/admin/news/config.php"); 

В первом случае это реально относительный URL.
Во второй строке там путь на диске.
Это разные вещи.
Для URL public_html вообще не существует.


Я подумал над его словами - а ведь он вроде действительно прав?! Если это так, то как нужно подправить код? Ведь в коде

$paragraph['picture_small'] = str_replace("..","../public_html",$paragraph['picture_small']); 
       $paragraph['picture_big'] = str_replace("..","../public_html",$paragraph['picture_big']); 

          if ($paragraph['picture_small'] != "" && $paragraph['picture_small'] != "-" && filesize($paragraph['picture_small']))
          { 
            $image = "<img src=".$paragraph['picture_small']." align=right class=img border=0>";
          } 

путь к картинке берется вот так: $paragraph['picture_small'], т.е. получается код будет работать или в нете или на компе, а желательно и там и там, да и вообще - все описанно е правильно?

   
 
 автор: Loki   (29.09.2006 в 20:54)   письмо автору
 
   для: Dizels   (29.09.2006 в 20:12)
 

Можете для сайта вообще ипользовать абсолютные пути - никакой головной боли... во всяком случае до их смены:)

   
 
 автор: Dizels   (29.09.2006 в 22:27)   письмо автору
 
   для: Dizels   (29.09.2006 в 20:12)
 

cheops, хотелось бы услышать твое мнение по данному вопросу.

   
 
 автор: cheops   (30.09.2006 в 12:26)   письмо автору
 
   для: Dizels   (29.09.2006 в 16:29)
 

Где лежит директория files? В корне http://giprovodxoz.crimea.ua/?

   
 
 автор: Dizels   (30.09.2006 в 12:37)   письмо автору
 
   для: cheops   (30.09.2006 в 12:26)
 

да

   
 
 автор: cheops   (30.09.2006 в 12:46)   письмо автору
 
   для: Dizels   (30.09.2006 в 12:37)
 

Относительные пути действуют относительно того места, откуда их вызывают, поэтому в вашем случае требуется использовать
<?php
    $paragraph
['picture_small'] = str_replace("../","",$paragraph['picture_small']);  
    
$paragraph['picture_big'] = str_replace("../","",$paragraph['picture_big']);
?>

   
 
 автор: Dizels   (30.09.2006 в 12:59)   письмо автору
 
   для: cheops   (30.09.2006 в 12:46)
 

Спасибо, все заработало.

P.S. огромное спасибо за этот форум и за то, что не оставляете на едине с проблемой, а помагаете ее решить!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования