Page 1 sur 2

empecher actualisation

Posté : 28 févr. 2012, 18:51
par gdc
Bonjour

J'aimerai savoir si cest possible d'interdire une actualisation de la page par un membre quand il y a deja une actualisation automatique a tous les 30 secondes

voila ce que jai dans mon code pour le moment:

<?
include 'scripts/include/indexstart.php';
?>
<?$mem_login = member_login();?>
<?php $delai=30; header("Refresh: $delai;"); ?>

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="en-us">
<TITLE>SurfBarre - <?=$sys['companyn']?></TITLE>

</HEAD>
<BODY LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 location=0 >



<?=credit_view_banner()?>
<br />
Points de la Visionneuse <?

setlocale(LC_TIME, 'french');

echo 'pour le mois de '.strftime('%B %Y', time());

?> : <?=round(fnumb($mem_login['bar_pts']), 2)?> Pts.


</BODY>

</HTML>



Merci de votre aide.

Re: empecher actualisation

Posté : 28 févr. 2012, 18:59
par xTG
Non tu ne peux interdire cela.
Pour quelle raison veux-tu interdire l'actualisation ?
Si tu nous expliques on pourra peut être te conseiller autre chose.

Re: empecher actualisation

Posté : 28 févr. 2012, 19:07
par gdc
C que je suis entrain de faire un site avec une visioneuse de pub, allors a tous les 30 seconde je donne crédit pour avoir vu la pub durant 30 seconde, allors ce que je ne veux pas que mes membres actualise leur page visioneuse tout seul pour ne pas qui recoivent des credits en dessous de 30 seconde.

Les credits doivent etre ajouter a leur compte seulement apres le delais de refresh de la page ...

Re: empecher actualisation

Posté : 28 févr. 2012, 22:40
par cydelic
Salut,

Je pense que le meilleur moyen pour toi, n'est pas de bloque l'actualisation, ce qui est impossible, mais plutot de conserver la date de dernière affichage et si la difference entre la date de dernier affichage et la date de la nouvelle demande est de moins de 30 secondes tu gère ca. Tu peux soit afficher de nouveau la même pub soit lui enlevé des crédits.

Re: empecher actualisation

Posté : 29 févr. 2012, 10:14
par gdc
Salut,

Je pense que le meilleur moyen pour toi, n'est pas de bloque l'actualisation, ce qui est impossible, mais plutot de conserver la date de dernière affichage et si la difference entre la date de dernier affichage et la date de la nouvelle demande est de moins de 30 secondes tu gère ca. Tu peux soit afficher de nouveau la même pub soit lui enlevé des crédits.

Ok, mais je ne suis qu'un débutant desolé, mais est-ce que tu aurrai un exemple de code a metre??

encore desoler je ne suis qu'un debutant... mais je comprend quand meme assez vite mais je c pas quel genre de code faire. je sais de quoi tu parle mais je sais pas ou le metre....

voila ce que j'ai comme function dans mon fichier function.php:


function credit_view_banner() {
$visoban=0; $busrand = array();
$query = mysql_query("SELECT ID FROM adv_ban WHERE status='active'");
while ($skaiciuojami = mysql_fetch_array($query)) {$visoban++; $busrand[$visoban]=$skaiciuojami['ID'];}
if ($visoban) {
	$kents = rand(1,$visoban);
	$query = mysql_query("SELECT ban_url, ban_target, ad_bought, ad_rec FROM adv_ban WHERE ID='$busrand[$kents]'");
	if ($baneris = mysql_fetch_array($query)) {
		echo "<a target=_blank href=scripts/ban.php?id=$busrand[$kents]><img src=$baneris[ban_url] style='border-width: 0' width=468 height=60></a>";
		$viewai=$baneris['ad_rec']+1;
		$query = mysql_query("UPDATE adv_ban set ad_rec='$viewai' WHERE ID='$busrand[$kents]'");
                $query = mysql_query("UPDATE aff_ausers set bar_pts = bar_pts + 0.01 , ptexact = ptexact + 0.01 WHERE login='{$_SESSION['slogin']}'");
		}
	}

}


et cette fonction je l'apelle dans ma page visionneuse_start.php voila le code dans ma page visionneuse

<?
include 'scripts/include/indexstart.php';
?>
<?$mem_login = member_login();?>
<?php $delai=30; header("Refresh: $delai;"); ?>

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="en-us">
<TITLE>SurfBarre - <?=$sys['companyn']?></TITLE>

</HEAD>
<BODY LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 location=0 >

<?=credit_view_banner()?>
<br />
Points de la Visionneuse <?

setlocale(LC_TIME, 'french');

echo 'pour le mois de '.strftime('%B %Y', time());

?> : <?=round(fnumb($mem_login['bar_pts']), 2)?> Pts.

</BODY>

</HTML>

la facon pour enlever des points serrai bien commen puis-je faire tout cela merci

Merci de votre aide et j,espere bien que vous comprenez ce que je veux dire :)

Re: empecher actualisation

Posté : 29 févr. 2012, 12:49
par Mazarini
Tu pourrai remplacer le refresh par un redirect et ainsi passer un paramètre. tu peux également utiliser des variables de session pour mémoriser l'action précédente de l'utilisateur (date d'appel du script, pub en cours...)

Re: empecher actualisation

Posté : 29 févr. 2012, 17:19
par gdc
Tu pourrai remplacer le refresh par un redirect et ainsi passer un paramètre. tu peux également utiliser des variables de session pour mémoriser l'action précédente de l'utilisateur (date d'appel du script, pub en cours...)

merci du conseil :) mais c ce que j,aimerai reussir a faire utiliser des variable de session mais jcomprend pas commen les metre dans mon script :(

Re: empecher actualisation

Posté : 01 mars 2012, 14:40
par gdc
Merci de votre aide et de vos sugestions

J'ai resolu mon probleme avec un JavaScript et une Iframe + Timer avec negatif -1 pour etre sur que la page es charger par le timer de refresh :)


Mci encore

Re: empecher actualisation

Posté : 01 mars 2012, 15:14
par xTG
Sauf qu'il suffit de regarder le code source généré.
Prendre l'url de l'iframe et l'ouvrir dans une autre fenêtre.
Et rafraichir ou l'afficher autant qu'on le souhaite.

Re: empecher actualisation

Posté : 02 mars 2012, 21:47
par gdc
Sauf qu'il suffit de regarder le code source généré.
Prendre l'url de l'iframe et l'ouvrir dans une autre fenêtre.
Et rafraichir ou l'afficher autant qu'on le souhaite.
oui je sais,

c pour ca que ca me prendrai une fonction avec les sessions,. mais jsais pas commen l'introduire :(

domage jsuis pas un pro juste un debutant qui es entrain de faire un site ptc et surfbarre

Re: empecher actualisation

Posté : 02 mars 2012, 23:08
par xTG
Voilà un article sur l'utilisation des sessions : http://phpdebutant.org/article69.php

Re: empecher actualisation

Posté : 05 mars 2012, 17:08
par gdc
Voilà un article sur l'utilisation des sessions : http://phpdebutant.org/article69.php
merci jai lu pour les sessions ca me paret tres bien allors voila ce que jai fais pour le moment mais ca marche pas, avant que j'ajoute la fonction $_SESSION['visioon'] et visioout les points s'ajoutais au compte mais las, seulement la banniere saffiche et ne compte pas les points a donner

Voila la fonction que j'ai creer:
function credit_view_banner() {
global $sys, $timestamp; $visoban=0; $busrand = array();
$query = mysql_query("SELECT ID FROM adv_ban WHERE status='active'");
while ($skaiciuojami = mysql_fetch_array($query)) {$visoban++; $busrand[$visoban]=$skaiciuojami['ID'];}
if ($visoban) {
	$kents = rand(1,$visoban);
	$query = mysql_query("SELECT ban_url, ban_target, ad_bought, ad_rec FROM adv_ban WHERE ID='$busrand[$kents]'");
	if ($baneris = mysql_fetch_array($query)) {
		echo "<a target=_blank href=scripts/ban.php?id=$busrand[$kents]><img src=$baneris[ban_url] style='border-width: 0' width=468 height=60></a>";
		$viewai=$baneris['ad_rec']+1;
	$query = mysql_query("UPDATE adv_ban set ad_rec='$viewai' WHERE ID='$busrand[$kents]'");
}
// verification du temps passer sur la page si out est plus petit que in 	
if ($_SESSION['visioout'] < $_SESSION['visioin']){

// si ok temp passer on envoi les pts sur le membre et parrain et ajoute les stats de la barre

   $query = mysql_query("UPDATE aff_ausers set bar_pts = bar_pts + 0.01 , ptexact = ptexact + 0.01 WHERE login='{$_SESSION['slogin']}'");
		$query = mysql_query("UPDATE stat_overall set bar_tpts = bar_tpts + 0.01 , bar_mois = bar_mois + 0.01 , bar_tirage = bar_tirage + (0.01 * 0.20)");
		}
	}
 //on regarde si le visioneur a un parrain si oui on ajoute les points au parrain
$query = mysql_query("SELECT referrer, ptref, ptexact FROM aff_ausers WHERE login='{$_SESSION['slogin']}'"); 
	if ($member = mysql_fetch_array($query)){

		$ptref = $member['ptref'] + 0.01; $ptref = $member['ptref'] + 0.01; $darasoms = $member['referrer'];

		for ($i=1; $i<=$sys['reflvl']; $i++) {						
			$query = mysql_query("SELECT referrer, ptref, ptexact  FROM aff_ausers WHERE login='".$darasoms."'"); 
			if ($uplainas = mysql_fetch_array($query)){
				$ptref = $uplainas['ptref'] 	+ (0.01 * $sys['refupr'][$i]);    
				$ptexact  =$uplainas['ptexact']	+ (0.01 * $sys['refupr'][$i]);
				mysql_query("UPDATE aff_ausers SET ptref='".$ptref."', ptexact='".$ptexact."' WHERE login='".$darasoms."'");
				$darasoms = $uplainas['referrer'];
			}
		}
	}


}
Et dans ma page de visiobarre jai mis:
<?
$_SESSION["visioon"] = time();
$_SESSION["visioout"] = time() + 10;
?>
<?
include 'scripts/include/indexstart.php';
?>
<?$mem_login = member_login();?>


<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="en-us">
<TITLE>SurfBarre - <?=$sys['companyn']?></TITLE>

</HEAD>

----------= le reste de la page =---------
Allors quelqu'un pour mindiquer pourquoi que ma fonction ne fonctionne plus :(
et commen faire pour etre sur que le temps passer sois crediter apres avoir vue la pub durant minimum temps voulu
Merci de votre aide

Re: empecher actualisation

Posté : 05 mars 2012, 17:44
par xTG
Attention aux short_open_tag ! Si ce n'est pas activé sur le serveur ce sera pour lui du code HTML et non PHP...
Donc par précaution mieux vaux toujours utiliser <?php au lieu de <?

Ensuite pour les sessions cela vient du fait que tu as oublié le session_start() ;)

Re: empecher actualisation

Posté : 05 mars 2012, 22:12
par gdc
Attention aux short_open_tag ! Si ce n'est pas activé sur le serveur ce sera pour lui du code HTML et non PHP...
Donc par précaution mieux vaux toujours utiliser <?php au lieu de <?

Ensuite pour les sessions cela vient du fait que tu as oublié le session_start() ;)
merci, mais petit probleme de calcule.
if ($_SESSION['visioout'] < $_SESSION['visioin']){

Si dans ma fonction jai:
if ($_SESSION['visioout'] < $_SESSION['visioin']){
et ma requete

et que dans ma page php jai :

<?
$_SESSION["visioon"] = time();
$_SESSION["visioout"] = time() + 10;
?>

ben ca marche les pts mais au refresh ca continu a les crediter, car au chargement de la page je me trouve a creer un variable session visioout et visioin mais a chaque rechargement ben le meme calcul ce fais allors ce qui fais que ca donne tjrs heure + 10 seconde :(

comprend pas las las

Re: empecher actualisation

Posté : 05 mars 2012, 22:17
par xTG
Bah il faut que ce code soit sous condition. ;)
Et c'est là que les sessions sont intéressantes, car tu as enregistré la date du dernier rechargement.
if( time() > $_SESSION['visioout'] ){
  // si j'ai bien compris ton système là on a le droit d'incrémenter car le temps est écoulé
}