Problème dans mon sondage

[Résolu]
Signaler
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour à tous,

Voila j'ai trouvé ce script sur internet pour réaliser un sondage :
----------------------------------------------------------------------------------------------------------
<?
$data= "data.dat";
$votes="votes.dat";
$path_img="progress_sond.png";
$poll_name="Comment trouvez-vous notre site ?";
$dataf=file("data.dat");
if ($go !=1) {
     echo "<form method=post>";
     echo "<center> $poll_name </center><hr>";
     for ($i =0; $i<= count($dataf)-1; $i++) {
         echo " $dataf[$i]
";
     }
     echo "<hr>";
     echo "<center></center>";
} else {
$file_votes =fopen($votes, "r");
$line_votes= fgets($file_votes, 255);
$single_vote=explode("|", $line_votes);
fclose($file_votes);
if ($result!=1) {   
$file_votes=file($votes, "r");
if ($REMOTE_ADDR == $file_votes[1]) {
echo "<center> $poll_name </center><hr>";
echo "<center>
Nous vous rappelons que vous ne pouvez pas voter pour le même sondage 2 fois.<hr></center><center>Votre vote n'a pas été accepté.</center>"; 

   exit;

         }
         $ficdest =fopen($votes, "w");
         for ($i= 0; $i<=count($dataf)-1; $i++) {
             if ($i == $vote) {
                 $single_vote[$i]+=1;
             }
             fputs($ficdest, "$single_vote[$i]|");
         }
         fclose($ficdest);
         $ficdest=fopen($votes, "a");
         fputs($ficdest, "\n$REMOTE_ADDR");
         fclose($ficdest);
         $result=1;
     }
        if ($result==1) {
         for ($i=0; $i<=count($dataf)-1; $i++) {
             $tot_votes+=$single_vote[$i];
         }
   echo "<center> $poll_name </center><hr>";
         for ($i =0; $i<=count($dataf)-1; $i++) {
             $stat[$i]=$single_vote[$i]/$tot_votes*100;
             echo "";
             echo "$dataf[$i]";
       echo " (";
    printf("%.1f", "$stat[$i]");
    echo "%";
    echo " (";
    echo "$single_vote[$i]";
    echo "))
";
             echo "
"; 
         }
         echo "<hr><center>Total : $tot_votes votes</center>";
     }
}
?>
-----------------------------------------------------------------------------------------------------------
Mais voila j'ai un problème, il utilise la fonction exit; et donc la suite du programme ce lance pas, ce qui est normal
Mais le problème c'est que  la suite de ma page ne s'affiche pas, et donc le coté droit et le bas de ma page disparaisses.
Si quelqu'un pouvait m'aider sa serait cool

Merci d'avance
Cordialement Sub_Mat

15 réponses

Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Moi ce que j te conseil c'est d'utiliser les sessions et de carément refaire ce script !

Tu enregistre l'ip de l'utilisateur dans une session et si let a chaque utilisateur qui viens pour voter, tu vérifie que la session n'existe pas !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Oui, je sais pourquoi !

Le header se place avant tout code HTML, si il y a du code html avant, le header ne marchera pas et normalement il doit vous retourner une ereur du genre :

Fonction header cannot modify already send information...

Ou un truc du genre !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Salut,

Essai de mettre ça dans une fonction, comme ça le exit ne coupera pas ton site mais te fera sortir de ta fonction !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Salut nicomilville,
Merci pour votre réponse, qui à été rapide !
Sa fait deux heures que j'essaye, mais je ni arrive pas !
Je ne vois pas trop comment je peux mettre une fonction
Est-ce que tu pourrais me montré comment je dois faire sur mon code ?
Merci d'avance,
Bonne après midi,
a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Sinon,

Essai d'enlever le exit pour voir !

sinon je verrai ce que je peus faire !

de rien

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

J'ai essayé de remplacé exit par } else {, mais sa marche toujours pas.
J'ai aussi essayé d'isoler le code dans un fichier sondage.php,
puis l'appelé sur ma page principale avec <? require ("sondage.php"); ?>
Mais rien à faire, sa marche toujours pas !  (En même tant je mis attendais)
En gros, je suis désespéré !
Mais bon je sens qu'on vas y arriver !
a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
enlève carèment ton exit sans changer rien d'autre, il ne sert a rien car il est a la fin d'un else et c'est normal que tu ne puisse pas mettre de else, c'est déja dans un else !

a++

PS : remplace tes : <? en <?php car c'est plus portable !

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Voici le rendu après la suppression de exit !

http://mathieu.sub.free.fr/test_sondage.php
Le reste ce charge, mais il m'affiche le résultat et me compte le vote !
Merci pur votre aide !
a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Ba ou est le problème, tu ne veus pas que le vote soit compté ?

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Je veux qu'il soit compté mais que au premier clic !
Si on reclic après avoir voté, par contre là il ne doit pas reprendre en compte le vote, il doit affiché le message d'erreur "Votre vote n'a pas été accepté." et ne pas s'afficher le résultat du sondage !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Après tout pourquoi pas !
Je vais encore essayé un peux, puis après je raze tout !
Et je fais ton conseil !
Merci beaucoup pour votre aide;
a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
de rien et bonne chance, si tu veus de l'aide dans la conception ou le développement de ce sondage, n'hésite pas !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Ah juste je voulais savoir si je remplace
Exit par header('Location:
http://www.phpcs.com'
);
il ne veut pas me rediriger !
Vous savez pourquoi ?

Merci pour votre proposition,
a++
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Ok, merci beaucoup
a++
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
de rien,je suis la pour ça !

a++

Si la réponse vous convient, pensez : Réponse acceptée !