$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 = 200; // longueur maximale du curseur pour un vote en pixels
// affichage des barres et du nombre de votes
$numero = 1;
if(empty($_COOKIE['sondage'.$$titre.'']) && !isset($_COOKIE['sondage'.$$titre.''])){
echo ('
j'ai récupérer cette source sur le site puis je l'ai modifié un peu mais le problème est que le vote n'est pas pris en charge : on a beau voter l'incrémentaiton du vote ne se fait pas
BioSs007
Messages postés19Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention 6 septembre 2013 19 nov. 2007 à 20:06
Merci à tous !
j'ai règler le prblème en remplaçant GET par POST et en faisant suivre les varriables qui allaient avec ^_^
:)
Code finale :
function sondage ($titre, $question, $reponse1, $reponse2, $reponse3, $reponse4, $nb_max_votes) {
// INFORMATIONS SUR LE SONDAGE // $titre 'sondage'; // nom du fichier dans lequel est stocké les votes
// $question = 'Comment trouvez-vous ce site ?';
$reponse[1] = $reponse1;
$reponse[2] = $reponse2;
$reponse[3] = $reponse3;
$reponse[4] = $reponse4;
// $nb_max_votes = 0; // 0 si illimité
// MODIFICATION DU SONDAGE
$choix = "4";
if (isset($_POST['vote']))
{
if(empty($_COOKIE['sondage'.$titre.'']) && !isset($_COOKIE['sondage'.$titre.''])){
$resultats = fopen("sondage".$titre.".txt", "r+") or die('Erreur d\'ouverture de fichier');
$vote = $_POST['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("sondage".$titre.".txt", "r") or die('Erreur d\'ouverture de fichier');
$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 = 200; // longueur maximale du curseur pour un vote en pixels
// affichage des barres et du nombre de votes
$numero = 1;
if(empty($_COOKIE['sondage'.$titre.'']) && !isset($_COOKIE['sondage'.$titre.''])){
echo ('
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 nov. 2007 à 06:39
salut
ce script n'est pas bien code...
pourquoi ? parce-que tu ne verifies rien... exemple :
$resultats = fopen("sondage".$titre.".txt", "r");
ici, le fichier peut-etre en lecture seule, et la, bah rien ne marche et tu ne sauras pas pourquoi....
met ton error_reporting a E_ALL et fait des fopen(..., ...) or die('erreur d\'ouverture de ficheir');
BioSs007
Messages postés19Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention 6 septembre 2013 12 nov. 2007 à 19:59
Salut coucou747 !
j'ai vérifier en remplaçant les variable via les données brut, l'incrémentation du vote ne se fait toujours pas correctement.
Mais en testant sur une page vierge, ça marche très bien !
Je ne comprends donc pas pourquoi ça ne marche pas :|
Où se siturai mon problème ?!
cs_spoonisback
Messages postés72Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 5 février 2010 13 nov. 2007 à 13:23
Salut$reponse array($reponse1, $reponse1, $reponse2, $reponse3, $reponse4);> $reponse1 est en double...c'est normal ?
Comme c'est un peu bazard, je vais essayer de récupérer ton code et de le 'nettoyer' pour voir..
Je te tiendrai au courant
++
Heureux l'étudiant qui comme la rivière arrive a suivre son cours sans sortir de son lit...
Vous n’avez pas trouvé la réponse que vous recherchez ?
BioSs007
Messages postés19Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention 6 septembre 2013 13 nov. 2007 à 16:37
Salut,
Oui c'est normal car le premier $reponse1 correspond à response[0] et le second à reponse[1]
reponse[0] n'est pas utilisé ici :D
Ouais je sais que j'aurais pu tout simplement mettre $reponse[1] = $reponse1; [...] mais je n'y ai pas penser sur le coup ^^
Merci :D