Galeria de fotos Lightbox + Upload de fotos + Thumb + Painel Admin
[Adicionada a funcionalidade para deletar as fotos sem uso de BD]
Olá,
Resolvi dar uma revisada no Post sobre Lightbox, nessa revisão nós veremos:
– A Galeria de Fotos com Efeito Lightbox
– Fazendo Upload de multíplos arquivos/fotos para o servidor
– Simulação da autênticação de usuário para acesso à àrea admin (upload)
Recursos que utilizaremos:
– A classe thumbnail para gerar miniaturas(thumbs) com o PHP5
– Upload com tratamento de erros e configurações permitidas de envio
– Uso de Sessão no login (apenas simulação, funcional porém sem BD)
– Leitura de diretório para exibir as imagens enviadas na galeria
Tá bom né? Vamu arripiá agora!!!
Vou colocar aqui algumas considerações “iniciais” antes que me enforquem…
– Quanto ao login, não utilizaremos banco de dados para não perdermos o foco, esse login será feito no PHP mesmo apenas para simular a autenticação e utilizarmos a Session do PHP para transitarmos entre a Galeria e o Admin onde o upload é feito, farei isso para dar uma noção bem simples, você não quer um formulário para upload acessível para todos na sua galeria, quer? pois é… Então, por favor não vamos, por enquanto, misturar os assuntos ok… ok
– Outra coisa que irei responder antecipamente… Sim, dá para colocar a descrição nas imagens mas é preciso armazenar essa descrição em algum lugar (um BD seria bom né, mas não neste post eu também durmo sabia?).
Então por enquanto nossa Galeria não terá descrição nas fotos, mas acredite, é tão simples como, colocar descrição em fotos ha-ha.
– Eu separei o código em vários arquivos para que eu possa explicar o que cada trecho faz sem deixar tudo confuso e cheio de coisas umas em cima das outras, então, teremos alguns includes pelo código, não que sejam obrigatório, só achei que seria mais fácil explicar.
– Não irei disponibilizar para download por enquanto. Ah mas pq? Estou acostumado a baixar seus pacotinhos..
Pois é boneco, alguns baixam sem nem ao menos ler o Post depois ficam perguntando coisas que estão no Post, no geral quando não funciona, pq se funciona o brother não dá nem um “alô jack” aqui para os colegas saberem que funcionou… blah blah uhahuaha
Vamo nessa garotada, tomem seus tódinhos …
O arquivo index.php (Exibe a Galeria) – Explicarei os arquivos na ordem em que aparecem nos includes
<?
# Inicia uma Sessao PHP
@session_start();
?>
<html>
<head>
<title>Galeria</title>
<!– O arquivo lightbox.css faz parte da biblioteca e
é necessária sua inclusão–>
<link rel=”stylesheet” href=”css/lightbox.css” type=”text/css” media=”screen” />
<link rel=”stylesheet“ href=”css/galeria.css” type=”text/css” media=”screen” />
<!– incluindo os arquivos da biblioteca LightBox–>
<script type=”text/javascript” src=”js/prototype.js“></script>
<script type=”text/javascript” src=”js/scriptaculous.js?load=effects“></script>
<script type=”text/javascript” src=”js/lightbox.js“></script>
</head>
<body>
<p> </p>
<p><a href=”enviar.php”>Enviar fotos para Galeria</a></p>
<p> </p>
<hr>
<!– Incluindo o programa que le o diretorio de fotos –>
<? include ‘lerdir.php’; ?>
</body>
</html>
Então acima temos um arquivo quase que 100% HTML exceto pelo start da sessão e o include do arquivo lerdir.php no fim da página.
No HTML de forma geral temos as chamadas ao arquivos CSS e Javascript necessário para exbir as fotos com o efeito Lightbox e em PHP temos como principal o include do lerdir.php que será responsável por ler o conteúdo do diretório e recuperar os nomes das imagens contidas nele, o nome das imagens servirá para colocarmos na Tag IMG do HTML exibindo assim as fotos que são enviadas por upload ou simplesmente colocadas dentro do diretório.
Fazendo Upload nós não precisamos nos conectar por FTP para enviar as fotos para o diretório da Galeria.
Como eu falei explicarei os arquivos que vierem surgindo nos includes, nesse momento temos o LerDir.php.
O Arquivo LerDir.php (está sendo chamado no index.php)
<?
# 1 Diretorio que guardara as fotos
$dir = “fotos”;
# Extensoes permitidas na exibicao da galeria
$exts = array(‘jpg‘,’png‘,’jpeg‘,’gif’,’bmp‘);
if (is_dir($dir)) {
if ($d = opendir($dir))
{
while (($file = readdir($d)) !== false)
{
if (filetype($dir.’/’.$file) == ‘file’)
{
# Recupera a extensao do arquivo
$extensao = explode(“.”, $file);
for($i=0; $i<=count($exts)-1; $i++)
{
# Verifica se a extensa é permita (esta no array exts)
if($extensao[1] == $exts[$i])
{
# Criando o link da imagem pra o lightbox e exibindo a thumb
echo “<a href=”$dir/{$file}” rel=”lightbox[roadtrip]”>“;
echo “<img src=”thumb.php?img=$dir/{$file}” class=”thumb”></a>“;
}
} # end for
} # filetype
} # while
closedir($d); // encerra a leitura do diretorio
} # end opendir
}
?>
Resumidamente esse arquivo apenas vê o que tem dentro do diretório fotos verifica qual sua extensao e confronta com o array exts que possui ali as extensoes que queremos que sejam exibidas na galeria.
Bem, com isso nós já conseguimos exibir as fotos contidas na pasta fotos, vamos ver como envia-las para lá.
Mas perceba que onde ele insere a imagem (IMG SRC) estamos passando por GET o caminho das fotos para o thumb.php que se encarregará de gerar as miniaturas, além disso estamos colocando os atributos requeridos pelo lightbox que neste caso é o atributo REL , então…
Seguiremos com o arquivo Thumbs.php
<?php
# Inclui a classe thumbnail
include_once(‘thumbnail.inc.php‘);
# Cria nova thumb da imagem recebida por get
$thumb = new Thumbnail($_GET[‘img’]);
# Seta as dimensoes da thumb altura e largura
$thumb->resize(120,120);
# Exibe/retorna a imagem em miniatura
$thumb->show();
exit;
?>
Como podem ver é algo também simples, isso pq a classe thumbnail se encarrega de gerar a miniatura com os parametros passados nos métodos. A classe thumbnail é muito poderosa e cheia de recursos que não abordaremos por agora, entre eles estão marca dagua, reflexo, muita coisa… colocarei o link da documentação ao fim do post.
Bem, então temos o arquivo index.php que chama o lerdir.php encarregado de ler o diretório que por sua vez passa os nomes das fotos contidas no diretório para o arquivo thumb.php que se encarrega de passar os dados para a classe thumbnail responsável por gerar as miniaturas. (leia denovo rs).
Assim, temos as imagens existentes no diretório fotos sendo exibidas na tela, precisamos agora enviar fotos para o diretório, faremos isso através do arquivo enviar.php que possui uma validação sem vergonha mas que servirá bem para vocês implementarem as melhorias que acharem cabíveis.
O Arquivo Enviar.php
<!– incluindo Login de usuario –>
<? include ‘login.php’; ?>
<html>
<head>
<title>Galeria</title>
<link rel=”stylesheet” href=”css/galeria.css” type=”text/css” media=”screen” />
</head>
<body>
<?
# 1 Se a Sessao Logado nao existir exibe o formulario de login
if(!isset($_SESSION[‘logado’]))
{
?>
<form name=”login” method=”post”>
<label>Password:</label>
<input type=”password” name=”senha“>
<input type=”submit” value=”login“>
</form>
<p> </p>
<p><a href=”index.php”>Visitar Galeria</a></p>
<?
exit;
# 2 Se a sessao existir exibe o formulario de upload
}else{
?>
<p>
<a href=”index.php“>Visitar Galeria</a> |
<a href=”enviar.php?logout=true“>Logout</a>
</p>
<hr>
<p> </p>
<form action=”” method=”post” enctype=”multipart/form-data“>
<input type=”file” name=”fotos[]” /><Br>
<input type=”file” name=”fotos[]” /><br>
<input type=”file” name=”fotos[]” /><br>
<input type=”file” name=”fotos[]” /><br><br>
<input type=”submit” value=”enviar” />
</form>
<p> </p>
<!– 3 Incluindo o programa que faz o upload das imagens –>
<? include ‘upload.php‘; ?>
<p> </p>
<? }?>
</body>
</html>
Talvez esse seja o arquivo mais feio pq nele possui HTML e PHP misturados o que não é tão legal mas que em alguns casos não dá para escapar, até numerei os comentários para tentar facilitar a explanação, acontece o seguinte, a primeira linha do arquivo como podem ver chama o programa Login.php que é responsável pela validação aqui chamada de sem vergonha por não ser feita através do BD, bem isso já foi comentado, o programa Login.php verifica se existe uma sessão ativa, ou seja, se há a validação que neste caso é apenas uma senha verificada no próprio PHP. Seguindo isso o que acontece é que no programa login é criada a sessão chamada SESSION[‘logado’] caso a senha enviada esteja correta, então caso a sessão não tenha sido criada é exibido o formulário de login e se houve a validação, ou seja, a senha esteja correta o que é exibido é o formulário de upload das imagens, isso ocorre após o comentário 2 onde é exibido também o link para a galeria e outro para o logout que nada mais é que a distruição da sessão criada fazendo então com que o formulário de login apareça novamente. Ainda nesse raciocinio, caso a sessão exista é feita a chamada do programa Upload.php logo no comentário 3, esse programa irá fazer a validação e upload da imagem, lembrando que para isso deve existir a sessão senão a chamada ao programa upload passa à não existir, ou seja, só há o incluide do Upload.php caso a sessão exista e isso está claro, na linha if(!isset($_SESSION[‘logado’])) ele diz que se não houver a sessão deve ser exibido o formulário de login e na linha após o ELSE diz senão exiba o formulário de upload e inclua o programa upload.php. Resumidamente o formulário de upload e o programa upload só existe se existir a sessão. Para vermos como ocorre a validação da senha no programa Login.php veremos agora esse arquivo.
O arquivo Login.php
<?
@session_start();
# Simulando Login de usuario
$senha = “1234”;
if(isset($_POST[‘senha‘]) && $_POST[‘senha‘] == “$senha”)
{
# Cria uma sessao se a senha estiver correta
$_SESSION[‘logado‘] = true;
}
# Verifica se logout foi solicitato
if(isset($_GET[‘logout‘]) && $_GET[‘logout‘] == “true”)
{
# Destroi a sessao
@ session_destroy();
}
?>
O programa acima é chamado no inicio do programa Enviar.php, isso ocorre pq para que seja exibido o formulário de upload deve haver uma sessão validada, caso contrário o que será exibido será o formulário de login. A idéia é que vocês implementem nesse arquivo login.php a validação com BD, basta alterar apenas esse arquivo para que isso ocorra. Explicando o programa login, no inicio é feita a chamada ao session_start o que nos permite criar sessões, em seguida estamos setando a senha que será confrontada com a que vem do formulário de login, ou seja, o valor vindo do formulário deve, neste caso, ser 1234 para que haja a validação. A linha if(isset($_POST[‘senha‘]) && $_POST[‘senha‘] == “$senha”) diz se vier dados do campo senha do formulário e esse valor for igual ao valor da variável $senha então é criada a sessão chamada $_SESSION[‘logado‘]. Já na linha if(isset($_GET[‘logout‘]) && $_GET[‘logout‘] == “true”) ela diz se vier por GET a variável logout e ela tiver seu valor igual à true então destrua a sessão, o que nos fará voltar ao formulário de login. Como esse programa é chamado no inicio do programa Enviar.php a validação tanto do login quanto do logout será a primeira coisa à ocorrer antes que qualquer formulário seja exibido.
Passando da chamada ao programa Login.php que ocorre no inicio do Enviar.php temos ainda no final do mesmo arquivo a chamada ao programa Upload que só será incluso caso a validação exista, mas isso você está careca de saber…
O arquivo Upload.php
Sem dúvida um dos arquivos mais importantes, ele é responsável por tratar as imagens vindas do formulário e tive toda paciência do mundo ao escrever esse programa para que ficasse simples de explicar, porém vale se atentar aos comentários pois eles por si só já explicam o que ocorre durante todos os blocos do programa upload.
vamos ver:
<?php
# Setando as configurações permitidas
$larguraMax = 2000; // largura em pixels
$alturaMax = 2000; // altura em pixels
$tamanhoMax = 1500000; // tamanho em bytes
$formatos = “pjpeg|jpeg|png|gif|bmp|x-png|jpg”; // extensoes permitidas
# Criando as mensagens de erro
$erro[] = “Tamanho do arquivo maior que o permitido [“.($tamanhoMax/1000).” kb].”;
$erro[] = “A Largura da imagem maior que o permitido.”;
$erro[] = “A Altura da imagem maior que o permitido.”;
$erro[] = “O Arquivo já existe no diretório.”;
$erro[] = “Formato do arquivo não permitido ou inválido.”;
if(isset($_FILES[“fotos”]))
{
foreach ($_FILES[“fotos”][“name”] as $key => $name)
{
$arquivo = $_FILES[“fotos”];
$dimensoes = getimagesize($arquivo[“tmp_name”][$key]);
$nomefoto = strtolower($_FILES[“fotos”][“name”][$key]);
#Verificando se a imagem foi enviada
if($arquivo[“name”][$key] != “”)
{
# Retirando espacos no nome do arquivo
$espacos = explode(” “,$nomefoto);
if(count($espacos) > 1)
{
$nomefoto = strtolower(ereg_replace(‘ ‘, ‘_’, $nomefoto));
}
# Se o Tamanho do arquivo é permitido
if($arquivo[“size”][$key] > $tamanhoMax)
{
# Adiciona o erro no array erros[]
$erros[] = “[$nomefoto] $erro[0]”;
}
# Se a Largura do arquivo é permitida
if($dimensoes[0] > $larguraMax)
{
$erros[] = “[$nomefoto] $erro[1]“;
}
# Se a Altura do arquivo é permitida
if($dimensoes[1] > $alturaMax)
{
$erros[] = “[$nomefoto] $erro[2]”;
}
# Verifica se o arquivo ja existe no diretorio
if(file_exists(“fotos/$nomefoto“))
{
$erros[] = “[$nomefoto] $erro[3]”;
}
# Verifica se extensao é pertida
if(!eregi(“^image/($formatos)$”, $arquivo[“type”][$key]))
{
$erros[] = “[$nomefoto] $erro[4]”.$arquivo[“type”][$key];
}
# O array erros nao tiver nenhum indice o upload é permitido/realizado
if(!isset($erros))
{
$imagem_dir = “fotos/”.$nomefoto;
move_uploaded_file($_FILES[“fotos”][“tmp_name”][$key], $imagem_dir);
$sucesso[] = “[$nomefoto] upload com sucesso.”;
}
}
}
# Verifica se existem erros no array
if(isset($erros))
{
echo “<ul class=’erro’>”;
foreach($erros as $erro)
{
echo “<p><span>$erro</span></p>”;
}
echo “</ul>”;
}
# Verifica quais imagens tiveram sucesso no upload
if(isset($sucesso))
{
echo “<ul class=’sucesso’>”;
foreach($sucesso as $up)
{
echo “<p><span>$up</span></p>”;
}
echo “</ul>”;
}
}
?>
Importante:
Na linha $imagem_dir = “fotos/”.$nomefoto; estamos dizendo que a imagem deverá ser enviada para o diretório “fotos” portanto é necessário que você dê permissão de gravação à esse diretório caso contrário a imagem não será enviada.
È isso ai, acima o arquivo que irá validar as imagens e fazer o upload. Como podem ver as primeiras linhas possui as mensagens de erro e também as configurações relacionadas à imagem como largura, altura, tamanho e extensão permitda para upload. Esse montão de IF após receber a imagem vinda do formulário irá checar se ela se adequa as configurações permitidas e somente se estiver de acordo é que será enviada ao servido/diretório.
Acredito que implementando pouca coisa como layout e o login por BD já dá para você ter sua galeria, agora você pode colocar aí uma senha complexa e usar para uma galeria que não esteja tão exposta aos maliciosos haha…
Alguns links sobre o que abordamos:
– A Classe Thumbnail
– O Lightbox
– Upload com PHP
– Sessão PHP
– A leitura de diretorios
O link do Exemplo proposto
– veja aqui (A senha do painel admin é 1234)
– Download do fonte aqui
Obs: Limitei o tamanho dos uploads à 10kb no exemplo para que não sobrecarregue meu host, afinal não foi dessa vez que abordamos a exlusão das imagens, não é ? Na próxima revisão teremos o login com BD e a exclusão das fotos via painel admin. Outra coisa, por gentileza a minha idéia é compartilhar com vocês o que tenho visto no meu dia-a-dia então não envie imagens desagradáveis para que eu não tenha que tirar do ar o exemplo deixando as pessoas sérias perderem com isso. Procure ler o Post antes de perguntar.
Muito obrigado e espero ter ajudado.
Se desejar utilizar banco de dados veja : http://clares.com.br/2009/09/28/galeria-de-fotos-admin-lightbox-php-postgresql/
Não deixe de ver : http://clares.com.br/2010/11/04/galeria-de-fotos-lightbox-php/
Rafael Clares,
tem como colocar legenda por upload tb?
ja tentei e nao consegui…
Amigo, basta ler o Post. Já está comentado sobre esse assunto. Obrigado pelo comentário.
tem como colocar legenda nas fotos?
ta havendo um problema, eu ainda não consegui corrigir, quando eu faço o upload das imagens, as miniaturas delas não aparecem.
Amigo, parabéns pelo Post. Faltou algo para deletar as fotos. Poderia dar uma dica para isso? Seria muito útil.
Edivan, obrigado pelo comentário. Bem, na verdade não está faltando algo, talvez você tenha ido direto ao exemplo sem antes ler o post, nele informo que não será comentado exclusão das imagens e que ainda ficaria para um próxima revisão juntamente com utilização de BD para login de usuários, logo, não falta nada do que foi proposto. Sim, seria útil a exclusão das imagens, a idéia não é “criar um sistema para vocês fazerem download” e sim dar uma direção de como fazer as coisas, para apagar arquivos utilize o comando unlink(‘caminho_absoluto_do_arquivo’). Abraços,
bom rafael gostei muito do seu tutorial
mas vamos lá, quando faço upload de uma foto
diz que a foto foi enviada com sucesso, mas não aparece nen na pasta fotos, ou seja não foi enviada
oque poderia ser?
Bem, você poderia me passar algumas informações não é?
onde está o programa no seu computador (colocou o caminho absoluto do diretorio ex: c:www…)?
está hospedado (já deu permissao de gravação no diretorio) ?
Você esta usando os fontes sem alterar nada ?
Fico no aguardo,
obrigado pelo comentário.
Rafael pode deixar, aprendi na marra rsrsrs
tinha que setar as permissões no servidor
Na marra? rs rs rs tá certo Antonio, é isso ai amigão, assim que tem que ser!
Mas essa informação está no POST, acredito que você passou os olhos direto para
o download. abraços,
Fala Rafinha,
Otimo Post, como sempre nos surpreendendo com tutoriais interessantissimos. Só esta nos devendo aquele lá dos newsletter hem.. rs*
Abraços e parabens, este blog esta cada vez mais essencial na hora de criar um site mais dinâmico e atraente.
Olá,
Primeiramente meus parabéns pelo post, muito explicativo.
Estou tendo pequeno problema, as thumbs não estão aparecendo. Todas as permissões de pastas foram setadas e o sistema está fazendo o upload perfeitamente. Sabes me dizer o que houve ?
Att
Joao Paulo, obrigado pelo comentário.
Bem, verifique se em seu PHP.INI está descomentada a linha que habilita a biblioteca GD2 no PHP. Isso pode ser o problema que impede a exibição das imagens uma vez que o thumb utiliza a GD2 para criar as thumbs. Até mais,
Muito obrigado pelo tutorial, mais também estou com o problema nos thumbs…
está postando normal, mais não está aparecendo as thumbs dpois que posta…
como podemos resolver isso ?
obrigado.
Olá Junior, acredite minha vontade é ajudar mas não é fácil quando não me falam nada sobre o problema, é como você chegar no médico e apenas dizer que sente uma dor… ele não vai ajudar se não disser onde dói, desde quando…
peço à você pode gentileza que me diga:
– Você apenas baixou o código ou alterou alguma linha, variável, letras…. ?
– Seu site está na internet ou está no seu computador local ?
– Você já verificou a questão da GD2 estar ou não ativada no PHP ?
Me diga alguma coisa, tentarei ajudar!
abraços,
olá rafael, realmente não expliquei…
é o seguinte, apenas baixei o codigo fonte e coloquei no servidor para testar, não alterei nenhuma parte de nenhum codigo, o problema é o seguinte:
-Dpois que posta a foto, fala que foi publicada perfeitamente, mais ao visualizar a galeria os thumbs não aparecem, fica apenas o X de quando uma imagem naum abre, se clicar sobre o x a imagem abre, apenas o thumbs naum abre.
essa questão do gd2 não sei ao certo como eu visualizo, se puder por gentileza me falar mais passo a passo como posso resolver ficarei muito grato!
muito obrigado pela sua ajuda!
Junior, para habilitar GD2 descomente no seu PHP.INI a linha
extension=php_gd2.dll
Faça isso e se não adiantar me avise que tentarei ajuda-lo!
Outra coisa que você pode ver se a extensão das fotos enviandas está no array tanto do arquivo lerdir.php quando do arquivo upload.php.
No upload.php $formatos = “pjpeg|jpeg|png|gif|bmp|x-png|jpg”;
No lerdir.php $exts = array(’jpg‘,’png‘,’jpeg‘,’gif’,’bmp‘);
Se está permitindo o envio de uma certa extensão (upload) mas não está permitindo a leitura (lerdir) da mesma
por ocasionar algum problema, claro. De toda forma acredito que ativando a GD2 (caso nao esteja) já resolva.
onde exatamente eu mudo este parametro do GD2 ? e onde exatamente está este arquivo php.ini ?
as configurações de tipo de imagem estão corretas, creio que é nessa opção de cima que to com duvida msmo !
obrigado!
Cara, tá hospedado em algum lugar? pode me passar o link ?
Se não estiver hospedado, pow … quando você não souber onde está localizado um dado arquivo em seu computador você pode usar seus instintitos ou usar a pesquisa do windows/linux rs rs… no caso do php.ini está no diretório onde você instalou o php/apache/ enfim o servidor web.
flw
cara, eu peguei o codigo fonte e coloquei no servidor, ele tá online no seguinte link: http://www.agenciagold.com.br/galeria
Ihh cara, se você testar o link que gera a thumb irá ver que existe algo errado ao processar a imagem, veja:
http://agenciagold.com.br/galeria/thumb.php?img=fotos/koh.jpg
Esse link acima deveria retornar uma imagem e não o erro apresentado.
No mesmo programa que baixei e coloquei no servidor funciona, veja:
http://clareslab.com.br/learn/lb2/thumb.php?img=fotos/headset-dj.jpg
Blz, o erro está no seu servidor, faça o seguinte:
– crie um arquivo php e coloque apenas o código abaixo….
phpinfo();
envie para seu servidor e execute, ele deve exibir tudo que está habilitado em seu PHP, faça uma busca na página apresentada e tente encontrar “GD”, se não houver … esse é o problema, você pode pedir para seu hosthabilitar no PHP.
Outra coisa que você deve verificar também é a versão do PHP, essa classe thumb acredito que seja para o PHP5.
Ah, se seu PHP inferior ao 5, baixe a classe thumbnail para sua versão do PHP em http://www.gen-x-design.com/projects/php-thumbnailer-class/ descompacte e apenas substitua o arquivo thumbnail.inc.php.
Me diz depois,
Conseguiii ! o/
Brigadoo msmo cara…
o problema tava na versão do php mesmo, o meu é o 4, então só foi substituir o thumbnail.inc pelo link que você enviou que resolveu !
valeu mesmo !
ah! me passa os valores de sistemas, ou algo do tipo que você vende, que sempre que precisar vou te procurar!
Júnior, com certeza cara, se precisar de algo me diz e combinamos, farei a mesma coisa em relação à você, gostei do seu portifólio (flash)… bacana, sempre preciso desse tipo de trabalho (layouts) e como não sei nem por onde começar um… ha-ha …
te dou um grito ae!
abraços,
Cara seguinte, a muito tempo eu tava penando para traabalhar com php, e tenho clientes com galeria em LigthBox que tinha que atualizar manualmente… que chatisse… rsrs…
Bom to te parabenizando ai pela explicação muito facilitada, teu material todo do blog está muito bom… Realmente so é uma pena que não tenha tempo de postar mais, eu sei como é pq tb passo por isso.
Mas seguinte Tu saberia que classe usar do thumbs, para não redimensionar a imagem deixando aparencia de esticada, mas sim enquadrada… Como as galerias do orkut?
Bom.. brigadão ai, valeu!
Opa… DEsconsidere a minha pergunta.. eu havia feito pq meu ingles ão é mitop bom para ler as classes.. mas entendi perfeitamente no link que vc colocou.. Sucesso!
Rafael,
Primeiramente parabéns pelo trabalho que realiza aqui no seu site, são ótimos e de grande ajuda. Bom, tenho no site vários diretórios de fotos, e uso os mesmos na galeria feita em flash, mais gostaria de usar também no fórum do site com essa ferramenta “lightbox” sem precisar fazer o upload das fotos novamente. Seria possível? Já tentei mudar a linha no arquivo “lerdir.php”:
$dir = “fotos”;
Para exemplo:
$dir = “fotos/encontro_semanal”;
Ele consegui ler somente 9 imagens e não aparece as miniaturas, creio que seja pq não foi feito atraves do upload… Desde já agradeço a sua ajuda.
Verifique se a extensão das fotos estão no Array do arquivo lerdir.php, pois lá estão permitidas as extensões das fotos…
se quiser me mande o codigo…
[email protected]
abraços
olá parabens por esse exelente tutorial, goostei e me ajudo muito! só que estou com um probleminha, não sei se pode me ajuda, mais se puder agradeço 😀 Está quase tudo certo, só que as miniaturas não aparecem de jeito algum, e eu não tenho aquele tal arquivo “include_once(‘thumbnail.inc.php’);” ele é preciso para gerar as miniaturas???
Obrigada desde já! Abraço
Se puder add no msn 😉
Olá, obrigado pelo comentário!
Então, você precisa sim do arquivo que mencionou. Se fizer o download do pacote que disponibilizei irá funcionar normalmente. Faça isso e se não funcionar me procure. Te adicionei no MSN. Tchau
Rafael, parabéns pelo tutorial!
São poucos os tutoriais que encontramos que são bem detalhados.
Eu sou leigo em PHP, mas consegui implementar todo o código. Porém gostaria de saber como faço para ordenar por ordem decrescente de inclusão. Já mexi às cegas em várias linhas de código, mas não achei qual a ordenação utilizada.
Agradeço desde já….
Antonio, obrigado pelo comentário.
Amigo, o sistema apenas lê o diretório…. é como se você abrisse a pasta foto e lá estão exibidas por nome, data, etc …
Porém nosso programa apenas pega os arquivos que lá estão na ordem padrão e as exibe, diferente de um banco de dados…
Mas você pode entrar no php.net e procurar pela função readdir e ver seus parametros, talvez tenha como faze-lo.
até mais.
Muito boa a matérias e a galeria é ótima, porem eu gostaria até saber de você se tem como exibir as fotos por partes, fazer uma divisão por paginação… Ex: uma págia mostra 20 miniaturas, se na pasta estiver 200 fotos, teriamos então que ter 10 páginas… fazendo assim paginação onde poderiamos carregar mais rápido a pagina, se tiver alguma resposta, me envie um email!
Olá Isarel,
obrigado pelo comentário. Cara é o seguinte, dá para fazer sim de boa, basta tratar o programa que lê o diretório e criar a páginação. Bem, nesse caso você precisa saber ao menos o mínimo de PHP, infelizmente o pouquissimo tempo que tenho para me dedicar ao blog não me permite criar programas completos para disponibilizar para download. Caso tenha alguma dúvida fique à vontade para perguntar, desde que você não espere que eu escreva o programa para você ;P
Abraços,
Olá Rafael!
Meus parabéns pela postagem. Muito simples e direta. Até para mim, que não entendo muito de php, ficou fácil.
Mas, surgiu um pequeno problema:
Quando fiz o upload dos arquivos para o servidor, as imagens não apareciam. Então (des)atualizei o “thumbnail.inc.php” para uma versão anterior e funcionou. Acontece que eu queria thumbs menores. Entrei no código do “thumb.php” para alterar o tamanho do thumbnail de 120 x 120 para 80 x 80. Ao atualizar a página, novamente os thumbs desapareceram. Já substituí o “thumbnail.inc.php” e recoloquei os valores originais de tamanho no lugar e a coisa não voltou a funcionar…
O que pode ser?
Olá Horácio, faça o seguinte:
– Apague tudo (rs)
– baixe o pacote que disponibilizei
– baixe a versão do thumbnail.inc.php referente a sua versão do PHP.
deixe tudo no padrão que você baixou, se funcionar me diga o que quer alterar.
Ou me mande no [email protected] – Dou uma olhada e te digo o que é !!
abraços,
Baiixeia versão do thumbnail para php4, testei, funcinou, te mandei por email tudo certinho! flw
Baixei a versão do thumbnail.inc para o php4, testei, funcionou, te enviei por email o pacote funcionando. flw
Rafael, muito legal teu tuto! ficou bacana.
Talvez voce possa se interessar em acrecentar uma coisa nesse tuto! Uma opção para adicionar a foto numa lista para depois enviar para dono do site, como se fosse um orçamanto, digo isso pois queria fazer isso com produtos (Não venda) apenas dar a oportunidade para o cliente escolher o produto e pedir um orçamento. sacou!?
Cunha, obrigado pelo comentário e dica!
abraços
Ola cara parabéns pelo seu post muito bom. Tenho uma duvida tem como acrecentar um link nas imagens ( tipo quando a imagem ficar grande ela ter um link onde eu poderia ir pra outro site) Obrigado.
Olá Marcelo,
cara tem como sim, dê uma olhada em http://www.huddletogether.com/projects/lightbox2/
a última versão do lightbox permite colocar um link no caption(nesse caso. a descrição da foto).
Abraços,
Rafael como faço para dar mais espaços entre uma miniatura(thumb) e outra.
Obrigado. Sucesso.
Marcelo, basta editar o arquivo galeria.css e aumentar o o margin.
.thumb{
border:1px solid #333;
border-bottom:6px solid #666;
padding:2px;
margin:2px;
}
Abraços
Aqui estou de novo pra te encher o saco, desculpa mas to tentando aprender. Como faço para colocar um link onde eu tenho um comentario. o codigo em php q uso pra mostrar as imagens é este.
Olá Marcelo, fique à vontade para perguntar!
Bem, algumas soluções você pode ver sempre ao fim de cada post eu coloco alguma referência, neste caso eu
indico o site/home do lightbox onde tudo que é possível fazer com ele, é mostrado como fazer!
Segue o link onde está exatamente o que você quer saber!
http://www.huddletogether.com/projects/lightbox2/#support
abraços,
Olá Rafale!
Sou novo em PHP e adorei seu tutorial, mas queria saber uma coisa: como faço para além de fazer o upload das fotos colocar comentários nelas… é que estou desenvolvendo algo semelhante ao site de notícias… então o usuário (cliente) não entende de linguagem alguma, queria uma forma dele, mesmo assim, atualizar os ite a hora que bem entender.
Vlw
Clécio, para colocar comentários nas fotos você pode utilizar um banco de dados (postgresql, mysql), criando uma tabela que contenha o nome, endereço e comentário da foto. Ao fazer o upload o sistema deve gravar na tabela sql os dados de cada foto/imagem. Para exibir as fotos basta selecionar os dados do banco e montar a exibição, bem, seria isso à grosso modo. Se é muito novo em PHP acabará procurando isso pronto na internet, mas acredite, não é dificíl!
Abraços e boa sorte !
Ola Rafael preciso de sua ajuda com um sistema teria como vc entrar em contato comigo por email???
[email protected]
Obrigado
Rafael m desculpe por postar esta duvida neste topico diferente.
Minha pergunda é tem como desenvolver um menu drop down com administrador para acrecentar itens?
Obrigado.
Olá Marcelo, como sim. Você precisa fazer algo que seja baseado em XML ou BD (MySql/Postgre…),
crie uma tabela para categorias e uma para os itens do menu. É bem simples, infelizmente devido
ao meu trabalho estou sem tempo para “fazer” para você. Então se houver alguma dúvida durante o processo me diga e irei tentar responder na medida do possível.
Abraços,
caa, seguinte, eu fiz td certo
mas o enviar.php ta abrindo em cima a tela de login e embaixo a tela de enviar, e alem do mais, se eu clicko ou no botao enviar ou no login, simplesmente se atualiza a tela, e nada…
acho q tem um problema no action
ou entao tbm algo a ver com a variavel, pois n pode ela TAR LOGADO e NAO TAR logado ao msmo tempo,
vc pode verificar isso pra mim?
abraco
Olá André,
amigo são feitos diariamente cerca de 60 downloads deste exemplo e nenhum problema como esse foi, até agora, informado.
Acredito que você deva baixar novamente o fonte e testar. Uma coisa que você pode verificar é se seu PHP está configurado para aceitar o “short tags”, infelizmente tenho essa mania de iniciar o código com <? ao invés de <?php e ocorrem erros devido o PHP.ini nao estar configurado para aceitar, verifique se é o seu caso pois o short tags até onde eu sei vem configurado como off. Abraços
Tem como por exemplo cologar para aparecer só 5 fotos ne uma única linha, se tiver mais fotos aparecer em outra linha!
fazer uma quebra linha!
Israel, dá sim …
Basta você definir no CSS uma área para as figuras onde tal espaço caiba apenas a quantidade de fotos que desejar. `
Por exemplo:
Se suas miniaturas possuem 100 pixels de largura e você quer 5 imagens por linha coloque-as dentro de uma Div ou Table que tenha 500 pixels de largura…. 500/5 = 100 ou 1 foto.
Dê uma lida sobre CSS, não precisa alterar nada no código PHP ok.
Abraços
olá rafael primeiramente parabens pelo material e dificil encontra tutoriais bem feitos assim na net, tenho um conhecimento basico em php naum tive necessidade para monta-lo, tenho uma pergunta como é que eu faço pra que as fotos entrem no mesmo tamanho no thumbnail
Olá Augusto,
tem que alterar a função resize da classe thumbnail, na versão original ela redimensiona em porcentagem o tamanho das fotos, então se alterar a função para ao invés de porcentagem ela diminuir para um tamanho fixo, daí todas as fotos ficam iguais.
Eae blz?! Estou qrendo fazer ele com categoria, e to com dificuldade de na hora de upa os arquivos escolher o diretório por uma caixa de texto. Ex. eu seleciono as fotos e digito o diretório. só que como to começando não estou conseguindo fazer isso. gostaria de saber se tens como você me da um auxilio e como posso fazer issu.
opa pessoal só para dizer q ja consegui fazer.
vlw
Amigo sou eu denovo. Ja consegui fazer a categoria a paginação pra mostra 10 fotos em cada pagina. agora só estou com um probleminha. gostaria de saber se tem como fazer o lightbox abrir a imagem em um tamanho padrão tipo independente do tamanho da foto ele abri em 50% o tamanho do arquivo ou algo do tipo. A moral seria abri menor a fotos, q nem o highslide q tu aumenta o tamanho original se quiser. vlw
Cristiano,
poxa cara que bom que conseguiu, então …
a idéia do post é justamente essa, dar uma direção para que vocês possam
implementar algo a partir do que mostrei. Quanto a sua última pergunta, tenho
certeza de que dá para fazer sim, mas infelizmente cara to sem tempo de ver como fazer
isso, não é difícl não, talvez mexendo no CSS ou na classe Thumbnail (função resize) …
Assim que eu tiver um tempinho aqui vou ver isso, mas tenho certeza que você irá descubrir
rapidamente como fazer…
abraços
Meu akbei de conseguir, fazer oque tava qrendo. Agora vo por no site q estou fazendo e dpois mando o link pra voce ver como ficou.
Bah cara valeu mesmo, pois sem esse teu tuto não tava conseguindo de jeito nenhum fazer a galeria de fotos. brigadão e otimos tutoriais.
tem um problema nisso, em meus scripts aqui, já tentei mas não consegui também:
isso ae só faz upload de thumbs, mas visualiza thumbs também. Bom, poderíamos fazer assim: fazer o download de fotos com dimensões de 600 pixeis e no arquivo lerdir.php dar alguma forma de redimensionar as imagens para vermos apenas thumbs, já tentei usar vários createthumbs.php disponibilizados na net só que nenhum era aplicável à uma lista de imagens, como o nosso lerdir.php
se alguém conseguir alguma forma de enviar duas imagens e uma delas ser redimensionada como thumb e ir para outro diretório, por favor, me avise.
[]s
Caro Triplox, essa informação que procura está em outro Post.
Leia as últimas linhas do post :
Criar thumb (miniaturas) com PHP
abraços,
tae galera, concluí, ah agora fui ver, obrigado por responder meu post, mas acabei dando um jeito, o manual do php é muito útil.
http://www.ffcriacoes.com.br/sites_prontos/basic
Sabe como é, sou acostumado com jsp e quando vamos pro php ficamos perdidos mesmo ;p
[]s a todos
Cara, eu li e reli e não consegui.. :S
baixei os arquivos e coloqui no DW salvei, ate ai blz, quando entro para enviar as fotos, aparece o campo de senha em cima sempre, coloco ela e não acontece nada, coloco a foto, aperto em enviar e nada acontece também… ;s
o que esta de errado?
abraço e obrigado pela aula;;
Henrique,
dê uma olhada no seu arquivo php.ini (do servidor web), verifique se a linha
short_open_tag = on
está descomentada, se não estiver, descomente-a.
Depois me diz,
flw
Baixei os arquivos e o único modo de fazer o envia.php funcionar foi colocando um action no formulário identificando a ‘upload.php’ ele manda a imagem para a pasta, maaaaas não aparece na index.php estou fazendo tudo em localhost, você pode me ajudar a identificar este problema?
Abraço e excelente posta
Eleanor,
quando o action do formulário está em branco os dados são submetidos para a mesma página, então se quiser realmente preencher o campo action pode colocar no action o “enviar.php”, ou seja, o mesmo arquivo que possui o formulário. Utilizamos a mesma página pois ela verifica se algo foi submetido, se sim, o arquivo “upload.php” é incluido no “enviar.php”. Verifique também se seu PHP.ini está habilitado para aceitar Short Tags, acabei escrevendo o programa abrindo as tags com <? ao invés de <?php …. verifique no seu php.ini se se a linha
short_open_tag = on
está descomentada, se não estiver, descomente-a (tenho quase certeza que é isso, pois no upload.php está com a tag normal).
E me diga se funcionou.
Faça novamente o download do fonte, eu troquei o short tags pela tag <?php normal.
Muito obrigado pela simpatia e clareza Rafael, e claro por responder rapidamente. rsrs
O que eu fiz:
Deletei a página de upload e coloquei ela junto com o envia.php modifiquei o usuario e senha coloquei em banco de dados (Só acessa logado, caso contrario volta para página login). Esta tudo ok, ele aparece mensagem quando a imagem já existe no diretório e quando envia, ou não e o motivo, esta tudo ok. A linha “short_open_tag” estava off, coloquei on mas as imagens ainda não aparecem na index.php, lembrando estou fazendo tudo local ainda não enviei nada para a ‘net’ para fazer o teste. Mais uma vez muito obrigado pela sua aula e por sua ajuda, obrigado mesmo.. Abração
Opaaa, realmente não estava funcionando por causa dos <? sem o php. mas agora funfou blz.. xD agora so tenho que descobrir como seleciono a página que quero enviar determina foto (atravéz de um banco de dados) E também como faço para que elas apareçam aonde eu quero e não uma ao lado da outra.. se souber como me dar essa dica xD
Mais uma vez, obrigado pela ajuda..
Hahaha sei como sim, mas aí vou fazer o sistema inteiro para você, daí não vale né ?
Mas vou te dar uma direção ok.
crie as tabelas (com os campos que aparecem ao lado):
– categorias (IdCategoria, nomeCategoria)
– fotos (idFoto, idCategoria, urlFoto)
Popule a tabela categoria (se quiser faça uma tela para add categorias)
Na tela de upload das fotos o usuário deverá selecionar uma categoria e enviar a imagem
No arquivo upload.php, modifique-o para assim que fizer o “upload com sucesso” em seguida gravar no banco ex.
insert into fotos (idcategoria,urlfoto) values ($idCategoriaVindaDoPost, $nomeDoArquivoFoto)
Para não dar problema com nomes repetidos user o método md5() para criar nomes unicos, ex:
$nomeDoArquivoFoto = md5(uniqid(time())); // isso antes do insert (claro)
Na página principal você coloca no inicio do programa uma query pegando as fotos por categoria, ex:
Suponha que na página principal sejam exibidas primeiramente as categorias e só depois do usuário escolher a categoria a página é direcionada à uma url que carrega por GET o id da categoria, assim temos uma segunda página que espera:
$idCategoria = $_GET[‘idcategoria’] ; // esse valor vem do form/select da página anterior
em seguida monte a query com o id recebido
$sql = “select * from fotos where idcategoria = $idCategoria”
Bem, agora você só tem fotos da categoria escolhida pelo usuário. É mais ou menos isso, vai dizendo onde você enrosca e na medida do possível vou te ajudando.
tchau
Tentei, tentei e retentei mas não obtive susseco… eu consegui salvar o nome da imagem no banco, mas assim, eu gostaria que elas ficassem junto com o id do usuario assim quando eu entrar com este login as imagens são carregadas entende? tentei muito, muito mesmo fazer isso, mas com poucos conhecimentos na area fica bastante dificil sair do chão né! Mais uma vez eu lhe agradeço pela ajuda..
Hehehe está certo, tem que tentar mesmo, você queria acertar logo de cara assim é ? rs
Vai me falando onde vc ta enroscando… vou tentando te ajudar.
tchau
você tem um msn/orkut/ ou participa de alguma comunidade pra gnte ir conversando? acho que ficar ruim lotar os comentarios do site aqui.. abração
Eita… mas ai o blog perde o sentido né ?
olá, poderiam passar novamente o link pra versão antiga do php, n estou conseguindo achar, as miniaturas nao estao aparecendo aki.
o php do server é versao 4.4.7.
o link acima so baixa a ultima versão da thumb.
vlws
Wesley, uma nova versão da classe foi disponibilizada e agora a versão do PHP é indiferente, você pode baixar a mais recente versão que funcionará em qualquer versão do PHP. Segue o link para o download.
http://phpthumb.gxdlabs.com/
Para inserir uma miniatura na nova versão:
require_once ‘/caminhodaClasse/ThumbLib.inc.php’;
$thumb = PhpThumbFactory::create(‘imagem.jpg’);
$thumb->resize(100, 100);
$thumb->show();
Dê uma olhada na documentação, lá explica tudo de maneira fácil
http://trac.gxdlabs.com/projects/phpthumb/wiki/Docs/BasicUsage
Abraços,
eai cara tudo bem otimo tutorial prestou rsr. so q deu um pouco de preguiça pra copiar no ctrl+c e crtl+v rsrs . mas ficou legal parabems ..
Rodrigo, obrigado pelo comentário. Não entendi a parte do copiar que você menciona!
Seria mais fácil você ter realizado o download através do link no fim do post.
Até,
opa eai cara tudo bem ei legal seu tutorial e tirei minha duvida sobre o famoso efeito lightbox, hoje em dia esta sendo usado bastante ele, mas eu gostei tambem de seu plano de hospedagem , em breve estarei assinando ele . ok ate mais e otimo tutorial
Legal o código, poderia montar um para remover agora.
Abraços
Vlw, foi prefeito vlw msmo
ola, eu gostei desse novo scripts de fotos, mas por que não aparece na pagina. http://www.musicoetecladistaclovis.com.br/
estou tentando descobrir aqui, preica dar permissão alguma pasta ou arquivo.
Clovis, da uma olhada se não é por causa das tags do php, estão assim: <? e talves seu php só aceite o convencional <?php , outra coisa é olhar a versão do PHP e se está habilitada a bibilioteca GD/GD2 do PHP.
Para saber tudo isso crie um arquivo php com a chamada ao método phpinfo(); que lhe mostrará tudo sobre o que te questionei.
até
rafael, se quiser ver no cpanel eu passo a senha e login, pra vc arrumar pra mim, me ajude, gostei dessa galeria nova que fez, me ajudar. onde esta esse tag que, estou vendo aqui esta tudo certinho
hahahhaa pow Clovis,
que naturalidade vc usou para me pedir isso rs rs
ai caramba, blz … hahahahaha
me passa por email os dados cpanel , manda em rafadinix@gmail.
Mas cara, rs não posso fazer agora agora não to cheio de trampo cara …
abs
tranquilo, Rafael, vc vai me ajudar muito, vou te passar pra vc arrumar, se quiser pode pagar tudo la, vou te passar a senha e login pelo e-mail.
ola rafael, achou problema
Olá Clovis, cara eu trabalho tbm pow… segura um pouquinho aí, assim que eu conseguir ver eu respondo.
Relaxa, vou te ajudar … você precisa ter um pouquinho de paciência só, se vc ficar mandando um comentário
por hora não vai ajudar muito… segura aí um pouquinho, hoje te ajudo ok…
abraços
a galeria que estou gostando e gostei foi essa http://www.clareslab.com.br/gallery
nota dez
Rafael, blz, muito legal seu tutorial, veja o q acontence no meu site, eu apenas copiei os arquivos em meu servidor, n esta aparecendo as imagens e qdo faço o upload da um erro “Warning: move_uploaded_file(fotos/foto1g.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/fatorx2/public_html/webs/nova/upload.php on line 66” pode me dar um help?
Valeu!
Junior, basta dar permissão de gravação no diretório fotos/ . O sistema não está permitindo gravar no diretório, isto está no post. Dê uma lida nas perguntas/comentários do Post ok.
abraços
Aqui vai o link http://www.fatorx2.com.br/webs/nova/
Desculpa cara, mais o post q fala em permissao de garavação o cara aprendeu na marra (rsrsr) e nao fala como posso resolver o problema, pode me explicar??
kas kas kas … tá certo!
vc já utilizou algum FTP Client ? Quando vc clica com o botão direto em cima de um diretório vc pode em propriedades ou permissões (depende do client) alterar as permissoes de leitura/gravação/execução …
Veja esse link:
http://wiki.locaweb.com.br/pt-br/Alterando_a_permiss%C3%A3o_de_pastas_em_Linux
Amigão, ta dificil, alterei as permissoes e nada, deu a mesma msg de erro…o pior q sou leigo na liguagem…tem como vc me ajudar
rafael, consegui fazer o upload e a imagem ir para a pasta fotos, porem na galeria nao visualisa a miniatura, o q pode ser dessa vez?
Pode ser que a biblioteca GD/GD2 do seu PHP esteja desabilitada ou seu PHP é versão 4.
Para saber se o PHP é versão PHP 4, crie um arquivo com o seguinte conteudo:
e execute-o no browser… se for versão 4 o seu PHP, dê uma lida nos comentários deste post.
Rafael, o Upload ta ok, agora so falta as imagens do thumb q nao aparece, o q pode ser?
rafael dá uma olhada neste link onde coloquei a galeria de fotos e me fala o pq do erro http://www.fatorx2.com.br/webs/lb2/index.php valeu! desde já obg.
Rafael, descobri o erro pq nao consigo visualizar as thumbs, é o arquivo thumbnail.inc.php a versao do php do host é a 4, em um post vc da um link para fazer o download, porem qdo desconpacto o arquivo n tem esse arquivo, se vc tiver pode me mandar por email? Obg!!!
Junior, hoje ainda te ajudo segura aí um pouquinho que to trampando agora…
até logo,
OLA, PARCEIRO, PORQUE EU NÃO CONSIGO ENTRAR NA AREA DA ADMINISTRAÇÃO, TEM ALGUMA COISA ERRADA, LOGIN: fotos SENHA: 123456
http://www.dannyarmariosecozinhas.com/galeria/admin.php
Danila,
execute no seu banco de dados a query abaixo:
insert into usuarios (usuario,senha) values (’fotos’,’123456’)
e depois
select * from usuarios;
e certifique-se de que os registro existem.
qualquer coisa me avise;
Isso mesmo Danila, tem que ir no phpPgAdmin em uma base, após criar as tabelas (e base se necessário) siga os
passos contidos no post que mostra como configurar o arquivo includes/config.php onde irá informar o nome da base e demais dados.
tchau
oi Rafael, eu pertubando vc demais, quer entrar no cpanel de controle, te passo a senha pra conmfigurar pra mim, não entra na http://www.dannyarmariosecozinhas.com/galeria/admin.php, te passo a senha do painel de controle
Rafael, precisa dar um permissão em alguns arquivos para entrar na admin, não entra, eu envie os dados pra vc no e-mail para entrar no cpanel e ve que esta certo
Então Danila, como eu te disse no comentário onde você é Clovis que a questão é que o programa foi desenvolvido para o postgresql e não tenho a versão para mysql. Se precisa muito muito que seja exatamente esta galeria e não milhares outras que tem na internet podemos combinar e te passo um orçamento para desenvolver, fora isso o que está disponível é a versão para postgresql. Se você perceber no blog verá que eu sempre tento ajudar ao máximo e na medida do possível e não é o nome ou sexo da pessoa que está pedindo ajuda que irá determinar minha vontade de ajudar, então acho que não há necessidade de você comentar como João, depois como Maria, fazendo a mesma pergunta pois tudo dependerá da minha disponibilidade/tempo.
Abraços
Até logo,
no cpanel aqui tem o postgresql , fiz tudo certinho e nada
ok cara, me manda ai a usuario/senha do cpanel (rafadinix). Mas não fica criando um comentário/pergunta por hora não que não ajuda muito, assim que eu conseguir um tempoinho aqui eu te ajudo.
E ai meu parceiro, sei q seu trampo é puxado mais n me deixe na mao. rsrs fico aguardando…
Junior, o que você precisa é o arquivo thumbnail.inc.php para versão 4 do PHP.
Mandei no seu email.
Testei e ficou direitinho d+
Nelys, poxa cara … obrigado por comentar!!!
Geralmente o pessoal só comenta dúvidas, fica parecendo que nada funcionada rs rs ..
valeu
o meu amigo… muito bom seu post… mandou bem fiz aki deu tudo certo… Vlw funcionou redondo… ABRAços… vlw
Caramba, alguém que utiliza Postgre? Poxa cara gostaria que as demais pessoas fossem assim, quero dizer, postar que funcionou, pq elas só postam as dificuldades e nunca dizem se funcionou ou não!
Abraços
Ola Rafael! Parabéns pelo codigo, foi muito útil pra mim. So q estou com um problema, mando as fotos blezinha, ai nas miniaturas do trumb so fica um x como se a foto nao tivesse sido enviada para o servidor entende? o que pode estar acontecendo?? obrigado
Alexandre, leia os comentários desse post thumbs.
A solução do problema está nos comentários.
E ai Rafael! estou com problemas no thumb, as fotos em mininaturas estao como se nao estivesse no servidor, fica um x nas fotos, o que pode estar acontecendo?
Alexandre, ao menos passe o url do sistema, né….
até
Eu fiz o seguinte com o problema da thumb!
Não estava funcionando, so aparecia o x nos
lugares das fotos, ai peguei em outro post que
vc fez CRIAR THUMB ai substitui o arquivo thumb.php e funfo bleza!Valeu, mto bom seus post! parabens e continue assim, sempre ajudando as pessoas…abraços
Copie e cole entre e e salve como (teste.php) não coloque dentro da pasta fotos. coloque a permição ( 777 ) que ele vai funcionar. não mude o nome só se vc souber mecher na estrutura. ele deve estar uma bagunça é porque eu colei ele.
<?php
if ($_REQUEST['act']==1){
unlink("fotos/".$_REQUEST['f']);
echo $_REQUEST['f']." eliminado com sucesso.”;
}
$pasta=opendir(“fotos”);
while(($ficheiro=readdir($pasta))!=false){
if($ficheiro”.” && $ficheiro”..”){
echo ‘[x] –
‘.$ficheiro.’‘;
}
}
?>
Tem como colocar mais de uma galeria sem dar problema. eu ainda estou testando porque esta dando problema. caso eu consiga eu passo para vcs…
Nelys, tem como colocar quantas galerias quiser;
no servidor eu abri 02 pastas e coloquei uma galeria em cada e esta dando pau no senha eu coloquei uma senha diferente para cada galeria e quando eu digito a senha ela libera as duas galerias para upload. e na parte de enviar em uma ela envia e na outra não. eu ainda estou estudando este problema. caso alguem tenha resolvido este problema pode comentar no blog. eu coloque uma parte que lista e apaga as fotos. ele esta no seguinte end (www.htw.freetzi.com)
Nelys, abre o arquivo login.php em uma das galerias e troca a linha:
$_SESSION[‘logado’]
para
$_SESSION[‘pichorra’]
hahahah ou qualquer outro nome que quiser…
O que acontece é que as duas galerias estão criando a mesma sessão [‘logado’] altere od ID da sessão em uma delas [‘logado2’];
flw
Obrigado. pela dica sobre a galeria. a parte do site que apaga ficou legal com a listagem e para apagar os arq..
Ai pessoal a galeria esta sendo montada. tudo colhido deste Blog. valeu a pena. eu ainda coloquei um link para listar e apagar as imagens e o codigo esta neste mesmo Blog.( http://htw.freetzi.com ) e a senha é ( nelys )
Fala Rafael Clares, tava velho que procurava um sistema tão detalhado como esse, parabens, bom, minha dúvida pode ser bem de iniciante e realmente é… Pois bem li todo a publicação e descompactei o arquivo direto na minha pasta do servidor local, no seguinte endereço: C:Arquivos de programaswampwwwlb2 , pois bem o que acontece é que não funciona nada e, relação ao login e muito menos o de enviar as imagens, outra coisa que constatei é que no meu enviar, estão aparecendo tanto o local do login como o local do enviar, “erro” ja que so posso enviar se tiver logado… enfim essas são minhas dúvidas, e ninguem comentou a respeito… Desculpe se parece ser simples mais realmente sou iniciante… Obrigado!
Tiago, não tive nenhuma ocorrência deste problema.
Bem, veja se as tags curtas do seu php estão ativadas.
Se não me engano no código está
<?
, se estiver mude para<?php
.Até,
Rafael, cara por isso seu blog ja esta nos meus favoritos… hehehe… Cara uso o Wampserv a algum tempo e sempre aparecia esses problemas, e realmente a solução que você deu funcionou perfeitamente, vou pesquisar agora como ativar as tags curtas do PHP. Estou no aguardo de mais post, abraço cara.
Parabéns pelo post! Admiro sua paciência com as pessoas que não leem e querem tudo pronto. Era exatamente o que precisava, quando colocar a minha galeria lá, te mando o link 😉
Rafael Clares, estive lendo os post, e descobri que o problema que estou tendo é a thumbnail.inc.php para a versao do PHP do meu host.
porem, entrei no link disponibilizado acima, e já não tem mais o arquivo. Você poderia manda-lo para mim ? obrigado!
Eidi, peço por favor que procure primeiro nos comentários, deve haver um link lá.
Ou clique aqui no tio google… até logo.
acho que você nao leu o que escrevi, mas mesmo assim obrigado.
valeu pela atenção brother.
Alguém pode me enviar o arquivo ‘thumbnail.inc.php’ do PHP 4 ? Obrigado.
legal vou tentar
bem loko testando
ola amigo.. tudo bem??? vi este poste seu e gostaria de uma ajuda. Ta rodando tudo certim aqui, gostaria de saber como faço para deletar essas fotos? e colocar uma descrição nas mesmas.. tem como me ajudar??
aguardo
Bruno, não tem essa opção de deletar fotos…
Mas o método seria :
@ unlink(“caminho/nomedaimagem.extensao”);
ex:
@ unlink(“fotos/foo.jpg”);
Dái você pode pesquisar no google ou no php.net/unlink como implementar o método.
Eu não o fiz/farei para este exemplo.
abs
Muito bom, parabéns!
Eai Amigo, gostaria de saber se ja conseguiram implementar paginação na galeria,na parte onde mostra as fotos… estou procurando por isso mas ainda não consegui..
abraços!
Alberto, dê uma procurada no blog, tem um post sobre paginação com Jscript, é bem simples… flw
Obrigado Rafael, eu já li seu post sobre paginação, mas achei que fosse somente para textos e tabelas, mas então,como faço para implementar na sua galeria?
abração!!
Alberto,
veja:
http://clareslab.com.br/newscg/post.php?pageid=18
download:
http://clareslab.com.br/learn/galerias/customgallery.rar
Rafael, ótimo conteudo, ótimo mesmo. tenho uma dúdida que deve se der a mesma de muita gente, at me desculpe sei que deve de ser uma pergunta meio tola, mas como faço para dar permissão para um diretório neste caso. Pois acho pra mim este deve ser o único problema, eu uso o easyphp como localhoost. Eu arrumei as tags que estavam <? para <?php e mesmo assim quando vou enviar uma imagem de 6b ele não me deixa dizendo que que é maior do que o tamanho permitido, sendo que no código expecifica 1000 kb. Pode me ajudar?
Luis, obrigado pelo comentário. Bem, preciso de mais informação para lhe ajudar.
Dá uma mensagem de erro ? Qual mensagem ?
Qual Versão está utilizando ?
– Localmente não tem muito esse lance de permissão de diretório, não deve ser isso.
– Pode ser que o seu arquivo upload esteja com uma configuração diferente do esperado por você.
– Defina no arquivo Upload na linha:
$tamanhoMax = 10000000;
Qualquer dúvida post com detalhes ok. até
Rafael boa noite, puxa como posso te explicar, bom na verdade não sei que versão do php eu uso pois minha máquina ta com programas muito pesados at por causa da faculdade então sou obrigado a usar o dreamweaver mx2004. bom relação a o upload blz ele, com esta nova extenção recebe o arquivo, e o arquivo vai para a pasta, porem na galeria não vizualizo as imagens. Olha amensagem que aparece: Deprecated: Function eregi() is deprecated in C:Arquivos de programasEasyPHP-5.3.1wwwupload_lightboxlb2upload.php on line 58. Eu estava vendo em posts anteriores algom com o ThumbLib.inc.php, tem a ver com isto e se for como consigo modificar? Aproposito cara obrigado mesmo, pelo seu trabalho são pessoas como vc que ajudam aqueles como eu que ou por não terem tempo de fazer um curso ou dinheiro tentam aprender uma liguagem sozinhos.
Te mandei por email um arquivo upload.php modificado, teste-o, veja se dá algum erro e me retorne. até logo
obs: não retorne no email, retorne no blog, assim ajudamos outras pessoas. abs
Cara esquece o que eu postei ja vi o que era o erro, era um p faltando no <?php rsrsrs cara vau mesmo, pelo seu trabalho muito legal… Agora vou ver os post anteriores pois parece que vi que um cara tinha adaptado sistema de exclusão de imagens neste seu sistema…
é sim, tem um brother ae que adaptou … mas isso também existe no blog em outras versões de uma olhada:
http://clares.wordpress.com/2009/09/28/galeria-de-fotos-admin-lightbox-php-postgresql/
abs
A sim Rafael, eu testei o sistema no FTP, e ele funcionou com relação ao upload e quando a ele diminuir a imagem e almenta-la como no laght box, porem ele não aparece o efeito do lightbox sabe aquele efeito bonito de redimensionamento e mostrano número de fotos. Como posso resolver?
Luis, me desculpe até me esforcei para tentar imaginar seu problema, consegue resumir a dificuldade para começarmos a tentar resolver?
Sei lá, algo do tipo “a imagem não aparece”, “o arquivo não é enviado” …etc.
abraços
Rafael, eu que peço desculpas na verdade eu não sei oque aconteceu mas as imagens agora estão aprecendo rsrrs… cara obrigado mesmo pelo programa.
Muito bom, está funcionando perfeitamente. Gostaria de saber se
existe alguma maneira de deletar as imagens nesse sistema sem o uso de BD?
Leonardo, a Galeria foi atualizada com esta funcionalidade, baixe-a novamente. flw
ola Rafael, adorei a galeria, porem eu preciso que os visitantes do meu site façam o upload sem precisar fazer login, e que somente eu tenha a opção de excluir as fotos, poderia me ajudar ??, desde ja agradeço
João aí já cai na customização cara… antes não tinha o “deletar foto” daí pediram pediram e eu coloquei mas se eu for fazer o que cada um quer fica ruim porque eu não tenho tempo. A idéía aí é você ter uma direção para alterar.
Mas segue ai uma dica, para fazer o que vc quer vai precisar alterar apenas o arquivo lerdir.php entre as linhas 32 e 33. só. abraços
Amigo, li o seu toturial e fui fazendo seguindo os passos, mais depois que vi que ja tinha ele disponivel para download….rsrs
Mas vamos lá, eu não estou conseguindo colocar ele em um site que estou tentando fazer para mim, essa nao é a minha área, minha area é gráfica, estou me arriscando, quando fiz o download e extrai os arquivos , gostaria de saber onde coloca-los, como fazer para rodar, como ver como esta funcionando, me ajuda ai….estou começan
Olá, o post é justamente sobre como configurar o programa que está disponível para download, mas o interessado deve ter noções de programação/php. Siga as instruções e post as dúvidas não dá para escrever um novo post sobre como configurar. até logo
Amigão obrigado pela resposta, concordo com vc que não dá para poder fazer um outro post, pois temos muito a fazer. Mas gostaria de que vc desse uma olhada nesse site, e pudesse tirar uma ideia de como me ajudar, pois consegui na marra fazer o seu post funcionar ficou dez…porem esta um pouco diferente do que eu preciso, por gentileza…entra neste site e ve como é feito a incersao das fotos pelo admim… http://mgimoveisrj.net/index.php……cada foto é postada pelo admim podendo colocar um texto.
Então brother… não sei pq “fez funcionar na marra”, está tudo pronto é só descompactar e usar!
Acontece que para colocar o texto temos que ter um local para gravar esse texto, banco de dados, XML, etc…
Enviar a foto e depois exibir tudo que tem num diretório é simples… mas de onde tirar esse texto para cada foto ? entende?
Nesse caso você precisa de banco de dados, não dá para fazer assim, até daria para inventar algo com XML sei lá, mas não é o caso desse post, sacou ?
Tive a idéoa de criar 2 post sobre fotos e a idéia foi :
– Criar uma galeria de fotos s/ banco de dados
– Criar uma galeria de fotos c/ banco de dados
Mas você escolheu sem banco, pq não dá para colocar uma que esteja entre as 2 “com e sem banco”….
Porque não utiliza uma das que estão disponíveis com banco de dados ? Daí fica mais fácil de implementar …
Até logo
Boa noite, Rafael, tenho lido seus posts sobre o Lightbox, e baixei algumas das galerias as quais você disponibilizou.
primeiramente quero agradecer por postar, e dizer que todas que baixei e testei funcionaram perfeitamente.
só o seguinte, como eu incluo na classe upload, para redimensionar a foto para um tamanho especifico, por exemplo quando eu estiver anexando a foto pelo admin ele automaticamente redimenciona ela para que fiquem todas do mesmo tamanho?.
desde-já obrigado.
Gabriel, é só ler com calma esse post http://clares.wordpress.com/2008/02/13/gerando-miniaturas-de-imagens-c-php/
Ai tem o que você quer, veja a parte que salva o arquivo em disco e adapte ao arquivo de upload da galeria.
abraços
ok.. vlw Rafael.. lí lá e consegui fazer cetinho..
muito obrigado.
mtuuu bom cara, tu é fera !
Olá Rafael, muito obrigado pelo post,
revirei a web e não encontrei script de galeria tão simples,
funcional e acessível quanto esta, e vou indicar seu blog para muitos amigos com certeza.
Mas gostaria de uma ajuda para solucionar um problema, simples eu imagino,
que surgiu quando eu coloquei os arquivos em meu servidor..
Quando carrego as imagens e clico em enviar arquivos a página não termina de carregar
e o navegador exibe um erro de página temporariamente fora dor ar, você tem idéia do que pode ter acontecido?
Ah, jah permiti alterações no diretório Fotos, teria mais alguma pasta ou arquivo além deste para mudar a permissão?
Obrigado desde já. =D
Olá Jonathan, cara isso não é comum, deve haver aí no seu servidor alguma restrição quanto o timeout para upload.
Coloca essa linha no início do código nesse arquivo que tá parando, set_time_limit(0);
Irá retirar o limite de tempo de execução, mas isso é só uma tentativa. Qual galeria está usando ?
até
Boa tarde, Rafael. Em primeiro lugar, obrigado por esse excelente código, funcionou legal.
Porém, também estou tendo problemas com o “delete”. Vc disse que precisamos editar na linha 32 / 33 do lerdir.php, correto?
Como sou leigo, estou tendo dificuldades. Colocaríamos um comando de unlink nessa parte do código?
“onclick=”drop(‘$dir/{$file}’)”>n”;”
Como ficaria, com unlink?
Att,
Reynaldo
Reynaldo, mas esse código já foi atualizado, já possui o comando para apagar!
abraços
Olá Rafael,
Esta galeria é a que vc usou no seu script webimóveis quando visualiza detalhes do imóvel ?
Parabéns por compartilhar seus conhecimentos,
Um abraço,
Milton
Olá Milton, na verdade é o mesmo efeito, o LightBox!
Abraços
Ola Rafael peguei o codigo porem não conseguir roda-lo 100% na parte lerdir estou apanhando.
Undefined variable: dir in C:Arquivos de programasEasyPHP-5.3.5.0wwwlightindex.php
# 1 Diretorio que guardar as fotos
$dir = “fotos”;
Variables in local scope (#1)
$dir =
Undefined
$file =
Undefined
Ele não consegue ler $dir de forma alguma fica dando como Undefined e quando eu dou upload das fotos ele joga lá na fotos OH My God a Ineed help.
$dir = “fotos”;
# Extensoes permitidas na exibicao da galeria
$exts = array(‘jpg’,’png’,’jpeg’,’gif’,’bmp’);
if (is_dir($dir)) {
if ($d = opendir($dir))
{
while (($file = readdir($d)) !== false)
{
if (filetype($dir.’/’.$file) == ‘file’)
{
# Recupera a extensao do arquivo
$extensao = explode(“.”, $file);
for($i=0; $i<=count($exts)-1; $i++)
{
Se puder me ajuda ai manos estou precisando disso. rs Valeu
# Verifica se a extensa é permita (esta no array exts)
if($extensao[1] == $exts[$i])
{
# Criando o link da imagem pra o lightbox e exibindo a thumb
echo "“;
echo ““;
}
} # end for
} # filetype
} # while
closedir($d); // encerra a leitura do diretorio
} # end opendir
}
?>
Cara, estranho que não tem nenhum comentário mencionando este problema…
Será que quando você deu permissão de gravação você não tirou a permissão de leitura?
Dá um conferida nas permissões do diretório e me diz como está.
até logo,
Estava procurando uma maneira de fazer um galeria de fotos. Achei seu trabalho muito bom, parabens. Entaum voltando ao aassunto quando entro na index.php naum aparece as fotos eu consigo fazer upload, dei uma midificada para funcionar e criei um sistema de login diferente naumestou usando oq vooc disponibilizou. Porém gostaria de uma ajuda para poderfazer com que apareça as fotos. Agradeço desde já. Obrigado o continue com seu trabalho pois é muito bom.
Juan, infelizmente devido a falta de tempo não posso ajudar com costumizações. Se for um erro no script que disponibilizei basta dizer o erro que irei ajuda-lo.
Caro Rafael, primeiramente quero dar-lhe os Parabéns pelo código. A primeira vez que instalei deu os erros citados pelos companheiros acima, que foi a não visualização das miniaturas das fotos bem como a impossibilidade de deletá-las. Vasculhei respostas e por fim consegui resolvê-las. Atualizei o PHP no servidor da versão 4 para 5, aí apareceram as miniaturas, mas ainda sem poder deletar as fotos. Fuçei o código e vi que para deletar as fotos também está ativo, só que “meio” escondido. Na página index.php, alterei a linha 46 por e upei. Feito o upload do index.php, acessando, logando, e upando as fotos, cliquei em visualizar a galeria e lá em baixo estava o botão para confrmar a exclusão da foto selecionada no “X”. Porém, como todo iniciante em PHP estou sofrendo um pouco para personalizar o fundo da página, pois gostaria de personlizá-la. Creio que a mudança seja no galeria.css, mas não consegui configurar, caso seja possível postar a resposta aqui ou enviar para o e-mail [email protected], ficaria muito agradecido. O nome da figura que gostaria de colocar como fundo da página é “fundo.jpg”. Abraços e aguardo respostas.
Juares, infelizmente não tenho como dar auxilio em customizações.
Olá Rafael venho agradeçer por existir pessoas como você compartilha e além disso explica, ensina, para que estigue mais e mais gente entrar nessa área tão genial! =) Parabens!…
è o seguinte aqui ta tudo certo! o unico problema que estou tendo é:
estou conseguindo cadastrar fotos com mais pixels de largura e altura do que o $larguraMax
$alturaMax, não sei porque isso…
se puder ajudar agradeço desde já! abração!
Ricardo, obrigado pelo comentário!
Tentei simular o problema aqui e não consegui, se estiver hospedado na internet o script, me passa o link para eu simular e tentar te ajudar!
Abraços
Outra coisa grande Rafael, estou quebrando a cabeça aki, pois tou querendo implementar um efeito, e assim preciso colocar antes da IMG exemplo AQUI A IMG onde no Ledir.php exatamente eu coloco… se puder da essa força também ficarei eternamente grato, se não for possivel tranquilo vou tentar e tenntar ate conseguir aki =) suahha.. abraçao!
Customizações, como eu comento no post, não tenho tempo em ajudar, infelizmente!
Boa sorte!
de boa ta sussegado =), já conseguir fazer oq eu queria! vlw pela força! abração!
Parabens pelo tuto muito bom , teria como fazer uma paginação nesse codigo?? tentei e nao deu certo!!!
Leo, cara,por paginação JS é a única forma de fazer!
http://clares.wordpress.com/2010/05/16/paginacao-javascript/
Abs
Vlw Rafa deu certo aqui nao sabia dessa paginação em js muito bom…
mas ocorre um problema na galeria se vc souber corrigir ela exibe exatamente as imagnes com paginação,
mas nao lado a lado ela pula uma linha a cada imagem, o que acontece é no codigo onde exibe a foto colocando codigodaimagem ele cria uma linha dessa para cada imagem fazendo pular pra baixo tentei mexer mas nao vai tbm rsrs inclusive pensei que no js dava pra mudar mas tbm nao muda.
Vlw abs
Dá sim man, eu tenho essa galeria com JS Pagin… mandei no seu email.
Abs
Ah, mas não me mande dúvidas por email que não respondo!
VLW,
fmz tranquilo t+!
Deu o seguinte erro!!!
PHP Warning: move_uploaded_file(fotos/pic3.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in E:homefestasebal1Webdelete_colorboxupload.php on line 75
PHP Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move ‘C:UsersTEMPUO~1.013AppDataLocalTempphp9404.tmp’ to ‘fotos/pic3.jpg’ in E:homefestasebal1Webdelete_colorboxupload.php on line 75
Cara isso não é um erro, é uma mensagem e para reparar basta ler a mensagem.
Essa mensagem está dizendo que a pasta “fotos” não tem permissão de gravação.
Se for linux basta mudar pelo FTP mesmo, ela está como “somente leitura” e não consegue gravar a imagem!
valeu cara vou tentar aki de novo!
eu estou usando o FileZila as opsoes ja estao liberadas mais imfelismente nao deu.
mais obrigado!!
ei cara como por titulo nas imagens do arquivo lerdir?
Desde ja grato!!
Não dá Julio, porque ele apenas insere a imagem, nesse caso teria que utilizar BD, vejas as outras galerias, é mais fácil de você customizar isso!
abs
Muito boa essa sua galeria…
Mas estou com o seguinte problema, tenho umas 40 fotos numa página, mas só que o efeito lightbox só funciona depois que a página é totalmente carregada… se eu clicar antes disso ele abre a foto sem efeito nenhum… já atualizei o phpThumb para o mais recente e nada…
Crie um loader na página de modo que só seja possível clicar após carregar. Veja em :
http://clares.wordpress.com/2008/02/13/preload-do-google/
No arquivo “thumbnail.inc.php” que baixei aki no blog tem umas opções interessantes!!
# Creates Apple-style reflection under image, optionally adding a border to main image
>Cria estilo Apple reflexão sob imagem, opcionalmente adicionando uma borda a imagem principal
#Inverts working image, used by reflection function
>Inverte imagem de trabalho, usada pela função reflexão
#Converts hexidecimal color value to rgb values and returns as array/string
>Converte valor de cor hexadecimal para valores rgb e retorna como uma matriz / string
#Reads selected exif meta data from jpg images and populates $this->imageMeta with appropriate values if found
>Lê os dados exif meta selecionados a partir de imagens jpg e preenche $ this-> imageMeta com valores adequados, se for encontrado
#Rotates image either 90 degrees clockwise or counter-clockwise
>Gira a imagem ou 90 graus no sentido horário ou anti-horário
#Saves image as $name (can include file path), with quality of # percent if file is a jpeg
>Salva imagem como $ name (pode incluir o caminho do arquivo), com qualidade de # por cento se o arquivo é um jpeg
Tem como colocar essas funções para rodar?
pois o nosso arquivo aki esta programado para fincionar como um simples gerador de thumb mais ele proprio oferece varias opsoes!!
eu não manjo de php mais se isso funcionar ia ser d+!!!
Deis de Já Grato
Vlw Rafael
Olá Julio, dá sim cara, leia a doc da classe em : https://github.com/masterexploder/PHPThumb/wiki/Basic-Usage
Daí basta alterar o thumb.php de forma que realize os efeitos desejados, no exemplo aí que você tem está apenas redimensionando.
Lembrando que dúvidas sobre a classe não serão esclarecidas aqui.
Abraços
So para comentar para o pessual eu coloque um tilulo sem usar BD mais
eu utilisei o nome que se da a imagem como titulo EX: Foto.jpg
usando a finção $file como um titulo
ficou asim
title=”$file”
Talvez seja uma opsao a mais!!
obrigado
Ótimo post Rafael… realmente excelente e funcional.
vou deixar aqui meu testemunho: lí todo o post com atenção sem pular linhas e consegui fazer rodar perfeito… 😀
Valew!!!
Rafael;; irmão como chego ao acesso, do footter.. tipo nos botoes para excluir as fotos! o SIM E O NÃO!.. onde acho essa parte? não encontro de jeito algum espero respostas abração!
hehehehe tá no index.php nas linhas
function drop(url)
{
document.getElementById(“opt”).innerHTML = “Deseja apagar o arquivo “”+url+”” ?
sim n�o”
document.getElementById(“opt”).style.display = ‘block’;
}
function cancel()
{
document.getElementById(“opt”).style.display = ‘none’;
}
function udrop(url)
{
window.location.href = ‘delfile.php?file=’+url;
}
ola rafael sou elquis e gostaria de saber se tem como postar um site com painel de admin geral e com uma galeria de criar varios album de acordo com forma de posta?
Rafael,
Como mostrar apenas o último registro (foto, titulo, descricao) na inicial?
Abração!!!
Alguem sabe como aparecer apenas o ultimo post em uma página?
No momento aparece todos os posts, como limitar para apenas o ultimo?
Grato!!
Post? Você não está perguntando no local errado? Esse exemplo possui apenas fotos!
Então vou explicar melhor, como aparecer apenas a ultima galeria na index…
Obridao!
Rapaz, você vai me desculpar mas ainda acho que está comentando o post errado.
Nesse post não tem galerias, apenas uma geral com todas as fotos!
Dê uma olhada aí porque está comentando no post incorreto e fica difícil eu te ajudar sem saber que sistema você baixou!
abraço
Aí mano, achei esse site por acaso, muito bom mesmo Nunca tire este site do ar pelo amor de Deus. =)
Clebson, valeu irmão! Abraço
Realemente, estava no post errado. Me refiro a esta http://clares.wordpress.com/2009/09/28/galeria-de-fotos-admin-lightbox-php-postgresql/ mas a minha é utilizando mysql. Como Aparecer apenas a ultima galeria na inicial?
Abraços!!!
Ah sim, agora faz sentido hehehehe
Na linha:
$body = $news->executeSelectToArray(“id|titulo|materia|datapublic”,”1 = 1 order by id desc”);
altere para:
$body = $news->executeSelectToArray(“id|titulo|materia|datapublic”,”1 = 1 order by id desc LIMIT 0,1″);
Ou seja, informar o limit no fim da query
flw
Esse script foi as duas maos da roda, tou fazendo umas modificações, vai ficar do jeito que tava imaginando, mas a base está perfeita, e eu nem estava procurando por upload. Valeu Rafael!
Cara, esse script é muito bom, é simples, mas muito funcional, não entendo praticamente nada de PHP, mas se tu puder me ajudar… Vc mandou essa galeria com JSPagin para o Leonardo por email, se puder enviar para mim, agradeço…
Flavio, acho que é mesma disponível para download. vou mandar no seu email. Ah, não respondo dúvidas por email hein…abs
Nossa sua galeria é muito boa, gostei muito
Olá Rafael, estou trabalhando em um projeto que usa imagens etc e casualmente encontrei seu blog e acabei encontrando uma alternativa muito interessante para o que estou precisando… ocorre que, li essa página de ponta a ponta e não encontrei ninguém com o mesmo problema então vamos lá… fiz os testes no meu localhost e não funciona nada.. consigo ver as fotos na index, consigo logar e até abrir o form de upload, porém daí para frente nada acontece… está tudo configurado certinho no meu easyphp, então resolvi testar no meu servidor web, lá tudo funciona perfeitamente.. poderia me dar uma luz? lembrando mais uma vez que fiz tudo que foi comentado nos posts acima, está “on” para short tag, dei permissão na pasta mas parece que não vai!
Fer, coloca no inicio dos arquivos .php a linha
error_reporting( E_ALL );
Assim vc consegue exibir todos os erros e podemos descubrir o que tá pegando… é alguma coisa no seu PHP ou apache!
abs, fico no aguardo!
Eu preciso de uma ajuda, instalei o tema KingSize no meu site, e estou aqui configurando, pois bem, criei um Portfolio chamado vídeos, verifiquei que onde insere o caminho para aparecer a MINIATURA, já fiz isso porém quando abro o site, não aparece a imagem, não sei o que fazer, já tentei de tudo http://www.ministeriolevitas.com.br/site/?page_id=73 este é o link, me ajudem por favor
Mizael, qual a versao do seu PHP ? Aproveite para ler os comentários, existem muitas resoluções de problema nos comentários!
Caraaa… tentei usar no meu site mas há alguns problemas.
Antes vou dizer algo:
1) já havia algumas imagens na pasta de destino;
2)As permições da pasta estão todas ok.
O que ocorre:
1) Não aparece as miniaturas das imagens que já estão na pasta de destino (fica aqueles quadrinho de imagem inexistente) e qnd clico fala q o arquivo da imagem não foi encontrado no servidor;
2) Ao tentar efetuar o upload de alguma imagem, não dá erro, porém a imagem não vai para o destino também, e também não fala que deu certo
Se puder me ajudar por favor, preciso pra ontem!!!.. hasuahsuas
PS.: no arquivo “lerdir.php”, linha 7 -if ($d = opendir($dir))- o netbeans mostra a seguinte mensagem: “Atribuição possivelmente acidental, atribuições em condições devem ser evitadas”
Hugo você precisa rever os diretórios, no lerdir.php qual o diretório que você configurou?
$dir = “fotos”;
a linha:
$d = opendir($dir)
apenas atribui à var $d o handler do opendir não há nenhum problema quanto a isso!
Esse script é muito simples e não tem o que estar errado a não ser o diretório mesmo!
Veja se o nome da pasta está em letras maísculas/minusculas, isso faz diferença no Linux!
A única coisa que pode causar erro é mesmo o diretório incorreto,
Ah tem outra coisa, no lerdir.php está com short_tags
<?
altere para
<?php
em todos os arquivos
Boa tarde, acabei de acessar seu blog e ver este post muito bacana, parabéns
aqui rodou legal, contudo, estou tentando e não estou conseguindo fazer com que o sistema pegue o id do usuário e exiba boas vindas… e com este mesmo id criar um diretório e armazenar as fotos dele…
help me!
Poxa cara, o conteúdo todo do blog foi escrito justamente com intuito de mostrar o caminho de como fazer as coisas, mostrar o básico e a partir disso fazer com que o visitante se interesse e pesquise conteúdos na internet, principalmente documentação a fim de desenvolver a partir do exemplo, algo legal;.
Acontece que muita gente me pede costumizações e não é esse o intuito do blog, não tenho como ficar orientando a todos em relação a cada passo que se deve serguir até desenvolver o sistema desejado.
O ideal é que se saiba separar o que se procura para efetuar uma pesquisa e conseguir realizar o desenvolvimento. NO seu caso, a busca no google seria:
– criar diretórios com PHP
– exibir boas vindas PHP
E por aí vai, lamento não poder ajudar na costumização, mas só consigo tempo para tirar as dúvidas sobre o conteúdo do post, infelizmente!
Boa sorte!
Cara, senssacional seu post! Eu fiquei um tempo paradão trabalhando com outras coisas e acabei me desatualizando muito… tenho que criar um site em breve e essa galeria tua aí vai servir demaaaaaiss…. parabéns pelo trabalho!
Parabéns pelo seu script.
Estou com problema em deletar as fotos, clico no x e não acontece nada o que poderia ser?
Obs. a pasta fotos esta 777 no servidor.
Ehehehe Paulo, quando você clica no X aparece no rodapé a confirmação para excluir… rapaz essa galeria aí é ruim demais hahuahauha
Baixa a http://clares.wordpress.com/2009/09/28/galeria-de-fotos-admin-lightbox-php-postgresql/
Bom dia grande Rafael
Tem como colocar as galerias em 3 colunas na index ?
Rogério, tem sim pow mas tem que entender um pouco aí de PHP e HTML para alterar, infelizmente, como dito no post, não tenho tempo de ajudar em customizações! abs
o que muda quando vai usar esse script com o Mysql?
obrigado bom post.
Só muda o banco mesmo!
Rafael, como posso fazer uma legenda?
Gabriel, nesse exemplo não rola porque as imagens são listadas direto da pasta. Nesse caso você teria que usar outra galeria com banco de dados, de uma pesquisada no blog, existem outras galerias que você pode adapta-las;
Rafael, no post vc cita que seria facil colocar legenda.
há algum segmento (n precisaria explicar detalhadamente, só umas coordenadas de como seria)?
ja te agradeço pela força…
Gabriel, no post eu digo que é possível mas que é necessário armazenar em algum “local”, neste caso, me refiro a um banco de dados!
As coordenadas são:
– é preciso criar um banco, tabelas, alterar o script para armazenar as legendas.
Agora, ensinar a fazer isso não é o propósito do post.
Rafael, to com um problema, testei o script no localhost e no servidor da uol e ambos funcionam perfeitamente, só que quando vou usar ele no servidor do terra, não consigo ver os botões de excluir as imagens, e quando vou logar pra enviar alguma imagem, eu envio e simpleste a pagina atualiza e não envia nada. Ja alterei as permissões de leitura e escrita e a versão do php é compativel com o thumbnail, oq posso fazer?
Poxa Caio, já teve algumas pessoas se queixando das configurações desse host; Ao que me parece é alguma coisa no PHP do host.
Passa o link para eu ver.
Abraços
Opa rafael, o link é http://www.viroi.com.br/cosmeticos/enviar.php a senha é 1234
Tá estranho mesmo!
O servidor é linux ou windows ? Se for windows você não consegue alterar as permissões pelo Client FTP, só pelo plesk (ou painel de admin do host).
Se for linux, tente dar chomd 777 (permissão de leitura, escrita, gravação). Outra coisa estranha é o fato da sessão não estar sendo salva após enviar o arquivo;
verifique também se nada foi alterado no programa em relação à isso, se for o caso, baixe novamente o programa original e coloque no seu host em outra pasta para testar!
abs
Fala Rafael, fiz todos os procedimentos e nada deu certo, inclusive baixei novamente e tentei testar.. mas não deu certo, você pode ver o que está acontecendo se eu te passasr o log e a senha por email?
Sem chance amigo, não estou conseguindo nem ver os meus FTP’s aqui, olha o problema no sistema não é mas ao mesmo tempo não estou podendo avaliar servidores no momento. Tente outro host ou algo parecido! Desculpe não poder ajudar mas o script está normal
Obrigado pela ajuda.
Vc pode ver q eu baixei um zerado e testei neste link: http://viroi.com.br/teste/index.php
O servidor é Windows, e eu alterei todas as permissões e nada, desculpa o SPAM é que eu to meio lerdo hoje. rs
Opa, Rafael, pode me ajudar cara? Vc apagou meus comentários 🙁
Cara, não foi nada apagado, está tudo pendente ainda, os seus e mais uns 400 comentários, o lance é que não tenho tempo de responder em tempo real. Assim conforme arrumo tempo vou respondendo as mais antigas. E quando é assim como os seus comentários, 5 comentários por hora, fica mais difícil ainda. De toda forma não se preocupe, assim que eu conseguir irei te ajudar.
Boa noite Rafael
Instalei o script e funcionou tudo perfeitamente mas mesmo baixando o arquivo novo não consigo deletar as fotos. Clico sobre o “X” mas nada acontece, li atentamente o post inteiro e não resolvi. Pode me auxiliar? Obrigado
Daubert, você deu permissão de gravação na pasta de fotos?
Boa tarde Rafael. Obrigado pela resposta. Sim, a permissão foi concedida, mas encontrei o que impedia, na linha 32 do arquivo lerdir.php está (…) “drop(‘$dir/{$file}’)”>n”; e troquei por “udrop(‘$dir/{$file}’)”>n”; . Mesmo assim obrigado.
Li todo o seu post mas não estou conseguindo deletar as fotos. procurei na linha 32 da lerdir.php e não tem mais essa linha de codigo. poderia me ajudar?
Ta ok já.
Tente baixar novamente o script, talvez tenha acontecido algo no código, pois testei aqui e está removendo.;
Veja também se a pasta tem permissão de gravação
Caracas meu, muito irado, gostei muito, muito obrigado.
Aqui, tem como exibir as imagens na galeria por ordem de data, ao invés de ordem alfabética?
Abraços e parabéns.
Conrado, dá uma lida nesse link http://stackoverflow.com/questions/2667065/sort-files-by-date-in-php
Daí tenta alterar o arquivo lerdir.php
Farei isto e te aviso aqui… mais uma vez, muito obrigado.
Conrado, você conseguiu organizar a galeria por data de envio?? Estou tentando editar o .php, mas não consegui de forma alguma. No aguardo, amigo… abraço!
Show. sempre uso. vlw
o problema aqui e que nao deleta as fotos, alguma solução?
rsrsrs cara vc tem que me passar o link, não vou procurar lá né? hahahahaha
filho esse teu negocio ai é excelente mas ficaria perfeito se já listasse em ordem alfabética.
Rafael, otimo tópico, mas tenho um dúvida, tenho como definir numero de previws no thumb, tipo quebrar por pagina de thumb,abraços
Samuel, o ideal seria você criar uma paginação mas como este script lê o diretório diretamente, creio que seja bem complicado fazer isso.
Talvez, para você seja ideal a outra galeria com banco de dados e paginação.
http://blog.clares.com.br/galeria-de-fotos-free-php-mysql-upload-multiplo-jquery/
Bom dia Rafael, muito legal essa galeria, funcionou perfeitamente….
só tenho uma pequena duvida, modifiquei para fazer uploand mutiplo mas só está enviando 20 imagens de cada vez… preciso que ela envie umas 200 imagens…. pode mim ajudar com isso?
Obrigado!!
Edcris, já existe um script que possui o upload múltiplo.
http://blog.clares.com.br/galeria-de-fotos-free-php-mysql-upload-multiplo-jquery/
Boa Noite Rafael, essa galeria é perfeita, só que quando o efeito só funciona dps que todas as imagens do algum carregam….
abraço…
É sim, basta dar uma alteradinha, né?
Só colocar aí um “carregando….” na página ou algo do tipo.
Ou então, atualizar a versão do fancybox, talvez mudar de fancy para lightbox.
Bom, o efeito é no onload, você pode colocar menos fotos ou testar outros “lightboxers”.
Sinceramente, acho que um preload na página seria legal…
Você precisa ver também as limitações de seu servidor, olhe depois no admin/album.php se não tem nenhum limite setado no jscript do uploadfy
De uma procurada lá por sizeLimit ou limitSize, algo assim, no admin/album.php;/
Rafael , tenho como inserir essa galeria através de iFrame no meu site em html5 e CSS3?
Robert, tem sim, claro!
Rafael estou tentando ordenar por data de envio colocando a seguinte linha de comando no lerdir.php:
$resultado[strtolower($file)] =
array(date(‘YmdHis’,filemtime($dir.$file)),$file);
rsort($resultado);
Que achei de mais óbvio… Mas não tenho conseguido de jeito nenhum. Você poderia dar uma luz? Preciso muito dessa ajuda, man!
Grande abraço! E parabéns de novo!!
Guga, cara acho melhor usar uma com banco para isso.
Porque não utiliza a dream gallery, funciona perfeitamente e você pode ordenar como quiser;
Bom, a questão aí não tem nada a ver com o script, é mais a questão de sistema operacional mesmo, você precisa olhar para seu servidor para entender como ordenar corretamente (e isso poderá
variar de um para outro);
Abs
Amigo o login não funciona no localhost e não exibe as imagens, pode dar uma dica
Cara, estou querendo criar uma seleção de categorias com essa galeria.. para isso segui a resposta que você deu ao amigo la em cima:
“Hahaha sei como sim, mas aí vou fazer o sistema inteiro para você, daí não vale né ?
Mas vou te dar uma direção ok.
crie as tabelas (com os campos que aparecem ao lado):
– categorias (IdCategoria, nomeCategoria)
– fotos (idFoto, idCategoria, urlFoto)
Popule a tabela categoria (se quiser faça uma tela para add categorias)
Na tela de upload das fotos o usuário deverá selecionar uma categoria e enviar a imagem
No arquivo upload.php, modifique-o para assim que fizer o “upload com sucesso” em seguida gravar no banco ex.
insert into fotos (idcategoria,urlfoto) values ($idCategoriaVindaDoPost, $nomeDoArquivoFoto)
Para não dar problema com nomes repetidos user o método md5() para criar nomes unicos, ex:
$nomeDoArquivoFoto = md5(uniqid(time())); // isso antes do insert (claro)
Na página principal você coloca no inicio do programa uma query pegando as fotos por categoria, ex:
Suponha que na página principal sejam exibidas primeiramente as categorias e só depois do usuário escolher a categoria a página é direcionada à uma url que carrega por GET o id da categoria, assim temos uma segunda página que espera:
$idCategoria = $_GET[‘idcategoria’] ; // esse valor vem do form/select da página anterior
em seguida monte a query com o id recebido
$sql = “select * from fotos where idcategoria = $idCategoria”
Bem, agora você só tem fotos da categoria escolhida pelo usuário. É mais ou menos isso, vai dizendo onde você enrosca e na medida do possível vou te ajudando.
tchau”
Fiz exatamente isso. Criei a tabela categorias, inseri o campo de id_categoria na tabela de fotos, inseri o select ja pegando da tabela categorias com o php na parte onde fazemos o upload, porém no arquivo upload.php eu coloco:
$categoria = $_POST[“categoria-fotos”]; (Esse “categoria-fotos” é o name do meu select no arquivo album.php)
e no insert into fica assim: $db->query( “insert into fotos (foto_album,foto_url,id_categoria,foto_data,foto_pos) values ($album_id,’$file_dst_name’,$categoria,’$foto_data’,’999′);” );
mas quando escolho a categoria e clico para fazer upload e as imagens terminam de carregar, meio que a pag da 1 auto refresh em meio segundo e as fotos não aparecem para eu colocar o titulo e a legenda e a categoria desseleciona como se eu tivesse indo começar o processo. Pode ajudar?
Olá Rafael,
Exatamente o que eu estava procurando, sou meio leigo quando assunto é php ou alguma dessas classes e gostaria de sua ajuda.
Subi a galeria para o host sem nenhuma alteração, ao incluir uma nova foto a thumb não é gerada e ao clicar em uma foto já existente ela não é ampliada.
Como estou apenas testando ela está hospedada em um freehost: 000webhost.com que não possui GD2 library bloqueada.
Tentei buscar uma nova classe para a thumbnail mesmo possuindo a ultima versão do PHP segundo o host mas não a encontrei, poderia me auxiliar?
Rafael gostaria de fazer um orçamento contigo.
pode me passar um email para contato?