Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2731 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [php] Aide pour implanter un sondage!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] Aide pour implanter un sondage!

n°1472617
Fused
Posté le 08-11-2006 à 21:17:42  profilanswer
 

Hello! :hello:
 
Un petit coup de pouce svp! Je suis débutant en php, j'essaie de créer un petit sondage tout simple.
 
Je résume ma situation, dites moi ou ça va pas!
 
Je fais un sondage en php, sans base de donnée, les résultats s'enregistrent dans un fichier txt.
 
J'écris les fonctions php dans un fichier sondage.php, j'ai donc <?php include("sondage.php" ); ?> dans mon index.php.
 
J'appelle le sondage par <?php afficherSondage(); ?>.
 
Pour le formulaire... je ne sais trop ou le mettre alors je l'ai mis dans sondage.php

Code :
  1. <form name="formulaire" method="get" action="<?=$_SERVER['PHP_SELF'];?>">
  2. <b>Que fumez vous?</b><br>
  3. <input type="radio" name="choix" value="0" onClick="document.formulaire.submit();">Des cigarettes<br>
  4. <input type="radio" name="choix" value="1" onClick="document.formulaire.submit();">Des roulées<br>
  5. <input type="radio" name="choix" value="2" onClick="document.formulaire.submit();">Je suis non fumeur<br>
  6. <input type="hidden" name="vote-fait" value="ok">
  7. </form>


 
Viennent ensuite les fonctions:
 
J'ai donc besoin de:
function afficherResultats()
function ajouterVote($choix) // vote++
function afficherSondage()
et enfin
function creerSondage()
 
Je m'arrête là pour l'instant, j'avance a taton parce que je sais pas du tout ou je vais!
 
Des commentaires ou conseils là dessus?
Merci :)

mood
Publicité
Posté le 08-11-2006 à 21:17:42  profilanswer
 

n°1472620
FlorentG
Unité de Masse
Posté le 08-11-2006 à 21:20:01  profilanswer
 

Met un bouton submit pour ceux qu'on pas Javascript. Associe les intitulés de champs avec leur bouton radio via un label. N'utilise pas la méthode get (y'a effet de bord), POST ici plutôt. Et n'affiche jamais comme ça PHP_SELF sans escaping, on peut facilement injecter du script pour piquer les cookies associés au domaine.
 
Ca ferait une meilleure base [:dawa]

n°1472627
Fused
Posté le 08-11-2006 à 22:08:33  profilanswer
 

J'ai modifié le formulaire, je pense qu'il est OK, par contre le label dont tu parles se définie ou?
 

Citation :

<form name="formulaire" method="post" action="sondage.php">
 <b>Que fumez vous?</b><br>
 <input type="radio" name="choix" value="0">Des cigarettes<br>
 <input type="radio" name="choix" value="1">Des roulées<br>
 <input type="radio" name="choix" value="2">Je suis non fumeur<br>
 <input type="submit" value="OK">  
</form>

n°1472632
FlorentG
Unité de Masse
Posté le 08-11-2006 à 22:14:45  profilanswer
 

Faut mettre un id sur les radio, et associer un label. Et faut mettre un div, on peut pas mettre des champs comme ça dans un form à l'arrache. Et un fieldset pour le titre [:dawak] Et l'attribut name de form existe plus
 

Code :
  1. <form id="formulaire" method="post" action="sondage.php">
  2.   <fieldset>
  3.     <legend>Que fumez vous?</legend>
  4.     <input type="radio" name="choix" id="choix0" value="0"> <label for="choix0">Des cigarettes</label><br>
  5.     <input type="radio" name="choix" id="choix1" value="1"> <label for="choix1">Des roulées</label><br>
  6.     <input type="radio" name="choix" id="choix2" value="2"> <label for="choix2">Je suis non fumeur</label><br>
  7.     <input type="submit" value="OK"> 
  8.   </fieldset>
  9. </form>


Là on est bon.
 
Sinon donc dans sondage.php, faut vérifier que le formulaire a été envoyé (test si la méthode HTTP est POST). Si c'est le cas, faut vérifier qu'une valeur a été transmise et est bien 0, 1 ou 2. Si c'est le cas, faut ouvrir le fichier et y mettre la valeur... Ca c'est pour le principe général

n°1472640
Fused
Posté le 08-11-2006 à 22:28:26  profilanswer
 

Oki merci, c'est vrai que le fieldset change tout ^^
Je bosse sur le reste pour l'instant, je reviendrai probablement ici! Sinon tant mieux!

n°1472641
FlorentG
Unité de Masse
Posté le 08-11-2006 à 22:29:01  profilanswer
 

Ok ! Ben essaye de faire un peu la partie PHP, et hésite pas si t'as des questions

n°1473029
Fused
Posté le 09-11-2006 à 15:06:19  profilanswer
 

Voilà, ça a avancé!
 
En s'inspirant de C, et sans fonctions, a la barbare, mais c'est pour commencer!
 
Voilà sondage.php, les enregistrements sont fait dans sondage.txt
 

Code :
  1. <?php
  2.     $choix = $_POST['choix'];
  3. echo "choix : ";
  4. echo $choix;
  5. $fr = fopen("sondage.txt","r" );
  6. $c1=fgets($fr,10);
  7. $c2=fgets($fr,10);
  8. $c3=fgets($fr,10);
  9. fclose($fr);
  10. $fw = fopen("sondage.txt","r+" );
  11. if ($choix==0)
  12. {
  13. $c1=$c1+1;
  14. fputs($fw,$c1);
  15. echo $c1;
  16. echo "choix numero 0";
  17. }
  18. if ($choix==1)
  19. {
  20. $c2=$c2+1;
  21. $int= fgets($fw,$c2);
  22. fputs($fw,$c2);
  23. echo $c2;
  24. echo "choix numero 1";
  25. }
  26. if ($choix==2)
  27. {
  28. $c3=$c3+1;
  29. $int= fgets($fw,10);
  30. $int= fgets($fw,10);
  31. fputs($fw,$c3);
  32. $c3++;
  33. echo $c3;
  34. echo "choix numero 2";
  35. }
  36. fclose($fw);
  37. /////////////////////////////////////////////////////////////////////////
  38. echo "<br><br>resultat : ";
  39. echo "<br>cigarettes : "; echo $c1;
  40. echo "<br>roulees : "; echo $c2;
  41. echo "<br>non fumeur : "; echo $c3;
  42. echo "<br>total des votes : "; echo $c1+$c2+$c3;
  43. ?>


 
Vous allez me dire qu'on peut voter indéfiniment sans doute et je vous l'accorde mais il faut bien commencer par qq chose!
Qu'en pensez vous?


Message édité par Fused le 09-11-2006 à 15:07:20
n°1473106
FlorentG
Unité de Masse
Posté le 09-11-2006 à 16:45:13  profilanswer
 

C'est un bon début [:dawa] Y'a bien sûr matière à optimiser le code (plus pour la lisibilité que la rapidité), mais c'est bien pour un premier essai

n°1474831
Fused
Posté le 13-11-2006 à 19:36:24  profilanswer
 

J'ai bien avancé, ça commence à devenir propre!
Juste un truc, comment faire pour que le résultat du sondage s'affiche au même endroit sur mon document index.php et nom sur une nouvelle page?
 
J'ai un fichier sondage.php (formulaire), avec un include dans index.php qui qu'il y apparaisse.
Et le fichier sondage.php se connecte a sondage.inc.php pour traiter le résultat mais ce fichier n'a pas d'importance pour ça je pense.
 
Merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [php] Aide pour implanter un sondage!

 

Sujets relatifs
[résolu] Besoin d'aide pour écrire une requête SQL compliquéeaide en c # sur une erreur CS01117
Aide En C++ Suite De Conway (Urgent!!!)Aide HTML
aide en c : ds1621Aide programme C++
aide pour un programme en c++Besoin d'aide pour une expression régulière
demande d'aide et avis sur jeu de F1Besion d'aide pour l'édition d'un site.
Plus de sujets relatifs à : [php] Aide pour implanter un sondage!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR