LINUX.ORG.RU

php & images


0

0

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

★★★★★

проще сделать
диру под паролем средствами апача
другие способы геморойны и не имея опыта
дырок наделаешь только.....

anonymous
()
Ответ на: комментарий от anonymous

С дирами с паролем я тоже не работал, поэтому такой вопрос: а возможно тогда спрашивать пароль при обращении к этой дире только если юзер не авторизован? Т.е. возможно ли контролировать доступ к ней из пхп, или это задается жестко в конфигурационных файлах ?

roy ★★★★★
() автор топика

ЛОЛ! ну, например, так:
<?
if ( isset $_SESSION["user_logged"] )
  if ( $_SESSION["user_logged"] == 1 )
  {
    // ok
  }
  else
  {
    die ("access denied");
  }
else
  die ("access denied");
?>

theserg ★★★
()
Ответ на: комментарий от theserg

т.е.!!!!

можно вместо

die ("access denied");

написать

header ("Location: auth.php\n");
die ("");

theserg ★★★
()
Ответ на: комментарий от theserg

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

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

то, что я написал, пихаешь в начало любого файла

типа так: require "header.php";

а вообще, ув. roy, лучше обратитесь за помощью к любому web-программисту :)

theserg ★★★
()
Ответ на: комментарий от theserg

Я (как веб программист) тебе посоветую. Пропиши все в htaccess - это надежнее всего. И проще всего к стати. Правильно там тебе сказали если писать чисто на РНР дырки скорее всего будут. А так только сервак ломать.

Rafiki
()
Ответ на: комментарий от theserg

А если я сам хочу стать веб-программистом? Т.е., ув. theserg, когда вы за что то беретесь, у вас все получается с первого разы, и вы никогда ни у кого ничего не спрашиваете, а если что то не получается (но такого наверное не бывает, да?) то вы беретесь за другое?

roy ★★★★★
() автор топика
Ответ на: комментарий от Rafiki

Да, я понял что можно права доступа к директории ограничитить при помощи веб-сервера. А возможно ли их регулировать во время работы динамически как-нибудь ? Или если я поставил к папке доступ по паролю (в .htaccess) - то все юзеры придется вводить пароль, независимо от того, авторизованы они или нет ?

roy ★★★★★
() автор топика

Всё перечисленное бред, я понял что тебе надо, короче сделать тебе надо вот что,
во-первых написать простой скрипт типо:
super_puper.php:
<?php
session_start();
if (isset($_SESSION['user_id'])){ //проверяешь авторизован ли пользователь
$image_path=$_GET['filename'];
else //если пользователь не авторизован
$image_path="/images/access_denied.jpg";

/* это соотв менять в зависимости от расширения файла */
header("Content-type: image/jpg");
readfile($image_path);
?>

итак имеем скрипт, который проверяет авторизован пользователь или нет и в зависимости от этого либо выводит картинку к которой пользователь обратился по ссылке вида tvoi.server.com/super_puper.php?filename=vasya.jpg
либо если пользователь не авторизован скрипт выводит картинку лежащую в "/images/access_denied.jpg" в которой содержится замочек и надпись что картинка доступна только для авторизованных пользователей. Можно дальше наворачивать скрипт так чтобы картинки показывались например только их владельцам или еще как-то думаю идея понятна. Привязать к БД например можно. Можно передавать в ссылках не имена файлов а уникальные номера из бд итд итп.

впринципе с этим уже можно работать - т.е. ссылки на картинки в галерее можно делать в таком виде <img src="/super_puper.php?filename=vasya.php">

но лучше настроить в апаче такую муйню:
RewriteRule /images/([^.]+)\.(jpg|png) /super_puper.php?filename=$1 [T=application/x-httpd-php]

вообщем так.

Ubnormal
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.