Galeria Lightbox + Upload de fotos + Thumb + Painel Admin

  • Autor do post:
  • Categoria do post:PHP DEV

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=”stylesheethref=”css/lightbox.csstype=”text/cssmedia=”screen” />
<link rel=”stylesheet href=”css/galeria.csstype=”text/css” media=”screen” />

<!– incluindo os arquivos da biblioteca LightBox–>
<script type=”text/javascriptsrc=”js/prototype.js“></script>
<script type=”text/javascriptsrc=”js/scriptaculous.js?load=effects“></script>
<script type=”text/javascriptsrc=”js/lightbox.js“></script>

</head>
<body>
<p>&nbsp;</p>
<p><a href=”enviar.php”>Enviar fotos para Galeria</a></p>
<p>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</p>
<!– 3 Incluindo o programa que faz o upload das imagens –>
<? include ‘upload.php‘; ?>
<p>&nbsp;</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,


Este post tem 276 comentários

  1. kaue

    tem como colocar legenda por upload tb?

    ja tentei e nao consegui…

    1. Rafael Clares

      Amigo, basta ler o Post. Já está comentado sobre esse assunto. Obrigado pelo comentário.

  2. kaue

    tem como colocar legenda nas fotos?

  3. Andrenet

    ta havendo um problema, eu ainda não consegui corrigir, quando eu faço o upload das imagens, as miniaturas delas não aparecem.

  4. Edivan

    Amigo, parabéns pelo Post. Faltou algo para deletar as fotos. Poderia dar uma dica para isso? Seria muito útil.

    1. Rafael Clares

      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,

  5. Antonio

    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?

    1. Rafael Clares

      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.

  6. Antonio

    Rafael pode deixar, aprendi na marra rsrsrs
    tinha que setar as permissões no servidor

    1. Rafael Clares

      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,

  7. Junior

    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.

  8. João Paulo de Borba

    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

    1. Rafael Clares

      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,

  9. junior

    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.

    1. Rafael Clares

      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,

  10. junior

    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!

    1. Rafael Clares

      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.

  11. junior

    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!

    1. Rafael Clares

      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

    1. Rafael Clares

      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,

  12. junior

    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!

    1. Rafael Clares

      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,

  13. Joao

    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!

  14. Joao

    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!

  15. Paulo Suprema

    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.

    1. Rafael Clares

      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

  16. Francilene

    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 😉

    1. Rafael Clares

      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

  17. Antonio Jáles

    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á….

    1. Rafael Clares

      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.

  18. Isarel

    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!

    1. Rafael Clares

      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,

  19. Horácio Júnior

    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?

    1. Rafael Clares

      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,

    2. Rafael Clares

      Baiixeia versão do thumbnail para php4, testei, funcinou, te mandei por email tudo certinho! flw

    3. Rafael Clares

      Baixei a versão do thumbnail.inc para o php4, testei, funcionou, te enviei por email o pacote funcionando. flw

  20. Cunha

    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!?

    1. Rafael Clares

      Cunha, obrigado pelo comentário e dica!
      abraços

  21. Marcelo Pessoa

    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.

  22. Marcelo Pessoa

    Rafael como faço para dar mais espaços entre uma miniatura(thumb) e outra.

    Obrigado. Sucesso.

    1. Rafael Clares

      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

  23. Marcelo Pessoa

    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.

    1. Rafael Clares

      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,

  24. Clécio

    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

    1. Rafael Clares

      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 !

  25. Fabio Chiara

    Ola Rafael preciso de sua ajuda com um sistema teria como vc entrar em contato comigo por email???
    [email protected]
    Obrigado

  26. Marcelo

    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.

    1. Rafael Clares

      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,

  27. andré

    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

    1. Rafael Clares

      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

  28. Israel

    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!

    1. Rafael Clares

      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

  29. augusto

    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

    1. Rafael Clares

      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.

  30. Cristiano

    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.

    1. Cristiano

      opa pessoal só para dizer q ja consegui fazer.
      vlw

  31. Cristiano

    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

    1. Rafael Clares

      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

      1. Cristiano

        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.

  32. triplox

    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

  33. triplox

    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

  34. Henrique

    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;;

    1. Rafael Clares

      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

  35. Eleanor

    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

    1. Rafael Clares

      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.

    2. Rafael Clares

      Faça novamente o download do fonte, eu troquei o short tags pela tag <?php normal.

  36. Eleanor

    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

  37. Eleanor

    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..

    1. Rafael Clares

      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

      1. Eleanor

        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..

        1. Rafael Clares

          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

          1. Eleanor

            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

          2. Rafael Clares

            Eita… mas ai o blog perde o sentido né ?

  38. wesley

    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

    1. Rafael Clares

      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,

  39. rodrigo sousa

    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 ..

    1. Rafael Clares

      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é,

  40. Rodrigo sousa

    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

  41. kleber

    Legal o código, poderia montar um para remover agora.

    Abraços

  42. Andrew

    Vlw, foi prefeito vlw msmo

    1. Rafael Clares

      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é

      1. CLOVIS

        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

        1. Rafael Clares

          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

          1. CLOVIS

            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.

          2. Clovis

            ola rafael, achou problema

          3. Rafael Clares

            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

  43. Junior Galdino

    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!

    1. Rafael Clares

      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

  44. Junior Galdino

    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??

  45. Junior Galdino

    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

  46. Junior Galdino

    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?

    1. Rafael Clares

      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.

  47. Junior Galdino

    Rafael, o Upload ta ok, agora so falta as imagens do thumb q nao aparece, o q pode ser?

  48. Junior Galdino

    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!!!

    1. Rafael Clares

      Junior, hoje ainda te ajudo segura aí um pouquinho que to trampando agora…
      até logo,

    1. Rafael Clares

      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;

      1. Rafael Clares

        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

  49. Danila

    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

    1. Rafael Clares

      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,

      1. Danila

        no cpanel aqui tem o postgresql , fiz tudo certinho e nada

        1. Rafael Clares

          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.

  50. Junior Galdino

    E ai meu parceiro, sei q seu trampo é puxado mais n me deixe na mao. rsrs fico aguardando…

    1. Rafael Clares

      Junior, o que você precisa é o arquivo thumbnail.inc.php para versão 4 do PHP.
      Mandei no seu email.

  51. Nelys Araujo

    Testei e ficou direitinho d+

    1. Rafael Clares

      Nelys, poxa cara … obrigado por comentar!!!
      Geralmente o pessoal só comenta dúvidas, fica parecendo que nada funcionada rs rs ..
      valeu

  52. Leonardo

    o meu amigo… muito bom seu post… mandou bem fiz aki deu tudo certo… Vlw funcionou redondo… ABRAços… vlw

    1. Rafael Clares

      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

  53. Alexandre

    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

    1. Rafael Clares

      Alexandre, leia os comentários desse post thumbs.
      A solução do problema está nos comentários.

  54. Alexandre

    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?

    1. Rafael Clares

      Alexandre, ao menos passe o url do sistema, né….

      até

  55. Alexandre

    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

  56. Nelys

    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.’‘;
    }
    }

    ?>

  57. Nelys

    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…

    1. Rafael Clares

      Nelys, tem como colocar quantas galerias quiser;

      1. Nelys

        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)

        1. Rafael Clares

          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

          1. Nelys

            Obrigado. pela dica sobre a galeria. a parte do site que apaga ficou legal com a listagem e para apagar os arq..

  58. Nelys

    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 )

  59. Tiago

    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!

    1. Rafael Clares

      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é,

      1. Tiago

        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.

  60. Nati Kronbauer

    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 😉

  61. Eidi

    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!

      1. Eidi

        acho que você nao leu o que escrevi, mas mesmo assim obrigado.
        valeu pela atenção brother.

  62. Eidi

    Alguém pode me enviar o arquivo ‘thumbnail.inc.php’ do PHP 4 ? Obrigado.

  63. astro

    legal vou tentar

  64. tulii

    bem loko testando

  65. bruno

    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

    1. Rafael Clares

      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

  66. Claudia

    Muito bom, parabéns!

  67. alberto

    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!

    1. Rafael Clares

      Alberto, dê uma procurada no blog, tem um post sobre paginação com Jscript, é bem simples… flw

  68. Alberto

    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!!

  69. Luis Aglicio

    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?

    1. Rafael Clares

      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é

  70. Luis Aglicio

    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.

    1. Rafael Clares

      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

  71. Luis Aglicio

    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…

  72. Luis Aglicio

    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?

    1. Rafael Clares

      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

  73. Luis Aglicio

    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.

  74. Leonardo

    Muito bom, está funcionando perfeitamente. Gostaria de saber se
    existe alguma maneira de deletar as imagens nesse sistema sem o uso de BD?

    1. Rafael Clares

      Leonardo, a Galeria foi atualizada com esta funcionalidade, baixe-a novamente. flw

  75. joao

    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

    1. Rafael Clares

      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

  76. SP Artes Gráficasdo.

    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

    1. Rafael Clares

      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

  77. SP Artes Gráficas

    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.

    1. Rafael Clares

      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

  78. Gabriel

    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.

      1. Gabriel

        ok.. vlw Rafael.. lí lá e consegui fazer cetinho..

        muito obrigado.

  79. Antonio

    mtuuu bom cara, tu é fera !

  80. Jonathan

    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

    1. Rafael Clares

      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é

      1. Reynaldo

        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

        1. Rafael Clares

          Reynaldo, mas esse código já foi atualizado, já possui o comando para apagar!
          abraços

  81. Milton

    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

    1. Rafael Clares

      Olá Milton, na verdade é o mesmo efeito, o LightBox!
      Abraços

  82. Diogo

    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
    }
    ?>

    1. Rafael Clares

      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,

  83. juan molina

    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.

    1. Rafael Clares

      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.

  84. Juarez Filho

    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.

    1. Rafael Clares

      Juares, infelizmente não tenho como dar auxilio em customizações.

  85. Ricardo

    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!

    1. Rafael Clares

      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

  86. Ricardo

    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!

    1. Rafael Clares

      Customizações, como eu comento no post, não tenho tempo em ajudar, infelizmente!
      Boa sorte!

      1. Ricardo

        de boa ta sussegado =), já conseguir fazer oq eu queria! vlw pela força! abração!

  87. Leonardo

    Parabens pelo tuto muito bom , teria como fazer uma paginação nesse codigo?? tentei e nao deu certo!!!

      1. Leonardo

        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

        1. Rafael Clares

          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!

  88. Leonardo

    VLW,
    fmz tranquilo t+!

  89. julio

    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

    1. Rafael Clares

      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!

      1. julio

        valeu cara vou tentar aki de novo!

  90. julio

    eu estou usando o FileZila as opsoes ja estao liberadas mais imfelismente nao deu.
    mais obrigado!!

  91. julio

    ei cara como por titulo nas imagens do arquivo lerdir?
    Desde ja grato!!

    1. Rafael Clares

      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

  92. Leo

    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…

  93. julio

    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

  94. julio

    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

  95. .: Julian Leno :.

    Ó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!!!

  96. Ricardo

    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!

    1. Rafael Clares

      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;
      }

      1. Elquis

        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?

  97. Alberto

    Rafael,

    Como mostrar apenas o último registro (foto, titulo, descricao) na inicial?

    Abração!!!

    1. Alberto

      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!!

      1. Rafael Clares

        Post? Você não está perguntando no local errado? Esse exemplo possui apenas fotos!

      2. Alberto

        Então vou explicar melhor, como aparecer apenas a ultima galeria na index…

        Obridao!

        1. Rafael Clares

          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

  98. Clebson Santos

    Aí mano, achei esse site por acaso, muito bom mesmo Nunca tire este site do ar pelo amor de Deus. =)

    1. Rafael Clares

      Clebson, valeu irmão! Abraço

    1. Rafael Clares

      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

  99. Luã Stradlin

    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!

  100. Flavio

    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…

    1. Rafael Clares

      Flavio, acho que é mesma disponível para download. vou mandar no seu email. Ah, não respondo dúvidas por email hein…abs

  101. suacamaera

    Nossa sua galeria é muito boa, gostei muito

  102. Fernandes

    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!

    1. Rafael Clares

      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!

  103. Mizael

    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

    1. Rafael Clares

      Mizael, qual a versao do seu PHP ? Aproveite para ler os comentários, existem muitas resoluções de problema nos comentários!

  104. Hugo Cordeiro

    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”

    1. Rafael Clares

      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

  105. jesleyNonato

    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!

    1. Rafael Clares

      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!

  106. Rafael de paula

    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!

  107. paulo

    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.

  108. Rogério

    Bom dia grande Rafael
    Tem como colocar as galerias em 3 colunas na index ?

    1. Rafael Clares

      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

  109. colinasagendas

    o que muda quando vai usar esse script com o Mysql?
    obrigado bom post.

  110. Gabriel

    Rafael, como posso fazer uma legenda?

    1. Rafael Clares

      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;

  111. Gabriel

    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…

    1. Rafael Clares

      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.

  112. Caio

    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?

    1. Rafael Clares

      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

        1. Rafael Clares

          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

  113. Caio

    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?

    1. Rafael Clares

      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

      1. Caio

        Obrigado pela ajuda.

  114. Caio

    O servidor é Windows, e eu alterei todas as permissões e nada, desculpa o SPAM é que eu to meio lerdo hoje. rs

  115. Caio

    Opa, Rafael, pode me ajudar cara? Vc apagou meus comentários 🙁

    1. Rafael Clares

      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.

  116. Daubert

    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

    1. Rafael Clares

      Daubert, você deu permissão de gravação na pasta de fotos?

      1. daubert

        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.

  117. Hner

    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?

    1. Hner

      Ta ok já.

    2. Rafael Clares

      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

  118. conrado

    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.

      1. conrado

        Farei isto e te aviso aqui… mais uma vez, muito obrigado.

        1. Guga Barreto Brandão

          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!

  119. felipe

    Show. sempre uso. vlw

  120. Everton

    o problema aqui e que nao deleta as fotos, alguma solução?

    1. Rafael Clares

      rsrsrs cara vc tem que me passar o link, não vou procurar lá né? hahahahaha

  121. rick

    filho esse teu negocio ai é excelente mas ficaria perfeito se já listasse em ordem alfabética.

  122. Samuel Dutra

    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

  123. Edcris oliveira dos santos

    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!!

      1. Edcris Oliveira

        Boa Noite Rafael, essa galeria é perfeita, só que quando o efeito só funciona dps que todas as imagens do algum carregam….
        abraço…

        1. Rafael Clares

          É 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…

    1. Rafael Clares

      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;/

  124. Robert

    Rafael , tenho como inserir essa galeria através de iFrame no meu site em html5 e CSS3?

  125. Guga Barreto Brandão

    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!!

    1. Rafael Clares

      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

  126. Claudio

    Amigo o login não funciona no localhost e não exibe as imagens, pode dar uma dica

  127. Alan Bráulio

    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?

  128. Tameramer Oliveira

    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?

  129. Sander

    Rafael gostaria de fazer um orçamento contigo.
    pode me passar um email para contato?

Os comentários estão encerrados.