bouton permettant de bloquer la réactualisation auto

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 : bouton permettant de bloquer la réactualisation auto

par shen » 06 janv. 2006, 13:47

je voudrais savoir si ma syntaxe (commande en gras)est bonne:
function recup(valeur) 
{     
    if(valeur == 'Rafraichissement manuel') 
    {	
    	clearInterval(timer);
    		
	var str="<br/><a href='#' onClick=\"window.location.reload(true)\" title=\"Actualiser\"><img src='actualise.bmp' alt='actualise' /></a>";
        str +="<br /> Rafraichissement manuel";         
           
        document.getElementById("message").innerHTML=str; 
        
    } 
    else 
    {
    	
    	[b]var timer=setInterval(window.location.reload(true) ,150000);[/b]
   	document.getElementById('message').innerHTML = "Rafraichissement automatique"; 
    	
    	
    }
} 


sa me rafraichi la page mais pas a interval régulier!!!
j'y pense mais c'est plutot logique car à chaque rafraichissement valeur reprend sa valeur par défaut qui est rafraichissement manuel.
comment faire???

sinon une autre question, le truc ne marche pas mais bon:
var auto="<META HTTP-EQUIV=Refresh CONTENT='5'/>";
        document.getElementById('automatique').innerHTML = auto
cette commande dans else de précédemment et les balises div avec id=automatique dans head.

par shen » 05 janv. 2006, 14:08

MERCI C'est super sa marche parfaitement!!!

Maintenant j'attaque le timeout pour faire le rafraichissement automatique!!!

par Truc » 05 janv. 2006, 13:37

suffit alors d'ajouter le lien par défaut entre les balises <div id="message"> et </div>

par shen » 05 janv. 2006, 13:03

MERCI ,SA me rafraichie bien la page mais j'ai toujours le soucis que mon lien disparait!!!
mais bon c'est plutot logique car en rafraichissant ma page je récupère la valeur par défaut du bouton et que pour mon lien apparaisse je doit cliquer sur le bouton!!!

je dois afficher par défaut mon lien aussi je pense , en gros j'aurais par défaut le rafraichissement manuel!!!

par Cyrano » 04 janv. 2006, 20:10

Essaye comme ça:
var str="<br /><a href='#'  onClick=\"window.location.reload(true)\" title=\"Actualiser\"><img src='actualise.bmp' alt='actualise' /></a>";

par shen » 04 janv. 2006, 19:26

PETIT SOUCIS !!!

avec le # sa retourne sur ma page mais sans me la rafraichir!!!

donc c'était bien trop beau pour que ça soit vrai!!!

PS: je sais que je n'arrète pas de le dire mais MERCI à tous !!! Ce forum est vraiment excélent car des que quelqu'un le peu il aide et je trouve sa super!!! :o MERCI!!!
Vous m'avez tellement aidé que j'en ai un peu honte car je n'ai pas l'impression d'avoir fait grand chose!!!
MILLE MERCI[/i]

par Truc » 04 janv. 2006, 17:36

on va dire que ce n'est pas faux et si le résultat est celui souhaité :wink:

par shen » 04 janv. 2006, 17:26

Merci sa marche parfaitement !!!

tout fois une petite question :
je fais ma réactualisation avec le lien comme ça :
var str="<br />[b]<a href='#'>[/b]<img src='actualise.bmp' alt='actualise' /></a>";
est ce bien ou pas???
car avec l'autre méthode lorsque je fais mon rafraichissement, mon lien disparait!!!

par Truc » 04 janv. 2006, 15:56

le bouton disparait parce que tu utilise document.write donc "effece ce qu'il y avait avant et le remplace par ce qui est en paramètre.

essaie comme ceci:
<HTML>
<HEAD>
<SCRIPT type="text/JavaScript">
function rafraichir(valeur)
{
    var nouvelleValeur=(valeur=='Rafraichissement manuel')?'Rafraichissement automatique':'Rafraichissement manuel';
    document.forms['general'].elements['rafr'].value=nouvelleValeur;
}

function recup(valeur)
{    
    if(valeur == 'Rafraichissement manuel')
    {
         var str="<br /><a href='test.php?limite=$limite&debut=$debut&erreur=$erreur'><img src='actualise.bmp' alt='actualise' /></a>";
		 str +="<br /> Rafraichissement manuel";		 
		  
         document.getElementById("message").innerHTML=str;
    }
    else    
	     document.getElementById('message').innerHTML = "Rafraichissement automatique";
}
</SCRIPT>
</HEAD>
<BODY>
	<FORM id="general" ACTION="sireimphp.php" METHOD="GET">
		<INPUT TYPE="button" id="rafr" VALUE="Rafraichissement manuel" onClick="recup(this.value);rafraichir(this.value);"/>
	</FORM>
	
	<div id="message">
	</div>
</BODY>

</HTML>
un seul bouton me semble suffisant puisque l'action est modifié pour éviter d'en avoir 2 justement.

par shen » 04 janv. 2006, 13:45

Ok Merci en fait c'est la premiere fois que je poste dans un forum et donc je ne savais pas et j'ai cru que ça se faisait automatiquement et j'ai trouvé ça bizarre!!!
LOL :lol:
j'y penserais la prochaine fois!!!
Merci

par zeus » 04 janv. 2006, 13:36

modération : shen, pense bien à utiliser les balises
 qui se trouve juste au dessus de la zone de saisie du texte.
J'ai modifié tout les messages d'avant mais je ne compte pas le faire pendant 3 jours[/color]

par shen » 04 janv. 2006, 13:32

bonjour,

Merci pour tes conseils Cyrano, sa m'aide vraiment beaucoup!!!

un petit soucis notamment:
je fais ma fonction ou je récupère la valeur écrit sur le bouton et en fonction de cette valeur (ici le Rafraichissement manuel) j'affiche un lien qui permettrait le rafraichissement à chaque click du lien.

mon code:
<HTML> 
<HEAD> 
<SCRIPT type="text/JavaScript"> 
function rafraichir(valeur)
{
	var nouvelleValeur=(valeur=='Rafraichissement manuel')?'Rafraichissement automatique':'Rafraichissement manuel';
	document.forms['general'].elements['rafr'].value=nouvelleValeur;
}

function recup()
{
	 var val=document.forms['general'].elements['rafr'].value;
	 if(val == 'Rafraichissement manuel')
	 {
	 	document.write("<br><A HREF='test.php?limite=$limite&debut=$debut&erreur=$erreur'><IMG SRC='actualise.bmp'></A>");
	 	document.write("Rafraichissement manuel");
	}
	 else	document.write("Rafraichissement automatique");
}
</SCRIPT> 
</HEAD> 
<BODY> 

<FORM id="general" ACTION="sireimphp.php" METHOD="GET"> 
<INPUT TYPE="button" id="rafr" VALUE="Rafraichissement manuel" onClick="recup();rafraichir(this.value);"/>
<!INPUT TYPE="button" id="rafr" VALUE="Rafraichissement automatique" onClick="recup()"/> 
 
</FORM>
</BODY> 

</HTML>
le probleme s'est que mon bouton disparait quand mon lien s'affiche!!!
comment faire pour que mon bouton reste affiché avec l'autre libéllé et mon lien juste en dessous???

Merci

par Cyrano » 03 janv. 2006, 19:43

Alors il faut créer une petite fonction qui va récupérer la valeur inscrite sur le bouton, un peu de la même manière que celle qui la modifie.

En fonction de cette valeur, tu pourras alors soit faire afficher un lien re rafraichissement manuel en modifiant par exemple une valeur de propriété CSS display en la mettant à inline ou block et dans l'autre sens à none
Soit jouer sur un time-out pour recharger. Je ne suis pas certain que tu puisses rajouter une balise meta, mais tu peux faire une redirection de la page sur elle même, ça fonctionnerait aussi bien.

Tu trouveras pas mal de doc sur aidejavascript.com

par shen » 03 janv. 2006, 19:38

javascript semble etre moins casse tete que le php au niveau des lignes de commandes.
Il me semble en tout cas!!!

par shen » 03 janv. 2006, 19:33

oui pourquoi pas?