Jump to content

Recommended Posts

Posted (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 by joaocasta
Posted

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%.

  • 2 weeks later...
Posted (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 by danimt
  • Vote 1
Posted

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. 😛

Posted

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%.

Posted (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 by yoda
Posted

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.

Posted

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;
}

Posted

@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%.

Posted

@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.

Posted

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%.

Posted (edited)

Se o objectivo é simplesmente passar para a página, quando o contador terminar:

window.location = 'promote.php?id=joaocasta'
Edited 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

Posted

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!

Posted

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. 😉

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.