Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Galeria de Fotos em único arquivo PHP


FERSOLUINFO
 Share

Question

Olá achei um código de galeria de imagens em um único arquivo PHP em http://www.toprated.com.br/galeria-de-fotos-super-simples-usando-apenas-1-arquivo-php/

Baixei o exemplo e fiz o teste, realmente é perfeito. O código possui variáveis que lê a pasta e o endereço (url) do arquivo. Mas neste exemplo, torna a galeria fixa. Gostaria de passar o endereço da pasta com as fotos via variável no PHP. Aí o código funciona em partes, ele gera os thumbs, mas quanto clico na miniatura, ele gera a visualização vazia. O que deve estar errado? segue os links para teste:

Galeria c/ valor de variavel fixa ( $pasta_fotos = "06513050"; ) - Funcionando OK

http://fernandoinformatica.com/pilastro/galeria/galeria.php

Galeria c/ valor de variavel dinamica ( $pasta_fotos = $_GET["pasta"]; ) - Erro

http://fernandoinformatica.com/pilastro/galeria/galeria2.php?pasta=06513050

O código abaixo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Galeria Simples usando PHP</title>
<!--
###################################
## Estilos ##
###################################
-->
<style>
body {
text-align:center;
margin:0;
padding:0;
}
div {
padding:13px;
display:block;
border:1px solid #ddd;
background:#eee;
font-size:10px;
font-family:Arial, Helvetica, sans-serif;
color:#999;
margin:0 auto;
}
div.thumb {
float:left;
margin:0 14px 14px 0;
padding:0;
}
div.thumb a {
float:left;
padding:13px;
}
div.thumb a:hover {
background:#b70000;
}
div.thumb img {
width:100px;
height:100px;
}
div p {
padding:8px 0 0px;
margin:0;
}
div a {
color:#666;
text-transform:uppercase;
text-decoration:none;
font-weight:bold;
}
div a:hover {
color:#b70000;
text-decoration:underline
}
</style>
</head>
<body>
<!--
#################################
## Lógica ##
#################################
-->
<?php
//URL onde o arquivo PHP vai ficar
$pasta_fotos = $_GET["pasta"];
// $pasta_fotos = "06513050";
$pasta = $pasta_fotos;
//URL onde o arquivo PHP vai ficar
$url_galeria = "galeria2.php";
//Início da função
$fotos = array();
//Loop que percorre a pasta das imagens e armazena o nome de todos os arquivos
foreach(glob($pasta . '/{*_p.jpg,*_p.gif}', GLOB_BRACE) as $image) {
$fotos[] = $image;
}
//Verifica se deve exibir a lista ou uma foto
if ($_GET["image"] == "") {
//Faz o loop pelo folder de imagens
for($i=0; $i < count($fotos); $i++) {
//Cria cada uma das thumbs dentro de uma <div> com link para a imagem grande
echo "<div class='thumb'>";
echo "<a href='" . $url_galeria . "?image=" . $i . "'>";
echo "<img src='" . $fotos[$i] . "'>";
echo "</a>";
echo "</div>";
}
} else {
//Guarda o nome da imagem para montar o link da imagem grande
$foto_g = explode("_p", $fotos[$_GET["image"]]);
//Configura os links de próxima e anterior
if ( $_GET["image"] == 0 ) { $anterior = ""; } else { $anterior = $_GET["image"] - 1; }
if ( $_GET["image"] == count($fotos)-1 ) { $proxima = ""; } else { $proxima = $_GET["image"] + 1; }
//Quando solicitada uma imagem em particular, monta a <div> e insere a imagem grande de acordo com o link
echo "<div>";
echo "<a href='" . $url_galeria . "?image=" . $proxima . "'>";
echo "<img src='" . $foto_g[0] . "_g" . $foto_g[1] . "'>";
echo "</a>";
echo "<p><a href='" . $url_galeria . "?image=" . $anterior . "'>Foto anterior</a> | <a href='" . $url_galeria . "'>Voltar para a galeria</a> | <a href='" . $url_galeria . "?image=" . $proxima . "'>Próxima foto</a></p>";
echo "</div>";
}
?>
</body>
</html>
Gostaria de uma ajuda

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Oi Fernado!

Pelo que observei...

Quando se clica na miniatura, a variável pasta, some da url!

Você vai precisar das duas variáveis na url.

Coloque a variável pasta nos links de foto anterior e próxima foto

Ah! E tambem coloque nas miniaturas:

echo "<a href='" . $url_galeria . "?pasta=$pasta_fotos&image=" . $i . "'>";
echo "<img src='" . $fotos[$i] . "'>";
echo "</a>";
Edited by lowys
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...