Jump to content


Photo

Sistema De Fotos Igual Ao Do Www.bemnafoto.com.br


  • Faça o login para participar
3064 replies to this topic

#2836 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 30/01/2007, 11:46

E ai homem quase invísivel com vai...

Claro que tem mas não nescessáriamente do ato de apertar F5 e sim de atualizar a página...

Assim como o Crab eu tinha feito uma galeria de fotos a minha e uma coisa bem simples mesmo a pessoa faz um arquivo compactado (zip ou rar) e manda pro servidor no formulário só vem o campo pra cadastrar o título e uma mensagem qualquer pra aparecer na capa.

a data vem da própria foto através da leitura exif do arquivo.
eu até tinha feito na minha a parada de fazer a exibição de fotos aleatóriamente...

Pra você ter uma idéia de como é que faz
$file = readdir($handle);
echo $file[rand(0,count($file))];

Falopa!

Edição feita por: hostdesigner, 30/01/2007, 15:03.


#2837 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 30/01/2007, 14:53

E ae man, beleza ??

Olha só, eu tentei usando o código q vc postou só que não deu certo não

<?
$handle = opendir('diretorio');
$file = readdir($handle);
echo $file[rand(count($file))];
?>

Aparece uma msg de erro que aparentemente diz q falta um parâmetro para rand:
Warning: rand() expects exactly 2 parameters, 1 given in c:\appserv\www\novo_aconxegu\galeriamgb\images\teste_aleatorio.php on line 4

Eu consegui fazer ele listar os arquivos assim:

<?
$handle = opendir('diretorio');
while (false !== ($file = readdir($handle))) {echo "$file\n";}
closedir($handle);
?>

Só que mostra os diretórios numa linha e eu não consegui fazer aparecer um só, aleatoriamente. Outra coisa, o que são aqueles pontos no início ? (aparece um "." e um ".." e depois aparecem os diretórios).

Falow man, um abraço

#2838 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 30/01/2007, 15:38

Verdade eu me esqueci de colocar o primeiro parâmetro de rand()

os pontinhos? não sei
Os pontinhos são diretórios sabe quando você faz src="../ dois pontos pra subir e um pra entrar :D

O que eu fiz foi a muito tempo por isso mostrei errado o certo é assim
<?PHP
$var = glob("*.*");
echo $var[rand(0,count($var))];
?>

Falopa!

#2839 bgoes

bgoes

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 31/01/2007, 14:13

(y) Fale galera!!! tô tentando instalar a Galeria localmente mais na hora de executar o arquivo instalar.php ele gera o seguinte erro:

Notice: Undefined variable: passo in d:\luciano\web\easyphp1-8\www\malagueta\galerias\geral\instalar.php on line 4


Galeria Brasil v2.0 - Instalação
Configurar o arquivo de conexão com o banco de dados.
Banco de dados:
Usuário:
Senha:


Notice: Undefined variable: passo in d:\luciano\web\easyphp1-8\www\malagueta\galerias\geral\instalar.php on line 81

Notice: Undefined variable: passo in d:\luciano\web\easyphp1-8\www\malagueta\galerias\geral\instalar.php on line 308

Eu uso o easyphp, será que esse erro tem alguma coisa haver com isso? ou será que tenho que mexer em algo na configuração da galeria antes de instalar?

Valew!

#2840 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 10:18

Verdade eu me esqueci de colocar o primeiro parâmetro de rand()

os pontinhos? não sei
Os pontinhos são diretórios sabe quando você faz src="../ dois pontos pra subir e um pra entrar :D

O que eu fiz foi a muito tempo por isso mostrei errado o certo é assim

<?PHP
$var = glob("*.*");
echo $var[rand(0,count($var))];
?>

Falopa!


E ae man

Olha só, fiz assim e deu certo, só que ele só mostra os arquivos do diretório em que está o arquivo com esse código. Aí eu olhei no dicionário de php se tem como apontar um diretório na função glob, e lá não diz nada.

Tipo, teria que ficar assim: /galeria/images/galeria/pasta aleatória/arquivo_aleatorio.jpg

Falow man

#2841 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 01/02/2007, 10:39

Na realidade a função glob() funciona como uma espécie de Windows Explorer você mostra o endereço que quer listar e ele exibe os diretórios e arquivos contidos.

Vamos ver um exemplo pratico.
<?PHP
$diretorio = "/";
$var = glob($diretorio ."*.*");
echo $var[rand(0,count($var))];
?>
neste caso eu informei que o diretório a ser lido é o mesmo onde se encontra o script. note que eu adicionei uma barra, se eu não houvesse colocado o script entenderia que deveria ser lido o diretório onde ele se encontra :D (a mesma coisa com ou sem a barra)

Vamos imaginar que eu tenho o seguinte diretório
www/
|_imagens
|_arquivos
|_teste
|   |_img
|_script.php
imagine que script.php seria nossa função glob e que nós queríamos listar o conteúdo da pasta "arquivos" então vamos atribuir o endereço a nossa variavel "diretório"
<?PHP 
$diretorio = "arquivos/";
// o restante do script
mas aqui vem uma pegadinha. dentro de arquivos pode haver arquivos que não sejam de meu interesse exibi-los, como por exemplo arquivos PHP ou HTML, como fazer pra que estes arquivos não sejam exibidos?
Melhor ainda como dizer que eu só quero os arquivos que sejam JPG, GIF e PNG?
Você já estudou DOS? (muitas funções do PHP se baseiam neste sistema)
Se já estudou você deve se lembrar de como era feito pra listar arquivos com as extensões desejadas.
ITEM  AÇÃO
*	Qualquer nome
*.*  Qualquer nome qualquer extensão
*.jpg Qualquer nome com extensão jpg
*.gif  Qualquer nome com extensão gif
Bom deu pra entender né?
voltando ao nosso script agora que já temos noção de listagem de diretórios.
<?PHP
$diretorio = "arquivo/";
$var = glob($diretorio ."{*.gif,*.jpg,*.png}");
echo $var[rand(0,count($var))];
?>
Desta forma listaríamos apenas arquivos com extensões GIF, JPG e PNG.

Com tudo vimos que TODAS as funções que trabalham com diretórios recebem primeiramente o parâmetro "diretório" e que podemos adicionar qualquer diretório dentro do NOSSO servidor.

Fácil, não é?
fonte: http://br.php.net/glob

Falopa!

#2842 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 14:40

E ae man, olha só, consegui fazer o negócio, mas tá dando uns probleminhas...

o código final a q eu cheguei foi esse:

<?
$diretorio = "galeria/";
$var = glob($diretorio ."*");
$url = $var[rand(0,count($var))];
$url2 = $url."/";
$var2 = glob($url2 ."*.jpg");
echo $var2[rand(0,count($var2))];
?>

no caso, ele "sorteia" uma pasta, e depois "sorteia" um arquivo dentro dessa pasta. Teoricamente tá tudo certo, só que na prática até da certo, só que na maioria das vezes q eu atualizo o navegador a pagina fica em branco. Tipo, a cada umas 3 ou 4 atualizações, uma só que aparece uma url aleatória mesmo. O que será que tá dando errado hein...

Falow man

#2843 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 01/02/2007, 14:45

Que POGramação mais loca... :D

De onde vão sair os URLs? do geito que você está fazendo você está lendo todo o diretório dentro de galeria isso pode deixar o site lento dependendo da quatidade de arquivos contidos no diretório.

Você quer listar um diretório aleatório ou imagens? Vai pegar o endereço da galeria brasil?

Falopa!

#2844 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 14:47

sim, basicamente eu quero mostrar no index do site uma foto aleatória da galeria. Tipo, pode ser qualquer foto.

#2845 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 01/02/2007, 16:26

Então neste caso você não precisa fazer toda esta gambiarrização ai apenas assim
<?PHP // ...toda a baboseira anterior
while($r = mysql_fetch_array($sql)){// RETORNA O ARRAY 

$var = glob($r["pasta"] ."/{*.gif,*.jpg,*.png}");// INFORMO A URL E ARQUIVOS A LISTAR

echo $var[rand(0,count($var))]; // IMPRIMO O ARQUIVO ENCONTRADO NA PASTA
}// AGORA TEM } NO FINAL
?>
Se você quer que a order dos eventos sejam mostrados aleatóriamente adicione "ORDER BY RAND() LIMIT X" na consulta no SQL

Falopa!

Edição feita por: hostdesigner, 01/02/2007, 17:11.


#2846 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 16:51

E ae man

consegui, deu certo (eu acrescentei um } no fim do código):

<? 
include "path.php";
$sql = mysql_query("SELECT * FROM galeria order by rand() limit 1"); 					
while($r = mysql_fetch_array($sql)){ 
$pasta = "images/galeria/".$r['pasta']."/";
$var = glob($pasta ."*.jpg");
echo $var[rand(0,count($var))]; 
}
?>

Só que ainda acontece de não aparecer nada quando atualiza a pagina, tipo, tem vez q tem q apertar F5 umas 2 ou 3 vezes pra aparecer uma url. O que será hein ??

#2847 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 01/02/2007, 17:13

Dentro de todos os diretórios dentro de "images/galeria" existem arquivos?

Falopa!

#2848 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 17:22

Dentro de todos os diretórios dentro de "images/galeria" existem arquivos?

Falopa!



dentro de "images/galeria/" tem mais uma pasta, e depois os arquivos. Por exemplo: "images/galeria/conecades/dsc0005.jpg" é a url de uma das imagens. No caso, a pasta "conecades" e a foto "dsc0005.jpg" são escolhidas randomicamente.

#2849 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 01/02/2007, 17:25

Eu não lembro como funciona a galeria eu não tenho nem a gambiarra que fiz nela e nem ela :D

Mas ela guarda o nome da pasta ou da foto? pra funcionar do geito que mostrei tem que ser o nome da pasta.

Falopa!

#2850 mi7chael

mi7chael

    12 Horas

  • Usuários
  • 266 posts
  • Sexo:Masculino

Posted 01/02/2007, 17:32

no banco ela guarda o nome da pasta e o nome da foto destaque
o código ali tá certo até o nome da pasta, porque quando eu dou echo no nome da pasta ele mostra direitinho o caminho.

Edição feita por: mi7chael, 01/02/2007, 17:37.





4 user(s) are reading this topic

0 membro(s), 4 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq