empecher actualisation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : empecher actualisation

Re: empecher actualisation

par xTG » 06 mars 2012, 00:16

session_start() doit être la première instruction de tout script. C'est dans la doc. ;)

Re: empecher actualisation

par gdc » 06 mars 2012, 00:12

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é
}
Voila je recapitule:

les membres demarer leur surf-page en cliquant sur un lien: --> visiostart.php (inclus function credit_view_banner() )

j'ai seulement une page qui contien une <?=credit_view_banner?>


dans cette fonction jai plusieur requetes:
requete 1: On choisir une banniere dans la table sql ensuite on affiche cette banniere en indiquand dans la dans sql quelle as ete afficher
requete 2: if( time() > $_SESSION['visioout'] ){
ICI JE DOIS METRE LA CONDITION QUE SI CA FAIS MINIMUM 30sec. ALLORS ON CONTINU LES REQUETE SUIVANTE:
SI OK
requete 3: On ajoute les points au membres
requete 4: On verifi si membre a un parain si oui on lui ajoute son %.
requete 5: ICI CA ME PRENDRAI UN TIMER POUR REFRESHER LE SCRIPT

--------------------------------------------------------------------
Allors voila ce que dois faire la function
Dans ma page visiostart.php jai:
<?php
include ("info.php");
include ("scripts/functions.php");
$_SESSION['time'] = timestamp();
session_start();
?>
<?
include 'scripts/include/indexstart.php';

?>
<?$mem_login = member_login();?>
<?=credit_view_banner()?>
// ICI JAI MON SCRIPT TIMER ET MON TEXTE QUI RESTE  x SECONDE ...  
allors voila est-ce un peu plus claire dememe ???

mais las jai une erreur dans mes variable car la pub ouvre mais redirection automatiquement sur la page error


merci de tes reponce tres rapide xTG

quand jenleve
$_SESSION['time'] = timestamp();
session_start();

ca affiche une page de mon site error

sinon quand je met
$_SESSION['time'] = timestamp();
session_start();

ben ca me donne une errreur
HTTP 500 Erreur interne au serveur

Je comprend pu rien moi las :(

Re: empecher actualisation

par gdc » 05 mars 2012, 23:13

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é
}
Voila je recapitule:

les membres demarer leur surf-page en cliquant sur un lien: --> visiostart.php (inclus function credit_view_banner() )

j'ai seulement une page qui contien une <?=credit_view_banner?>


dans cette fonction jai plusieur requetes:
requete 1: On choisir une banniere dans la table sql ensuite on affiche cette banniere en indiquand dans la dans sql quelle as ete afficher
requete 2: if( time() > $_SESSION['visioout'] ){
ICI JE DOIS METRE LA CONDITION QUE SI CA FAIS MINIMUM 30sec. ALLORS ON CONTINU LES REQUETE SUIVANTE:
SI OK
requete 3: On ajoute les points au membres
requete 4: On verifi si membre a un parain si oui on lui ajoute son %.
requete 5: ICI CA ME PRENDRAI UN TIMER POUR REFRESHER LE SCRIPT

--------------------------------------------------------------------
Allors voila ce que dois faire la function
Dans ma page visiostart.php jai:
<?php
include ("info.php");
include ("scripts/functions.php");
$_SESSION['time'] = timestamp();
session_start();
?>
<?
include 'scripts/include/indexstart.php';

?>
<?$mem_login = member_login();?>
<?=credit_view_banner()?>
// ICI JAI MON SCRIPT TIMER ET MON TEXTE QUI RESTE  x SECONDE ...  
allors voila est-ce un peu plus claire dememe ???

mais las jai une erreur dans mes variable car la pub ouvre mais redirection automatiquement sur la page error


merci de tes reponce tres rapide xTG

Re: empecher actualisation

par xTG » 05 mars 2012, 22:17

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

Re: empecher actualisation

par gdc » 05 mars 2012, 22:12

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

par xTG » 05 mars 2012, 17:44

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

par gdc » 05 mars 2012, 17:08

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

par xTG » 02 mars 2012, 23:08

Voilà un article sur l'utilisation des sessions : http://phpdebutant.org/article69.php

Re: empecher actualisation

par gdc » 02 mars 2012, 21:47

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

par xTG » 01 mars 2012, 15:14

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

par gdc » 01 mars 2012, 14:40

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

par gdc » 29 févr. 2012, 17:19

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

par Mazarini » 29 févr. 2012, 12:49

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

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

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

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

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.