Problème dans mon sondage

Résolu
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010 - 23 juil. 2008 à 14:20
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 23 juil. 2008 à 17:48
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

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 17:12
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 !
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 17:38
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 !
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 14:30
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 16:10
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 16:18
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 16:37
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++
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 16:41
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 16:54
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++
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 17:00
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 17:09
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 17:18
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++
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 17:22
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 !
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 17:34
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++
0
Sub_Mat Messages postés 79 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 17 octobre 2010
23 juil. 2008 à 17:46
Ok, merci beaucoup
a++
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 juil. 2008 à 17:48
de rien,je suis la pour ça !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
Rejoignez-nous