cookies

cookies - PHP - Programmation

Marsh Posté le 17-05-2003 à 19:07:19    

Code :
  1. $fp1 = fopen("./poll.answers.1", "r" );
  2. $fp2 = fopen("./poll.answers.2", "r" );
  3. $Answer1count = fread($fp1, filesize("./poll.answers.1" ));
  4. $Answer2count = fread($fp2, filesize("./poll.answers.2" ));
  5. fclose($fp1);
  6. fclose($fp2);
  7. if($Answer == "1" ):
  8. $Answer1count++;
  9. endif;
  10. if($Answer == "2" ):
  11. $Answer2count++;
  12. endif;
  13. $fp1 = fopen("./poll.answers.1", "w+" );
  14. $fp2 = fopen("./poll.answers.2", "w+" );
  15. fputs($fp1, $Answer1count);
  16. fputs($fp2, $Answer2count);
  17. fclose($fp1);
  18. fclose($fp2);
  19. $fp1 = fopen("./poll.answers.1", "r" );
  20. $fp2 = fopen("./poll.answers.2", "r" );
  21. $Answer1count = fread($fp1, filesize("./poll.answers.1" ));
  22. $Answer2count = fread($fp2, filesize("./poll.answers.2" ));
  23. fclose($fp1);
  24. fclose($fp2);
  25. $v1 = $Answer1count + $Answer2count;
  26. $v2 = 100 / $v1;
  27. $Answer1count = $Answer1count * $v2;
  28. $Answer2count = $Answer2count * $v2;
  29. $resultat1 = round($Answer1count);
  30. $resultat2 = round($Answer2count);


voila un script php que j'inclus dans ma page index. je voudrais que quand on l'exécute pour la 1ere fois, un cookie se cré et ne laisse plus s'exécuter le code la 2eme fois
est ce que vous pourriez me donner le code a insérer précisément? j'ai deja essayer plusieurs chose non concluantes (avec easyphp).
merci

Reply

Marsh Posté le 17-05-2003 à 19:07:19   

Reply

Marsh Posté le 17-05-2003 à 19:17:39    

il faut que quand tu appelles ce script, tu le precedes de la mise en place d'un cookie avec un booleen comme indication .. (genre $script_execute=1;) -- setcookie() tjrs avant d'envoyer un flux
 
.. comme ca, lors d'un nouvel appel au script, tu testes pour savoir s'il doit etres executé ou pas  [:spamafote]

Reply

Marsh Posté le 17-05-2003 à 19:23:25    

beuh j'ai rien compris... :??:  désolé, je suis pas très calé. est ce que tu pourrais m'expliquer mieux avec des exemples précis dans mon script stp? :(

Reply

Marsh Posté le 17-05-2003 à 19:24:24    

et c'est quoi un flux???  :ouch:

Reply

Marsh Posté le 17-05-2003 à 20:04:28    

thwz a écrit :

et c'est quoi un flux???  :ouch:  


 
flux de données, les cookies doivent être envoyé avant le html....

Reply

Marsh Posté le 17-05-2003 à 20:07:33    

en fait, ce script sera intégré (par require) dans une page en html... donc ça marchera pas?

Reply

Marsh Posté le 17-05-2003 à 20:08:41    

kel script ? celui que tu as mis plus haut ou celui des cookies ?

Reply

Marsh Posté le 17-05-2003 à 20:12:55    

ben en fait ca c'est un sondage.
disons que:
j'ai une page html index.php ou en plein milieu ya une include du genre require(querystring)  :D .
le script en haut c'est un sondage, et j'ai besoin dans cookies dans ce script.
comment faire?

Reply

Marsh Posté le 17-05-2003 à 20:16:06    

en fait tu en as besoin pour savoir s'il a voté ou pas c ca ?

Reply

Marsh Posté le 17-05-2003 à 20:16:39    

voila c'est exactement ca

Reply

Marsh Posté le 17-05-2003 à 20:16:39   

Reply

Marsh Posté le 17-05-2003 à 20:27:12    

http://www.phpfrance.com/tutorials/index.php?id=23
 
ca c'est un p'tit tuto sur les cookies ( je ne sais pas ce qu'il vaut j'ai pris le 1er venu)
alors moi je te recommande de creer un cookie dans lequel tu vas initialiser une valeur à 0; ... ( ce qui signifie que le mec n'a pas voter)
 
et pour voter il doit remplir un formulaire et le submitter ... on est d'accord ?
dans ce cas, tu rajoutes un bout de code pour mettre a jour le cookie avec valeur=1;  [:spamafote]  

Reply

Marsh Posté le 17-05-2003 à 20:31:30    

pas con... et le bout de code, dans le formulaire?
je comprends pas trop, dans un input?

Reply

Marsh Posté le 17-05-2003 à 20:38:48    

thwz a écrit :

pas con... et le bout de code, dans le formulaire?
je comprends pas trop, dans un input?


 

Code :
  1. <form name="vote" action="a_vote.php">
  2. <input type="submit" value="voter">
  3. // + le reste
  4. </form>


 
et dans la page a_vote.php au début :
 

Code :
  1. if(isset($_POST['voter'])) {
  2. // mise a jour du cookie
  3. }
  4. // dans le reste de la page TRAITEMENTS
  5. // tu fais tes INSERTS dans ta bas ou ton fichier
  6. // echo "merci d'avoir voté";

Reply

Marsh Posté le 17-05-2003 à 23:33:27    

cool, merci :jap:  
mais là est le problème! car ca ne sera pas a_vote.php mais mon index.php?script=vote !! ce script sera contenu entre 2 balises html...
sinon je vois une autre solution, c'est de faire une page d'enregistrement de vote...
mais, comment rediriger apres avoir fait les insert?
je pensais que header devait etre au début aussi...

Reply

Marsh Posté le 17-05-2003 à 23:33:53    

up :p

Reply

Marsh Posté le 18-05-2003 à 00:46:17    

thwz a écrit :

cool, merci :jap:  
mais là est le problème! car ca ne sera pas a_vote.php mais mon index.php?script=vote !! ce script sera contenu entre 2 balises html...
sinon je vois une autre solution, c'est de faire une page d'enregistrement de vote...
mais, comment rediriger apres avoir fait les insert?
je pensais que header devait etre au début aussi...


 
Y'a pas de pb  :)  
apres les inserts, tu ne peux plus te servir de header(); mais un javscript tout con te permettra une redirection automatique.
 

Code :
  1. <script type="text/javascript">
  2. window.location.href= 'mapage.php';
  3. </script>


 
 
et si tu tiens vraiment à le gerer dans la même page c'est à dire par le biais de index.php?script=vote  
 
 en tout début de page, tu fais un test :
 

Code :
  1. if($script=="vote" ) {
  2. // je mets a jour mes cookies
  3. }


 
vala  [:spamafote] , c'est plus clair ?

Reply

Marsh Posté le 18-05-2003 à 13:43:09    

ok... merci, t'es vraiment sympa. :jap:   :)  
 
voilà ce que j'ai décidé de faire:
dans ma page index.php, dans le formulaire de vote (en dessous du menu, il ne provient pas d'une include), je vais mettre un script php qui n'affichera les boutons (submit, radio) seulement si le cookie n'existe pas. Il enverra tout ça à une autre page, indépendante, par exemple vote.php, qui elle créera le cookie et fera tous les inserts... Elle affichera "Merci de votre vote!" et grace à un script js elle redirigera le browser vers index.php?script=vote, qui lui ne gérera que l'affichage et sera totalement indépendant des cookies.
 
C'est bon? :D  Je voudrais juste savoir si il n'y a rien qui va merder...
Et une question: le js de vote.php, on s'en fout qu'il soit directement dans la page ou il faut qu'il soit insérer par echo?
Et, si j'ai bien compris, ma page non exécutée donnera ça (vote.php):

Code :
  1. <?
  2. // mon script php
  3. // création du cookie
  4. // ouverture des fichiers et changement des résultats
  5. ?>
  6. <html>
  7. <body>
  8. Merci de votre vote!
  9. <script>
  10. // le js qui va rediriger vers la page d'affichage des votes
  11. </script>
  12. </body>
  13. </html>


 
tandis que dans mon index.php, dans le formulaire, j'aurais un if qui teste l'existence du cookie et affiche ou non les boutons...
 
j'ai expliquer un peu tout ça pour expliquer comment j'ai résolu mon probleme, et pour que les autres qui auraient le meme probleme en profitent... c'est un forum d'entre aide! :)  
bon, je crois que tout ça est bon mais j'aimerais comme même qu'on me le confirme, pour que j'évite de poster encore une fois! :ange:  
gros merci à simogeo. :jap:  
 
bon,  :hello:

Reply

Marsh Posté le 18-05-2003 à 13:45:55    

yes, a priori c'est ok  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed