joaocasta 3 Denunciar mensagem Publicado 3 de Março de 2013 (editado) Boas tardes pessoal.Tenho aqui um contador e queria que depois do contador terminar (atingir 0) corresse a página php. Tentei de várias maneiras mas depois nao consigo ler o $_GET['id'] do username. <script> var counter = 5; var cinterval; setInterval(function() { counter--; if (counter >= 1) { document.getElementById('count').innerHTML = 'Wait ' + counter + ' seconds'; } // Display 'counter' wherever you want to display it. if (counter === 0) { document.getElementById('count').innerHTML = '[CREDIT_MESSAGE]'; clearInterval(cinterval); } }, 1000); </script> </head> <body> <span id="count">Wait 5 seconds</span> <?php @ini_set("memory_limit","12M"); include("vars.php"); include("dbconnect.php"); include("funcs.php"); include("geoip.php"); @extract($_GET); @extract($_SERVER); @extract($_POST); $ip = $REMOTE_ADDR; $refurl = $HTTP_REFERER; if (!$refurl){ $refurl="NO_REF"; $curapproved="NO_REF"; } $eredm = mysql_query("SELECT * FROM ptpdesign"); extract(mysql_fetch_array($eredm)); $pagedesign=str_replace('[sITEURL]',$site_url,$pagedesign); $pagedesign=str_replace('[member_ID]',$id,$pagedesign); $ma = date("Y-m-d"); $error=0; $eredm = mysql_query("SELECT * FROM ptphits WHERE h_date='$ma' AND h_user='$id' AND h_ip='$ip' AND h_referrer='$refurl'") or die(mysql_error()); // már volt ilyen hit if (mysql_num_rows($eredm)>0) $error = 1; if (!$refurl=="NO_REF"){ $ok = 0; $eredm = mysql_query("SELECT * FROM ptpapproved"); while($sor=@mysql_fetch_array($eredm)){ @extract($sor); if (substr_count($refurl,$url)>0) { $ok=1; $curapproved=$url; } } if ($ok==0) $error = 2; } if ($error == 1) $kiir = "User <b>$id</b> has already received credit for your visit today"; if ($error == 2) $kiir = "The site where the hit comes from is not approved on our site"; if ($error == 0){ $objGeoIP = new GeoIP(); $objGeoIP->search_ip($ip); if ($objGeoIP->found()) { $curcountry=$objGeoIP->getCountryName(); $eredm = mysql_query("SELECT * FROM countries WHERE country='$curcountry'") or die(mysql_error()); if (mysql_num_rows($eredm)==0){ $shouldcredit=$def_credit; $tier=0; } else { $s=mysql_fetch_array($eredm); $tier = $s["tier"]; $e = mysql_query("SELECT tcredit,tname FROM tiers WHERE tid=$ctier"); $s=mysql_fetch_array($e); $shouldcredit=$s["tcredit"]; } } else { $shouldcredit = $def_credit; $tier=0; } if (!$curapproved=="NO_REF"){ $eredm = mysql_query("UPDATE ptpapproved SET tothits=tothits+1, totcredits=totcredits+$shouldcredit WHERE url='$curapproved'") or die(mysql_error()); } // choosing the site to show $eredm = mysql_query("SELECT * FROM ptpsites ORDER BY rand()") or die(mysql_error()); if (mysql_num_rows($eredm)==0){ // if no site then showing the default one $showurl = $def_site; } else { $sor = mysql_fetch_array($eredm); $showurl = $sor["url"]; $showurlid = $sor["siteid"]; $e = mysql_query("UPDATE ptpsites SET credits=credits-1 WHERE siteid=$sor[siteid]") or die(mysql_error()); } if (!$showurlid) $showurlid=0; // crediting the user, adding the hit in the database $eredm = mysql_query("INSERT INTO ptphits(h_date,h_user,h_ip,h_referrer,h_site) VALUES('$ma','$id','$ip','$refurl',$showurlid)") or die(mysql_error()); $eredm = mysql_query("UPDATE users SET earned=earned+$shouldcredit,totpoints=totpoints+$shouldcredit WHERE username='$id'") or die(mysql_error()); // crediting the users upline if ($max_ref_level>0){ $eredm = mysql_query("SELECT * FROM users WHERE username='$id'") or die(mysql_error()); if (mysql_num_rows($eredm)>0){ $sor = mysql_fetch_array($eredm); extract($sor); $r[1]=$referrer1; $r[2]=$referrer2; $r[3]=$referrer3; $r[4]=$referrer4; $r[5]=$referrer5; $r[6]=$referrer6; $r[7]=$referrer7; $r[8]=$referrer8; $r[9]=$referrer9; $r[10]=$referrer10; } for ($i=1;$i<=$max_ref_level;$i++){ $ccomm=$reflevel[$i]; $refuser=$r[$i]; if ((strlen($refuser)>0) and ($refuser!="_")){ $ccredit = ($shouldcredit/100)*$ccomm; $eredm = mysql_query("UPDATE users SET refpoints=refpoints+$ccredit, totpoints=totpoints+$ccredit WHERE username='$refuser'") or die(mysql_error()); } } } $kiir = "<font color=black>User <b>$id</b> has been credited with <b>$shouldcredit</b> credits for showing you this page</font>"; } $pagedesign=str_replace('[CREDIT_MESSAGE]',$kiir,$pagedesign); if (!$showurl) $showurl=$def_site; $pagedesign=str_replace('[sITE]',$showurl,$pagedesign); // showing the banners $n = substr_count($pagedesign,'[bANNER'); if ($n>0){ for ($i=1;$i<=$n;$i++){ $cbanner = getbanner(); $cstring = '[bANNER'.$i.']'; $pagedesign=str_replace($cstring,$cbanner,$pagedesign); } } // showing all textlinks $allinks = getalllinks(); $pagedesign=str_replace('[ALLTEXTLINK]',$allinks,$pagedesign); // showing random textlinks $n = substr_count($pagedesign,'[TEXTLINK'); if ($n>0){ for ($i=1;$i<=$n;$i++){ $clink = getrandomtextlink(); $cstring = '[TEXTLINK'.$i.']'; $pagedesign=str_replace($cstring,$clink,$pagedesign); } } print($pagedesign); ?> A página com o contador está na tabela ptpdesign, por isso é que tenho essa query lá em cima. Sei que aqui é o espaço para javascript, mas não sabia onde meter esta questão. Editado 13 de Março de 2013 por joaocasta Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 4 de Março de 2013 Não percebo a pergunta. Tenta ser mais concreto em relação ao que queres. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
danimt 1 Denunciar mensagem Publicado 12 de Março de 2013 (editado) Boas, Antes de mais no teu javascript tens que assocar a variável ao setInterval pois de outra forma o clearInterval não terá nada a "limpar". cinterval = window.setInterval(function() { ... }, 1000); Depois em relação à interação com o PHP tens que, por exemplo, através de Ajax ou a submissão de um formulário, enviar os dados para o teu ficheiro PHP, e nesse lado efectuar a recepção dos dados, através do GET ou POST. Talvez a minha resposta seja um pouco vaga, no entanto se puderes fornecer mais informações acerca do pretendido poderei ajudar com mais clareza. Editado 12 de Março de 2013 por danimt 1 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
joaocasta 3 Denunciar mensagem Publicado 13 de Março de 2013 Boas danimt e brunoais. Este projecto é sobre uma página para promover e as pessoas ganham com isso. A página tem publicidades. Quando abro a página quero o contador a contar 5 segundos (já está a fazer isso), logo a seguir, quando o contador terminar (chegar ao 0), quero que o segundo código seja corrido. Porque as pessoas só irão ganhar, se o contador terminar. A url da página é assim: promote.php?id=joaocasta Como poderei levar o valor id (GET) para outra página? Espero que tenha sido claro, senão perguntem outra vez. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 13 de Março de 2013 Como poderei levar o valor id (GET) para outra página? No URL. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 13 de Março de 2013 (editado) Será mais fácil usares ID's numéricos que representem as pessoas a promover, pois podes ter 2 ou mais pessoas com o mesmo nome. Outra coisa : o uso que estás a dar à função extract() pode vir a dar-te problemas e representa uma falha de segurança no contexto que estás a usar (variáveis globais $_GET, $_SERVER, $_POST) Editado 13 de Março de 2013 por yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
joaocasta 3 Denunciar mensagem Publicado 13 de Março de 2013 Será mais fácil usares ID's numéricos que representem as pessoas a promover, pois podes ter 2 ou mais pessoas com o mesmo nome. Outra coisa : o uso que estás a dar à função extract() pode vir a dar-te problemas e representa uma falha de segurança no contexto que estás a usar (variáveis globais $_GET, $_SERVER, $_POST) Boa tarde yoda! Aqui o nome é o username e não ha nenhum igual, pois ele é sempre unico. Em relação ao extract() nao sabia e obrigado pela informação. Mas o que posso meter no lugar do extract() ? É que eu tenho o código todo numa so pagina e quando a pagina carrega o código php é logo executado, mas so quero que ele seja executado quando o contador terminar. assim as pessoas ganham logo, mesmo so vendo a pagina 1 segundo. Cumps. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 13 de Março de 2013 O extract() só representa um potencial problema de segurança nas variáveis globais, porque podem reescrever variáveis existentes no script e alterar o resultado final. Para evitar isto, podes fazer algo deste género : $post = $get = $server = array(); foreach ($_POST as $key=>$value) { $post[$key] = $value; } foreach ($_GET as $key=>$value) { $get[$key] = $value; } foreach ($_SERVER as $key=>$value) { $server[$key] = $value; } before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 13 de Março de 2013 @yoda Para que é que serve esse código? Isso é só um alias dos dados dos superglobals... Para que é que se quer isso? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
joaocasta 3 Denunciar mensagem Publicado 13 de Março de 2013 Boas yoda. Obrigado pelo código, mas gostava de saber como poderei fazer o que estava a dizer. Cumps. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 13 de Março de 2013 @yoda Para que é que serve esse código? Isso é só um alias dos dados dos superglobals... Para que é que se quer isso? Eu crio sempre alias das globais, porque quero manter tanto o valor original como quero formatar o input que delas provém. É desnecessário ao @OP, mas não inútil. @joaocasta, O que acontece quando o contador chega a zero? A página redirecciona? É feito um pedido Ajax? Se não, vais ter de fazer um deles. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 14 de Março de 2013 Eu crio sempre alias das globais, porque quero manter tanto o valor original como quero formatar o input que delas provém. É desnecessário ao @OP, mas não inútil. Pq n fazer só: $post = $_POST; $get = $_GET; $server = $_SERVER; Segundo as regras, o php copia sempre o valor do conteúdo, com arrays ele faz um deep copy. Assim é muito mais rápido que usar o foreach. Assim já tens o cache dos dados que tanto queres com muito menos processamento. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
KTachyon 278 Denunciar mensagem Publicado 14 de Março de 2013 (editado) Se o objectivo é simplesmente passar para a página, quando o contador terminar: window.location = 'promote.php?id=joaocasta' Editado 14 de Março de 2013 por KTachyon “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 14 de Março de 2013 Pq n fazer só: $post = $_POST; $get = $_GET; $server = $_SERVER; Segundo as regras, o php copia sempre o valor do conteúdo, com arrays ele faz um deep copy. Assim é muito mais rápido que usar o foreach. Assim já tens o cache dos dados que tanto queres com muito menos processamento. Validação. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
joaocasta 3 Denunciar mensagem Publicado 14 de Março de 2013 Se o objectivo é simplesmente passar para a página, quando o contador terminar: window.location = 'promote.php?id=joaocasta' Então tipo, meto o html num lado e o php noutro e corro la o codigo? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Pedro Vieira 0 Denunciar mensagem Publicado 17 de Março de 2013 Boas danimt e brunoais. Este projecto é sobre uma página para promover e as pessoas ganham com isso. A página tem publicidades. Quando abro a página quero o contador a contar 5 segundos (já está a fazer isso), logo a seguir, quando o contador terminar (chegar ao 0), quero que o segundo código seja corrido. Porque as pessoas só irão ganhar, se o contador terminar. A url da página é assim: promote.php?id=joaocasta Como poderei levar o valor id (GET) para outra página? Espero que tenha sido claro, senão perguntem outra vez. Boas joaocasta, continuo sem perceber o teu problema. A página serve para promover o que? e o que é que os utilizadores têm que fazer ? Esse id que tens em cima e queres passar é o id do proprio utilizador? ou o id do utilizador que publicou a publicidade ? Confesso que não tem experiência nesse tipo de páginas daí o meu desconhecimento na matéria. Obrigado! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
joaocasta 3 Denunciar mensagem Publicado 17 de Março de 2013 Boas joaocasta, continuo sem perceber o teu problema. A página serve para promover o que? e o que é que os utilizadores têm que fazer ? Esse id que tens em cima e queres passar é o id do proprio utilizador? ou o id do utilizador que publicou a publicidade ? Confesso que não tem experiência nesse tipo de páginas daí o meu desconhecimento na matéria. Obrigado! 1- Serve para promover os sites de outras pessoas. 2- os utilizadores têm de esperar 5 segundos para receber. 3- o id é do utilizador. Cumps. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites