Duvida php!

Started by Teotónio Ricardo, April 01, 2006, 09:02:00 PM

Previous topic - Next topic

Teotónio Ricardo

Tenho uma variavel em que cada vez que faço uma rotina vou adicionar um a essa variavel!

Exemplo:

$convites++;

Mas quero que ela fique gravada!

Pois depois vou mostrar o numero dessa variavel!

Apenas com bd?

KTachyon

Realmente precisas de alguma forma de manter a variável guardada no servidor. Neste momento tou sem tempo, amanhã investigo e digo kk coisa.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

Teotónio Ricardo

Talvez num ficheiro txt!

Teotónio Ricardo

Utilizei um exemplo que tinha aqui para um módulo do phpnuke:





$ficheiro = \\'contador.txt\\';

  $fich = fopen($ficheiro,\\'r\\');

  $convites = fread($fich, filesize($ficheiro));

  fclose($fich);



$convites++;



$fich = fopen($ficheiro,\\'w+\\');

fwrite ($fich, $convites );

fclose($fich);



?>

KTachyon

Ok, isso funciona. Abre um file descriptor para um ficheiro de uma maneira simples (para kem trabalha em C é simples), e permite-t aceder ao conteúdo do ficheiro. Só há o problema de se isso for para um servidor muito recorrido significa acessos ao disco muito regularmente, mas tb não é nd de outro mundo.

A maneira mais eficiente é ter o servidor configurado para tem uma variável global (superglobais ou variáveis externas, como keiras) para o PHP, mas isso é configurado directamente no servidor, n na página .php.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

dimage

com txt isso dá na boa..
<?
// arquivo onde guarda o teu numero..
$archivo = \\"numero.dat\\";
// isto abre o arquivo
$abre = fopen($archivo, \\"r\\");
// aqui lemos o arquivo
$total = fread($abre, filesize($archivo));
// fechamos a connecção
fclose($abre);
// abrimos novamente o arquivo
$abre = fopen($archivo, \\"w\\");
// aqui somamos o tal mais 1 que falas-te
$total = $total + 1;
// gravamos
$gravar = fwrite($abre, $total);
// fechamos a connecçao
fclose($abre);
//aqui mostra o numero final.. já com o mais 1 anexado
echo \\"<font face=\\'verdana\\' size=\\'1\\'>\\".$total.\\"</font>\\";
?>
amostra de designer 2D e 3D

KTachyon

Ya, com um ficheiro de texto isso dá na boa. Mas imagina se tiveres muitos acessos a esse dado. Não é mais eficaz se fores actualizar a variável directamente na memória k encheres o disco de pedidos?
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

Teotónio Ricardo

$abre = fopen($archivo, "w");
O que é que faz esta linha?

KTachyon

Serve para \\'abrir\\' o ficheiro com permissões de escrita (w = write).
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

dimage

isto é tão simples.. não enches disco nenhum..
mas pronto.. cada 1 com a sua maneira..
amostra de designer 2D e 3D

Teotónio Ricardo

QuoteServe para \\'abrir\\' o ficheiro com permissões de escrita (w = write).

Bem que me parecia que era isso!

Ghetto_Smurf

Quote
QuoteServe para \\'abrir\\' o ficheiro com permissões de escrita (w = write).

Bem que me parecia que era isso!
cenourinha resolve lá isso que os meus anos estão quase ai

Teotónio Ricardo

Quote
Quote
QuoteServe para \\'abrir\\' o ficheiro com permissões de escrita (w = write).

Bem que me parecia que era isso!
cenourinha resolve lá isso que os meus anos estão quase ai

Nops, este já não era para os teus anos, era para o script do \\"Convites Gmail\\"

KTachyon

Quoteisto é tão simples.. não enches disco nenhum..
mas pronto.. cada 1 com a sua maneira..

Enches o disco de pedidos de acesso. O disco rígido é dos elementos mais lentos que encontras num computador, e se lhe fizeres muitos pedidos és capaz de ficar a anhar à espera de k ele responda a todos.

Obviamente k a solução é suficientemente boa para um server k não faça muitos acessos...
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32