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

Форум PHP

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

 

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

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

тема: где расположить папку с фото на сервере
 
 автор: ДобрыйУхх   (20.10.2009 в 00:01)   письмо автору
 
 

Здравствуйте,

В разделе администрирования сайтом, как и запланировано,
производиться добавление, удаление фотографий. Все проходит без проблем

В общедоступной части сайта фотографии не выводятся, пишет
сообщение

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)и.... как быть расширять ли права или кидать ее куда-то еще?

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 00:38)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 00:01)
 

"You don't have permission to access" -> "Вы не имеете доступа к...."
установите права доступа на папку с фото
p.s. какие права доступа установлены для файлов в папке с фотографиями?

  Ответить  
 
 автор: ДобрыйУхх   (20.10.2009 в 00:44)   письмо автору
 
   для: 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:46)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 00:44)
 

Ураа, установил на файл право 9327.gif' 605 в тотале(сейчас там 600), и он отобразился..... как теперь его автоматом прописать и не нарушить безопасность? и второе, есть ли разница в пути к файлу foto/9327.gif или ./foto/9327.gif'

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 00:56)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 00:46)
 

на фото поставь права 644.
разницы в путях нет "./" это текущий каталог

  Ответить  
 
 автор: ДобрыйУхх   (20.10.2009 в 00:58)   письмо автору
 
   для: Slo_Nik   (20.10.2009 в 00:56)
 

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

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 01:09)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 00:58)
 

а сейчас, когда загружается фото в папку, какие права доступа выставляются?

  Ответить  
 
 автор: ДобрыйУхх   (20.10.2009 в 01:10)   письмо автору
 
   для: Slo_Nik   (20.10.2009 в 01:09)
 

600


иерархия папок

public_html 750 /
мой сайт: index.php (644), .htaccess (644), папка foto (755) /
Папка foto содержит файлы, если их туда добавили, например 9345.gif (600)

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 01:16)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 01:10)
 

chmod($patch_big.$image, 0644); где $patch_big - путь к папке, а $image - им файла

  Ответить  
 
 автор: ДобрыйУхх   (20.10.2009 в 01:18)   письмо автору
 
   для: Slo_Nik   (20.10.2009 в 01:16)
 

это куда записать?? это наверно php

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 01:20)   письмо автору
 
   для: ДобрыйУхх   (20.10.2009 в 01:18)
 

загружаем фото

<?php
if(move_uploaded_file($_FILES['image']['tmp_name'],"$patch_big".$image)){
chmod($patch_big.$image0644);
}
?>

  Ответить  
 
 автор: ДобрыйУхх   (20.10.2009 в 01:28)   письмо автору
 
   для: 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); 
    }  

  Ответить  
 
 автор: Slo_Nik   (20.10.2009 в 02:20)   письмо автору
 
   для: ДобрыйУхх   (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")) // проверка наличия файла в каталоге
?>

  Ответить  
Rambler's Top100
вверх

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