2017-02-19 2 views
0

Есть ли способ настроить галерею, доступную только членам? Я могу настроить php login и все. Но я хочу, чтобы изображения обрабатывались надежно. Любой, у кого есть URL-адрес изображения, не должен иметь доступ к изображению, пока он не войдет в систему как член.Предотвращение изображений с прямого доступа

+2

вам нужно будет просматривать изображения в PHP скриптах, некоторые вещи, как этот ответ http://stackoverflow.com/a/13602453/2359679 – hassan

+0

Возможный дубликат [как отображать изображения из базы данных в php?] (http://stackoverflow.com/questions/13602259/how-to-display-images-from-database-in-php) – orvi

ответ

0

Вы можете использовать такие вещи, как:

Есть изображения в месте, которое не является доступным для общественности.

Используйте код для изображений, таких как:

<img src="/imageproxy.php?image=<?=$imagename?>" /> 

И imageproxy.php файл:

$image = filter_input(INPUT_GET,"image"); 

$imageWithPath = "/path/to/images/".$image 
if (/* is authenticated */ && is_readable($imageWithPath) && /* user can access $image*/) { 
    header("Content-Type: ".mime_content_type($imageWithPath)); 
    $handle = fopen($imageWithPath,"r"); 
    fpassthru($handle); 
    fclose($handle); 
    exit; 
} else { 
    http_response_code(403); 
    exit; 
} 

Это альтернатива использованию base64 изображений, так как таким образом вы можете загружать изображения асинхронно вместо их предварительной загрузки.

0

Чтобы предотвратить изображения от прямого доступа вы можете установить сессии и отображать вещи, если сессия установлена ​​

<?php 
session_start(); 
if(isset($_SESSION['username']) && !empty($_SESSION['username'])) 
     { 
      echo "<img src='imgname.png' />"; 
     } 
?> 
Смежные вопросы