Page 1 sur 1

Fonctions de bouton en php ?

Posté : 30 mars 2006, 21:12
par zapibranigan
Bonjour, j'aimerais realiser un bouton tout bete, qui lorsque l'on clique dessus, incremente une variable entiere de 1, cette variable etant comprise dans un fichier texte. Jusque la vous me direz utilise de l'html basique, c'est ce que j'ai fait, mais j'obtiens une erreur avec le code suivant :


<html>
<body>
<FORM ACTION="<?php
				$fp = fopen("compteur.txt","r+"); 
				$compteur = fgets($fp,11);  
				$compteur++;         
				fseek($fp,0);                     
				fputs($fp,$compteur);            
				fclose($fp);                      
				?>">
<INPUT TYPE="SUBMIT" VALUE="Incrementation"></FORM>

</body>
</html>
En effet, lorsque j'actualise ma page, mon fichier compteur.txt est incrementer, sans avoir besoin de cliquer sur le bouton. J'ai cherche cet apres midi l'erreur qui doit etre minime mais je ne vois vraiment pas :cry:

A mon avis, cela vient du fait qu'on ne peut pas mettre un bout de code php dans la balise < FORM ACTION>...

Posté : 30 mars 2006, 21:29
par Daywalker_mso
A mon avis le probleme est simple et tu a d'ailleur trouvé par toi meme, on ne peut pas ajouter de code au niveau du bouton a moins de mettre du js.

Il est tout de meme possible de faire fonctionner ton code:

comme ceci:

Code : Tout sélectionner

<?php $fp = fopen("compteur.txt","r+"); $compteur = fgets($fp,11); $compteur++; fseek($fp,0); fputs($fp,$compteur); fclose($fp); ?> <html> <body> <form action="page.php">// la page doit etre la meme, autrement dit celle dans laquelle on travail en ce moment <input type="submit" name="bouton" value="Ok> </form> </body> </html>

Re: Fonctions de bouton en php ?

Posté : 30 mars 2006, 21:30
par Truc
Salut,
A mon avis, cela vient du fait qu'on ne peut pas mettre un bout de code php dans la balise < FORM ACTION>...
Si on peux mais pas ce genre de code.

place les lignes de traitement dans un fichier séparé et dans l'attribut action le chemin vers ce fichier.

Noublis pas de tester si on arrive sur cette page (contenant le traitement, l'incrémentation) depuis le formulaire donc si une varaible POST existe sinon pour éviter qu'on puisse taper l'url et incrémenter sans cesse

Posté : 30 mars 2006, 21:38
par zapibranigan
je suis completement debutant Truc, comment tu peux faire ca :
Noublis pas de tester si on arrive sur cette page (contenant le traitement, l'incrémentation) depuis le formulaire donc si une varaible POST existe sinon pour éviter qu'on puisse taper l'url et incrémenter sans cesse
Y'a t'il un moyen de tester la page precedente du navigateur ? Ou bien ce n'est pas du tout comme cela qu'il faut proceder ?

Posté : 30 mars 2006, 21:41
par iclo
Petit rappel : Le code php est exécuté côté serveur, et pas côté client.
Le code php doit être donc être exécuté après un submit via u button, lors qu'on redemande la page au serveur, on lui fait exécuter la partie incrémentation.
Pour éviter que cela ne soit fait à chaque chargemet de la page, mais bien, lors du click sur le boutton, il te suffit de tester si le bouton a été cliquer avec un simple isset, qui vérifie si on récupère bien une variable du nom du bouton.

Posté : 30 mars 2006, 21:55
par zapibranigan
Si on fait un test en utilisant la fonction isset, j'en deduis que cette fonction est du php : comment s'en servir ? j'ai regarde sur phpdebutant a l'instant, mais le seul tuto ou cette fonction est utilisee est pour un gros formulaire, pas juste un ptit bouton, du coup je comprend pas grand chose :(

Posté : 30 mars 2006, 21:56
par Truc
Regarde ce petit tuto pour un formulaire de base tu peux t'en inspirer :wink:
mais le seul tuto ou cette fonction est utilisee est pour un gros formulaire, pas juste un ptit bouton
chose faite :lol:

Posté : 30 mars 2006, 22:21
par zapibranigan
merci truc celui la j'arrive a comprendre :D

Topic resolu !