View Full Version : (flash) como adicionar um contador de visitas?


rm_fontes
03-01-2007, 20:43
estou a criar um site em flash e tenho mais uma duvida.
quero adicionar um contador de visitas... ja vi um exemplo em que eram precisos um ficheiro txt e um php junto ao ficheiro do flash.
sei que o ficheiro txt tem de ter permiçoes 777 senao n escreve as visitas e o servidor para onde tenho k mandar a pagina nao da essa permissao.
+reciso entao de um contador k nao use o txt.
é possivel aplicar um contador tipo do bravenet???
quero tb criar um guestbook mas tb tem k ser armazenada a info notro tipo de ficheiro.

fil79
06-01-2007, 01:26
bem o ideal para fazeres um script deste género é guardares os dados numa base de dados...é mais fácil ( o php oferece-te dezenas de funções para manipulares os dados em Base de dados, especialmente Mysql) e seguro

rm_fontes
07-01-2007, 15:09
bem o ideal para fazeres um script deste género é guardares os dados numa base de dados...é mais fácil ( o php oferece-te dezenas de funções para manipulares os dados em Base de dados, especialmente Mysql) e seguro

deste genero como? sei que da para usar como banco de dados um documento do access mas nao sei como o fazer...

fil79
07-01-2007, 19:54
o teu servidor está preparado para rodar PHP e tem servidor de Base de dados Mysql??é que com Access é mais complicado pelo menos para mim)

fil79
07-01-2007, 19:55
o teu servidor está preparado para rodar PHP e tem servidor de Base de dados Mysql??é que com Access é mais complicado (pelo menos para mim)

rm_fontes
08-01-2007, 00:00
eta preparado para php e suporta mysql... uma ajudinha era bem vinda...

fil79
08-01-2007, 17:41
bem este apesar de simples funciona:

Primeiro tens de criar uma nova base de dados de nome visitas

de seguida crias uma tabela com dois campos (id,ip) com o seguinte código sql;



CREATE TABLE `visitas` (
`id` INT( 50 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` VARCHAR( 250 ) NOT NULL
) TYPE = innodb;


e depois inseres este script php dentro do html da página que pretendes que se conte as visitas:


<?php

# tira o ip do utilizador

$ip=getenv("REMOTE_ADDR");

#abre a ligação á base de dados, por norme o host é localhost, o user é root , tens de inserir
nas terceiras aspas a tua password de acesso ao teu servidor Mysql

$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");

#escolhe a base de dados dentro do servidor

mysql_select_db(visitas,$abrir);

#contabiliza uma nova visita

mysql_query('INSERT INTO visitas (id,ip) values("","'.$ip.'")');

#Visualiza o número de visitas

$total=mysql_num_rows(mysql_query("SELECT * FROM visitas"));

#escreve na página o número de visitas, se quiseres que as visitas fiquem só para ti guarda esta página num local do servidor que só tu tenhas acesso....

echo"Você é o visitante número $total";
?>


Não te esqueças de salvar a página com a extensão .php

rm_fontes
09-01-2007, 15:41
ta a dar...

eu quero fazer a pagina toda em flash por isso tenho k quardar o codigo num php e atraves do flash chamar esse codigo. mas como faço isso? sei que para ser enviada a contagem no final tenho k alterar a parte final do codigo (vi noutro exemplo).

fil79
09-01-2007, 22:14
se quiseres que os dados fiquem só para ti podes criar este script e guardas num local restrito do servidor...se quiseres que a contagem fique disponivel para todos tens de juntar actionscript com php....usas a classe loadvars do actionscript no teu site flash, que serve para "ir buscar variáveis externas" e mostrá-las no flash

rm_fontes
10-01-2007, 00:11
ja puz o contador... ta a funcionar as mil maravinhas... como tinha dito do 1º post tb queria por um livro de visitas... sabes como fazer?

fil79
10-01-2007, 01:07
1ºfazes um form em html
2ªrecebes os dados num script php

por exemplo:

Tens os campos de formulário nome e mensagem

a)transformas as variáveis carregadas no html(post) para novas variáveis

$nome=$_POST['nome'];
$msg=$_POST['mensagem'];
$data=date("d-m-Y");
$hora=date("H:i:s");



depois fazers o mesmo procedimento para as visitas...

crias uma base de dados com uma tabela com os quatro campos

ligas-te á base de dados


$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");

#escolhes a base de dados

mysql_select_db(guestbook,$abrir);

#e inseres os valores

$resultado=mysql_query('INSERT INTO visitas (nome,mensagem,data,hora) values("'.$nome.'","'.$mensagem.'","'.$data.'","'.$hora.'")');

#para visualizares os valores podes usar a seguinte função:


while ($registo=mysql_fetch_array($resultado)){
$nomedoutilizador=$registo["nome"];
$mensagem=$registo["msg"];
$dat=$registo["data"];
$hor=$registo["hora"];

/*já tens aqui os resultados num array...depois se quiseres e para ficar mai atraente colocas os resultados numa tabela:*/


<table width=202 border=3 cellspacing=0 cellpadding=0>
<tr>
<td width=194>$mensagem</td>
</tr>
<tr>
<td>$nomedoutilizador<br>$dat<br>$hor</td>
</tr>
</table>
<br>



espero que tenhas percebido a ideia:)

rm_fontes
10-01-2007, 11:14
vou ver...

fil79
10-01-2007, 13:52
este é só um exemplo que fiz á pressão somente para tu perceberes...não tes esqueças que tens de criar uma validação para o teu formulário HTML para não se inserir campos vazios....

rm_fontes
10-01-2007, 15:33
ainda nao testei...
no flash nao consigo criar hiperligações... lembrei-me que podia chamar um ficheiro php e esse fazer a hiperligação... como fazer a hiperligação no php?
tentei
<?php
$abrir="www.google.pt";
?>
mas nao da...

fil79
11-01-2007, 01:14
ainda nao testei...
no flash nao consigo criar hiperligações... lembrei-me que podia chamar um ficheiro php e esse fazer a hiperligação... como fazer a hiperligação no php?
tentei
<?php
$abrir="www.google.pt";
?>
mas nao da...

<?php
echo"<a href=link.php>Link</a>";
?>

rm_fontes
11-01-2007, 15:27
<?php
echo"<a href=link.php>Link</a>";
?>

nao consegui... se calhar nao me expliquei bem.
segundo o que percebi o comando echo é para aparecer alguma coisa na pagina. nao quero isso quero ao clicar no link no flash ele abra este ficheiro e este automaticamente re-encaminhe para um site. nao deve aparecer nada na janela de visualização... podes colocar o ex com o site do google para eu perceber melhor?

fil79
11-01-2007, 19:56
o exeplo de cima é assim:

<?php
echo"<a href=http://www.google.com>Ir para google</a>";
?>

Como dizes isto apenas cria um script em que aparece uma hiperligação na pa´gina, não vai abrir nada....

o que tu pretendes é isto:

actionscript:

escreves isto nas actions do teu botão:

on(release){
getURL(http://www.google.com (http://www.google.com/));
}

rm_fontes
12-01-2007, 12:54
esse codigo ja tentei a muito. era o normal mas com o ie7 e firefox 2.0 existem bloqueios que impedem a hiperligação. se conseguisse fazer a hiperligação para um ficheiro alojado no servidor e esse fazer para o site que quaria é que tornava possivel as hiperligações... e kk coisa com o comando $abrir??? tem k ser alguma coisa que logo que o ficheiro seja executado faça...

fil79
12-01-2007, 16:25
<?php
header("Location: link.php");

?>

rm_fontes
19-02-2007, 01:10
tudo bem?
estive um tempo ausente...
ja ando a dar uns toques em myskl e agora as minha duvidas sao mais concretas.
qual o comando para retornar o ultimo valor de uma tabela. o k quero é o ultimo ip da base de dados visitas (esta em cima)

fil79
19-02-2007, 15:48
tens um campo 'id' auto_increment? caso afirmativo usa a seguinte função Mysql:


last_insert_id()

rm_fontes
21-02-2007, 12:49
tenho mas o k quero nao é o valor no id, quero o valor ip.
estou a criar uma daquelas questoes de escolha multipla co 4 hipoteses de resposta. tenho k armazenar as opcoes em 4 tabelas diferentes? a forma de armazenamento pode ser id auto increment, pois quero criar um grafico com as percentagens de cada resposta... ao fim é so ir buscar o total de cada resposta.

tentei usar o seguinte:
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$ip=last_insert_id(mysql_query("SELECT * FROM visitas");
echo "o ip é $ip";

e tentei tb com $ip=mysql_query(last_insert_id("SELECT * FROM visitas"));

mas da erro na linha do $ip

fil79
21-02-2007, 14:22
faz desta maneira:


fazes um primeiro select á base de dados para saber o número total de registos usando a sentença "select max(id) from tabela;"guardas este resultado numa variável($v) e fazes uma nova query para ir buscar o ultimo ip da base de dados :"select ip from tabela where (id=$v);"...espero que tenhas percebido:)

rm_fontes
21-02-2007, 19:19
eu penso k percebi mas n deu.
eu puz assim:

$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$v=mysql_query("select max(id) from visitas");
$ip=mysql_query("select (ip) from visitas where (id=$v)");
echo "o id é $v e o ip é $ip";
o k aparece é "o id é Resource id #2 e o ip é "
em $v era suposto aparecer prai 150, no ip nao aparece nada.

e diz-me se este codigo esta certo:

<?php
$ip=getenv("REMOTE_ADDR");
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$ip2= ---------------------------------------------------
mysql_select_db(visitas,$fechar);
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(questao,$abrir);
if ($ip != $ip2) {
switch (opcao) {
case 1:
mysql_query('INSERT INTO 1 (id) values("")');
print "questao=Votaste com sucesso."
case 2:
mysql_query('INSERT INTO 2 (id) values("")');
print "questao=Votaste com sucesso."
case 3:
mysql_query('INSERT INTO 3 (id) values("")');
print "questao=Votaste com sucesso."
case 4:
mysql_query('INSERT INTO 4 (id) values("")');
print "questao=Votaste com sucesso."
otherwise print "questao=Só podes votar uma vez em cada secção."
}
}
$total1=mysql_num_rows(mysql_query("SELECT * FROM 1"));
$total2=mysql_num_rows(mysql_query("SELECT * FROM 2"));
$total3=mysql_num_rows(mysql_query("SELECT * FROM 3"));
$total4=mysql_num_rows(mysql_query("SELECT * FROM 4"));
$total=$total1+$total2+$total3+$total4
$op1=$total1/$total*100
$op2=$total2/$total*100
$op3=$total3/$total*100
$op4=$total4/$total*100
print "op1=$op1&op2=$op2&op3=$op3&op4=$op4"
ao executar da erro na $op1
é feito em flash e é enviado para o php um valor opcao que pode tomar valores de 1 a 4.
depois é enviado de volta ao flash uma mensagem e as variaveis op1,op2,op3,op4.
tenho uma base de dados com nome 'questao' com 4 tabelas
e ja agora '!=' é 'diferente' certo?

HecKel
21-02-2007, 19:59
Boas!

Começa a usar as tags CÓDIGO ou CÓDIGO quando quiseres meter código, ajuda e muito quem te quer ajudar..., eu perco-me no meio de tanta linha :X

abraços, HecKel

rm_fontes
22-02-2007, 22:06
alguma ajuda?

fil79
25-02-2007, 20:01
tenta antes usar o mysql_num_rows

rm_fontes
25-02-2007, 23:54
mas eu preciso do valor da 2ª coluna. e esse comando nao vai dar o ultimo valor...
esse comando da um valor prai 120 e o id da ultima é prai 160

fil79
26-02-2007, 23:55
mas eu preciso do valor da 2ª coluna. e esse comando nao vai dar o ultimo valor...
esse comando da um valor prai 120 e o id da ultima é prai 160

como assim...se o campo id é auto-increment o mysql_num_rows dá-te o número total de id´s ou seja o número de registos da tabela

rm_fontes
28-02-2007, 14:51
é k eu apaguei uns valores porque aquilo estava a contar a mais ao inicio mas ja consigo ter o ultimo valor. mas no ip não aparece o k devia.
o codigo esta assim:
<?php
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$total=mysql_num_rows(mysql_query("SELECT * FROM visitas"));
$id = $total + 76;
$ip=mysql_query("SELECT ip FROM `visitas` WHERE `id` = $id");
echo "id é $id e o ip é $ip";
?>

o k aparece é "id é 200 e o ip é Resource id #3 "

na base de dados o comando da mas por php aparece "Resource id #3"

fil79
28-02-2007, 15:52
pela lógica julgo que devia dar...vou averiguar e logo te digo qq coisa

fil79
28-02-2007, 16:21
faz antes assim:



<?php
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$total=mysql_num_rows(mysql_query("SELECT * FROM visitas"));
$id = $total + 76;
$ip = $_SERVER['REMOTE_ADDR'];

echo "id é $id e o ip é $ip";
?>

Braz I Braz
28-02-2007, 20:31
fill ,tu és um mestre ,
quem me dera estar ja no teu nivel ,mas temo q o caminho seja longo ainda
por mais que desbrave livros e livros parece q so aprendo a mexer o rato :-D uma piada seca

acho que quando tiver duvidas ,vou te chatear um buca

ja agora ,vives onde ?
pa te cravar umas explicaçoes..

cumprimentos

rm_fontes
02-03-2007, 16:17
faz antes assim:



<?php
$abrir=mysql_connect("localhost","root","") or die ("impossivel ligar á base de dados");
mysql_select_db(visitas,$abrir);
$total=mysql_num_rows(mysql_query("SELECT * FROM visitas"));
$id = $total + 76;
$ip = $_SERVER['REMOTE_ADDR'];

echo "id é $id e o ip é $ip";
?>

quero comparar o ip k esta a aceder no momento com o ultimo k acedeu...
para ir buscar o ip do k esta a aceder é mt facil mas preciso do ultimo tb
é que quero fazer uma daquelas questoes tipo se esta a gostar do site mas quero impedir que votem 2 vezes seguidas...

colocando:
$total1=mysql_num_rows(mysql_query("SELECT * FROM `questao`.`1`"));
$total=$total1+$total2+$total3+$total4; estando todas as variaveis definidas
$op = $total1 / $total porque da erro isto? (Parse error)
a minha ideia aqui é colocar em percentagem, por isso ainda é preciso multiplicar por 100

fil79
03-03-2007, 11:44
mas se fizeres assim o mesmo IP pode votar mais do que uma vez...apenas estás a comparar com o último ip visitado...podes fazer assim: crias uma nova tabela na bd (votos) onde guardas os IP's que votaram...ao chegar um novo utilizador para votar fazes uma busca á tabela votos e comparas com o ip do utilizador...se esse ip existir na tabela não deixa votar, caso contrário pode votar...para cada ip um voto...espero que tenhas percebido

rm_fontes
04-03-2007, 16:19
mas se fizeres assim o mesmo IP pode votar mais do que uma vez...apenas estás a comparar com o último ip visitado...podes fazer assim: crias uma nova tabela na bd (votos) onde guardas os IP's que votaram...ao chegar um novo utilizador para votar fazes uma busca á tabela votos e comparas com o ip do utilizador...se esse ip existir na tabela não deixa votar, caso contrário pode votar...para cada ip um voto...espero que tenhas percebido

penso k percebi.
mas como faço para comparar com todos os valores da tabela?

colocando:
$total1=mysql_num_rows(mysql_query("SELECT * FROM `questao`.`1`"));
$total=$total1+$total2+$total3+$total4; estando todas as variaveis definidas
$op = $total1 / $total porque da erro isto? (Parse error)
a minha ideia aqui é colocar em percentagem, por isso ainda é preciso multiplicar por 100

fil79
04-03-2007, 18:07
penso k percebi.
mas como faço para comparar com todos os valores da tabela?



ex:


$ip = $_SERVER['REMOTE_ADDR'];

$query=mysql_query("select ip from votos where ip='$ip'");
$verifica=mysql_num_rows($query);

if($verifica=="0"){
//pode votar



}else{


//não pode votar


?>

em relação ao erro que dá, o raciocinio parece-me correcto....já verificaste se tem o ;?

rm_fontes
07-03-2007, 00:54
faltava o ;...

como faço para enviar varias variaveis para o flash?
nao é assim:
print "op1=$op1&op2=$op2&op3=$op3&op4=$op4&total=$total"

fil79
07-03-2007, 19:33
em actionscript usa a função LoadVarsNum

rm_fontes
07-03-2007, 22:11
em actionscript usa a função LoadVarsNum

a parte em flash eu sei mas nao aparecem os valores no flash. se eu executar o php com o comando ao fom 'echo' aparecem os valores, ao executar o php pelo flash e com o comando 'print' nao aparece nada...

chiaretto
18-12-2007, 15:34
Nesse link aqui

Contador de visitas (http://blog.c4midia.com.br/?p=14)

Tem um contador de visitas feito em flash.

Ele explica como foi feito e tem o arquivo .fla para estudo.

Se alguem quizer usar o contador é só colocar o codigo

Do jeito que esta nao precisa programar nada, nem de banco de dados.

Só ler e colocar no site.

<script src="http://www.c4midia.com.br/acessorios/contador/contador.js" type="text/javascript"></script>

E pronto.

É simples mas é legal.

Devil_Angel100
26-01-2008, 14:38
alguem me sabe dixer como faxo para numa pagina html por as letras a rodar em cirulo tipo paxo com o rato numa letra e a que esta na direita vem para a frente como ta neste site...

http://www.alvinandthechipmunksmovie.com/


espero ke me poxam ajudar cumprimentos