Arquivo .htaccess (deve estar dentro da pasta que vai conter as imagens que devem ser restritas a usuários logados) , nos exemplos abaixo , deve estar dentro da pasta images
# Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png <FilesMatch "\.(gif|jpe?g|bmp|png)$"> Order allow,deny Deny from all Satisfy All </FilesMatch>
Arquivo filtra_imagem.php (arquivo responsável por ler a imagem e exibila quando o usuário estiver logado) e deve estar no mesmo nível do arquivo que o chama , que é pagina.php
<?php $caminho_e_imagem = explode ('&',$_SERVER['QUERY_STRING']); define('MAX_WIDTH', 200); define('MAX_HEIGHT', 150); // Pega onde está a imagem $image_file = str_replace('..', '', $caminho_e_imagem[0]); $image_path = str_replace('..', '', $caminho_e_imagem[1]).$image_file; if ($extensao == 'jpg' || $extensao == 'jpeg') { $img = @imagecreatefromjpeg($image_path); } else if ($extensao == 'png') { $img = @imagecreatefrompng($image_path); // Se a versão do GD incluir suporte a GIF, mostra... } elseif ($extensao == 'gif') {$img = @imagecreatefromgif($image_path);} // Carrega a imagem $img = null; $extensao = strtolower(end(explode('.',$image_path))); if ($extensao == 'jpg' || $extensao == 'jpeg') { $img = @imagecreatefromjpeg($image_path); } else if ($extensao == 'png') { $img = @imagecreatefrompng($image_path); // Se a versão do GD incluir suporte a GIF, mostra... } elseif ($extensao == 'gif') {$img = @imagecreatefromgif($image_path);} // Cria uma imagem de erro se necessário if (!$img OR $_SESSION['logado'] != 1) { $img = imagecreate(MAX_WIDTH, MAX_HEIGHT); imagecolorallocate($img, 204, 204, 204); $c = imagecolorallocate($img, 153, 153, 153); $c1 = imagecolorallocate($img, 0, 0, 0); imageline($img, 0, 0, MAX_WIDTH, MAX_HEIGHT, $c); imageline($img, MAX_WIDTH, 0, 0, MAX_HEIGHT, $c); if($image_file == 'faca_login.jpg' OR $_SESSION['logado'] != 1) {imagestring($img, 2, 9, 55, 'Faça o Login para ver a Imagem', $c1);} else {imagestring($img, 2, 12, 55, 'Imagem solicitada não exixte', $c1);} } // Mostra a imagem header('Content-type: image/jpeg'); imagejpeg($img); ?>
E por fim , sua pagina pagina.php onde deveriam estar as url's que mostram as imagens
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php // se estiver logado mostra a imagem if($_SESSION['logado'] == 1) {echo "<img border=\"0\" src=\"filtra_imagem.php?foto.jpg&images/\">";} else {echo "<img border=\"0\" src=\"filtra_imagem.php?faca_login.jpg&images/\">";} ?> </body> </html>
onde foto.jpg é a imagem que será exibida só para usuários logados e está localizada dentro da pasta images
Abs.
Massa