joaocasta Posted March 3, 2013 at 04:47 PM Report #497761 Posted March 3, 2013 at 04:47 PM (edited) 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. Edited March 13, 2013 at 12:58 PM by joaocasta
brunoais Posted March 4, 2013 at 01:48 PM Report #497843 Posted March 4, 2013 at 01:48 PM 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%.
danimt Posted March 12, 2013 at 11:01 PM Report #498960 Posted March 12, 2013 at 11:01 PM (edited) 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. Edited March 12, 2013 at 11:18 PM by danimt 1 Report
joaocasta Posted March 13, 2013 at 08:37 AM Author Report #498993 Posted March 13, 2013 at 08:37 AM 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. 😛
brunoais Posted March 13, 2013 at 09:01 AM Report #498996 Posted March 13, 2013 at 09:01 AM 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%.
yoda Posted March 13, 2013 at 11:45 AM Report #499019 Posted March 13, 2013 at 11:45 AM (edited) 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) Edited March 13, 2013 at 11:48 AM by yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction
joaocasta Posted March 13, 2013 at 01:04 PM Author Report #499035 Posted March 13, 2013 at 01:04 PM 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.
yoda Posted March 13, 2013 at 08:06 PM Report #499105 Posted March 13, 2013 at 08:06 PM 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
brunoais Posted March 13, 2013 at 10:39 PM Report #499129 Posted March 13, 2013 at 10:39 PM @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%.
joaocasta Posted March 13, 2013 at 10:42 PM Author Report #499133 Posted March 13, 2013 at 10:42 PM Boas yoda. Obrigado pelo código, mas gostava de saber como poderei fazer o que estava a dizer. Cumps.
yoda Posted March 13, 2013 at 10:56 PM Report #499139 Posted March 13, 2013 at 10:56 PM @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
brunoais Posted March 14, 2013 at 10:35 AM Report #499158 Posted March 14, 2013 at 10:35 AM 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%.
KTachyon Posted March 14, 2013 at 11:50 AM Report #499171 Posted March 14, 2013 at 11:50 AM (edited) Se o objectivo é simplesmente passar para a página, quando o contador terminar: window.location = 'promote.php?id=joaocasta' Edited March 14, 2013 at 11:50 AM by 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
yoda Posted March 14, 2013 at 12:58 PM Report #499182 Posted March 14, 2013 at 12:58 PM 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
joaocasta Posted March 14, 2013 at 01:12 PM Author Report #499184 Posted March 14, 2013 at 01:12 PM 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?
Pedro Vieira Posted March 17, 2013 at 01:09 PM Report #499478 Posted March 17, 2013 at 01:09 PM 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!
joaocasta Posted March 17, 2013 at 01:55 PM Author Report #499479 Posted March 17, 2013 at 01:55 PM 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. 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now