|
|
|
| Здравствуйте,
В разделе администрирования сайтом, как и запланировано,
производиться добавление, удаление фотографий. Все проходит без проблем
В общедоступной части сайта фотографии не выводятся, пишет
сообщение
Forbidden
You don't have permission to access /foto//8641.jpg on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
иерархия на сервере:
public_html/(папки сайта, папка foto, index.php),
для папки public_html права 750
В папку public_html я запихнул весь сайт.... в том числе и папку с фоткам (права 755)и.... как быть расширять ли права или кидать ее куда-то еще? | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 00:01)
| | "You don't have permission to access" -> "Вы не имеете доступа к...."
установите права доступа на папку с фото
p.s. какие права доступа установлены для файлов в папке с фотографиями? | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.10.2009 в 00:38)
| | папка с фото имеет 755... админ может добавлять удалять.. все ок. для пользователя страница генерирует след код
<img src='foto/9327.gif' width='140'>
|
может дело в пути? src='foto/9327.gif'
Файл 9327.gif' имеет право 600. как установить и что установить? | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 00:44)
| | Ураа, установил на файл право 9327.gif' 605 в тотале(сейчас там 600), и он отобразился..... как теперь его автоматом прописать и не нарушить безопасность? и второе, есть ли разница в пути к файлу foto/9327.gif или ./foto/9327.gif' | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 00:46)
| | на фото поставь права 644.
разницы в путях нет "./" это текущий каталог | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.10.2009 в 00:56)
| | я понял, спасибо, остается главный вопрос как это сделать... перефразирую... как установить права на файлы, они ведь добавляются админом сайта.. посредством веб интерфейса, затем в папку темп, затем в мою папку foto.. | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 00:58)
| | а сейчас, когда загружается фото в папку, какие права доступа выставляются? | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.10.2009 в 01:09)
| | 600
иерархия папок
public_html 750 /
мой сайт: index.php (644), .htaccess (644), папка foto (755) /
Папка foto содержит файлы, если их туда добавили, например 9345.gif (600) | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 01:10)
| | chmod($patch_big.$image, 0644); где $patch_big - путь к папке, а $image - им файла | |
|
|
|
|
|
|
|
для: Slo_Nik
(20.10.2009 в 01:16)
| | это куда записать?? это наверно php | |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 01:18)
| | загружаем фото
<?php
if(move_uploaded_file($_FILES['image']['tmp_name'],"$patch_big".$image)){
chmod($patch_big.$image, 0644);
}
?>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(20.10.2009 в 01:20)
| | Работает, спасибо Вам большое ))))
Не хочу показаться неблагодарным, если можно подскажите еще.. Вы хорошо в php разбираетесь )) этот скрипт может тормозить выдачу странички? видимо не оптимальный поиск в папке... толи средство не то, то ли принцип... не успел посмотреть как это обычно реализуют... вотт
$img = '';
$dir = "./foto";
$body_id_jpg = intval($_GET['code']).'.jpg';
$body_id_JPG = intval($_GET['code']).'.JPG';
$body_id_gif = intval($_GET['code']).'.gif';
$body_id_GIF = intval($_GET['code']).'.GIF';
// отображем + только где нет фото
$flag = FALSE;
if ($handle = opendir($dir))
{
while($file = readdir($handle))
{
if (($file == $body_id_jpg) ||
($file == $body_id_JPG) ||
($file == $body_id_gif) ||
($file == $body_id_GIF)
) {
if (is_file("$dir/$file"))
{
$width = 140;
$img = $img."<img src='$dir/$file' width='$width'>";
}
$flag = TRUE;
break;
}
}
closedir($handle);
}
|
| |
|
|
|
|
|
|
|
для: ДобрыйУхх
(20.10.2009 в 01:28)
| | по поводу того, может ли скрипт тормозить загрузку странички ни чего не могу сказать. на самом дела я не так уж и хорошо знаю php, как Вам показалось.
а по поводу скрипта, я бы сократил немного его
вот здесь
<?php
$body_id_jpg = intval($_GET['code']).'.jpg';
$body_id_JPG = intval($_GET['code']).'.JPG';
$body_id_gif = intval($_GET['code']).'.gif';
$body_id_GIF = intval($_GET['code']).'.GIF';
?>
|
можно попробовать записать в одну строку всё это и тогда сокращается здесь
<?php
if (($file == $body_id_jpg) ||
($file == $body_id_JPG) ||
($file == $body_id_gif) ||
($file == $body_id_GIF)
)
?>
|
я бы сначала извлёк расширение файла, занёс его в переменную и подставлял бы эту переменную вместо того, что бы писать каждый раз расширение
например :
<?php
$body_id = intval($_GET['code']).$ext; // $ext это расширение файла
?>
// затем
if($file == $body_id){
// остальной код
}
|
хотя мне кажется это лишнее, ведь Вы же делаете проверку
<?php
if (is_file("$dir/$file"))
?>
|
а в Вашем случае, скорей всего надо делать проверку на существование файла
<?php
if (file_exists("$dir/$file")) // проверка наличия файла в каталоге
?>
|
| |
|
|
|