Sondage php
Résolu
baujerome
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai repris un script php (sans base de donnée) et je l'ai intégré dans ma page. Tout fonctionne très bien sauf que j'ai remarqué qu'à l'affichage des résultats, les cases à cocher étaient toujours là, et aussi qu'avant de voter, les barres de résultat étaient déjà affichées.
Je suis nul en php et je me demandais s'il y avait moyen d'arranger ce script pour que l'affichage des résultats ne se fasse qu'après un vote et qu'il n'y ait plus que ça d'affiché. Et aussi qu'avant le vote, les résultats ne soient pas visibles. En espérant être clair ^^ ...
Voici le script :
Et le voici placé (vite fait bien fait) dans une page : http://www.icemanf1.com/sondage.php
Merci d'avance pour votre aide ...
j'ai repris un script php (sans base de donnée) et je l'ai intégré dans ma page. Tout fonctionne très bien sauf que j'ai remarqué qu'à l'affichage des résultats, les cases à cocher étaient toujours là, et aussi qu'avant de voter, les barres de résultat étaient déjà affichées.
Je suis nul en php et je me demandais s'il y avait moyen d'arranger ce script pour que l'affichage des résultats ne se fasse qu'après un vote et qu'il n'y ait plus que ça d'affiché. Et aussi qu'avant le vote, les résultats ne soient pas visibles. En espérant être clair ^^ ...
Voici le script :
<? $titre = 'sondage'; // = nom du fichier dans lequel est stocké les votes $question = 'Vous supportez Kimi depuis :'; $reponse[1] = 'qu\'il est en F1'; $reponse[2] = 'qu\'il est chez McLaren'; $reponse[3] = 'qu\'il est chez Ferrari'; $reponse[4] = 'qu\'il est champion'; $reponse[5] = 'toujours'; $reponse[6] = 'jamais'; $nb_max_votes = 1; // 0 si illimité // MODIFICATION DU SONDAGE $choix = count($reponse); if (isset($_GET['vote'])) { $resultats = fopen("$titre.txt", "r+"); $vote = $_GET['vote']; for ($numero = 1; $numero <= $choix; $numero ++) { $ligne[$numero] = (int) fgets($resultats); if ($numero == $vote) { $ligne[$numero] ++; } if (isset($donnees_votes)) { $donnees_votes = $donnees_votes . "\n" . $ligne[$numero]; $nb_votes += $ligne[$numero]; // comptage du nombre de votes } else { $donnees_votes = $ligne[$numero]; $nb_votes = (int) $ligne[$numero]; } } fseek ($resultats, 0); if($nb_votes<=$nb_max_votes OR $nb_max_votes==0) fputs ($resultats, $donnees_votes); // écriture des données fclose($resultats); } // LECTURE DU SONDAGE $resultats = fopen("$titre.txt", "r"); $numero = 1; while ($numero <= $choix) // attribution d'un nombre pour chaque vote à l'array $resultat[] { $resultat[$numero] = fgets($resultats); if ($resultat[$numero] == NULL) // on remplace les lignes vides du fich txt par 0 { $resultat[$numero] = 0; } $numero ++; } $total_votes = 0; // calcul du total des votes foreach($resultat as $nb_resultat) $total_votes += $nb_resultat; if ($total_votes == 0) // éviter la division par 0 { $total_votes = 1; } $numero = 1; while ($numero <= $choix) // transformation du nombre de vote en pourcentages { $pourcentage[$numero] = $resultat[$numero] / $total_votes * 100; $numero ++; } $long_max_bloc = 120; // longueur maximale du curseur pour un vote en pixels // affichage des barres et du nombre de votes $numero = 1; echo ('<div class="Style3" align="center">'. $question . '</div><br /><form action=""> '); while ($numero <= $choix) { echo ('<div class="choix"><label><input type="radio" name="vote" value="' . $numero . '" />'. $reponse[$numero] .'</label> <br /> <img src="images/sondage_barre.jpg" height="10"width="' . $pourcentage[$numero] / 100 * $long_max_bloc . '" alt="'.round($pourcentage[$numero]).'%" /> <span style="font-size:80%;"><strong>' . $resultat[$numero] . ' votes</strong></span></div>'); // echo ($pourcentage[$numero] . '%'); $numero ++; } echo ('<div align="center"><input type="image" src="images/bouton.jpg" value="envoyer">'); echo ('</div></form>'); fclose($resultats); ?>
Et le voici placé (vite fait bien fait) dans une page : http://www.icemanf1.com/sondage.php
Merci d'avance pour votre aide ...
A voir également:
- Sondage php
- Sondage facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Framadate sondage gratuit - Guide
- Expert php pinterest - Télécharger - Langages
- Comment épingler un sondage sur whatsapp - Accueil - Messagerie instantanée
3 réponses
Tourne-toi vers les cookies : tu place un cookie au moment du vote et tu n'affiches les résultats que si le cookie est présent.
Euh merci pour ta réponse, mais je n'y connais strictement rien et je ne sais pas comment faire ... Qqn pourrait m'expliquer ? Merci
Salut, ce site explique bien mieux que je pourrais le faire comment utiliser le cookies en PHP : http://phpcodeur.net/articles/php/cookies
Si tu as d'autres questions n'hésite pas.
Si tu as d'autres questions n'hésite pas.
Merci ...
je comprends mieux ce qu'est un cookie, mais je ne vois pas comment je pourrai l'utiliser pour effectuer ce que je souhaite ...
je comprends mieux ce qu'est un cookie, mais je ne vois pas comment je pourrai l'utiliser pour effectuer ce que je souhaite ...
Relis ma première réponse : le cookie est envoyé au serveur à chaque fois que la page est chargée. Dans ton script, tu vérifies la présence du cookie et tu affiches ce que tu veux en fonction. Voilà ce que ça donnerait en pseudo-code, à toi de l'adapter en PHP :
Et une fois que le formulaire de vote a été validé (donc dans le code du script qui reçoit ce formulaire), tu positionne le cookie.
si le cookie est présent alors afficher synthèse des résultats sinon afficher formulaire de vote finsi
Et une fois que le formulaire de vote a été validé (donc dans le code du script qui reçoit ce formulaire), tu positionne le cookie.