Cookie qui ne fonctione pas ???

Cookie qui ne fonctione pas ??? - PHP - Programmation

Marsh Posté le 20-02-2007 à 14:20:30    

Salut!
 
Encore un prob. :p
 
Voilà, en fait j'ai fait un script ou les membre du site peuvent mettre leurs code source (de prgm) en ligne.
 
Les prgm sont ensuite classés en fonction des notes que les autres membres leur attribut.
 
Le probléme, c'est qu'une foie avoir donné une note, un cookie est sencé se créer pour ne pas revoter, mais apparament rien ne ce passe, car une foie voté, il ya la note du prgm qui apparait, mais aussi le formulaire qui permet de donner une note.  
 

Code :
  1. <?php
  2. if ($cookvote == 1)
  3. {
  4. $timestamp_expire = time() + 3600*24*365;
  5. setcookie('cvote', '1', $timestamp_expire);
  6. }
  7. $style = "prgm";
  8. include("haut.php" ); ?>
  9. <?php
  10. mysql_connect("localhost", "tibasicunivers", "tibasic" );
  11. mysql_select_db("tibasicunivers" );
  12. $lesprgm = mysql_query("SELECT * FROM prgmmembre WHERE nom='" . $_GET['nom'] . "'" );
  13. $Lesprgm = mysql_fetch_array($lesprgm);
  14. $notenouvelle = $Lesprgm['note'];
  15. $nbvote = $Lesprgm['nbvote'];
  16. if (isset($_POST['noteprgm']) AND $_POST['noteprgm'] != 'Note')
  17. {
  18. $noteprgm = htmlentities ($_POST['noteprgm']);
  19. $notenouvelle = $notenouvelle + $noteprgm;
  20. $nbvote = $nbvote + 1;
  21. mysql_query("UPDATE prgmmembre SET nbvote='" . $nbvote . "', note='" . $notenouvelle . "' WHERE nom='" . $_GET['nom'] . "'" );
  22. $cookvote = 1;
  23. }
  24. $Lanote = $notenouvelle / $nbvote;
  25. ?>
  26. <center><div class="auteur">
  27.     <strong>Auteur</strong> :  <?php echo $Lesprgm['auteur']; ?><br />
  28.     <strong>Créé le</strong> :  <?php echo $Lesprgm['jours'] . '/' . $Lesprgm['moi'] . '/' . $Lesprgm['annee']; ?><br \>
  29.     <strong>Mis en ligne le</strong> : <?php echo date('d/m/Y', $Lesprgm['enligne']); ?><br />
  30.     <strong>Groupe</strong> :  Membre<br />
  31. </div>  </center>
  32. <br />
  33. <?php
  34. if ($cookvote == 1)
  35. {
  36. echo 'Note moyenne attribué au programme: ' . round($Lanote, 1);
  37. }
  38. if (!isset($_COOKIE['cvote']))
  39. {
  40. ?>
  41. Donner une note à ce programme:  <form method="post" action="prgmmembre.php?nom=<?php echo $_GET['nom']; ?>">
  42. <select name="noteprgm">
  43. <option value="Note">Note</option>
  44. <?php
  45. $v = 0;
  46. while ($v <= 20)
  47. {
  48. echo '<option value="' . $v . '">' . $v . '/20</option>';
  49. $v = $v+1;
  50. }
  51. ?>
  52. </select>
  53. <input type="submit" value="GO" />
  54. <?php
  55. }
  56. ?>
  57. <br /><br />
  58. <strong>Code:</strong>
  59. <div class="code">
  60. <?php echo $Lesprgm['code']; ?>
  61. </div><br />
  62. <br />
  63. <?php echo $Lesprgm['message']; ?>


 
 
Voila, comme vous le voyez, une foie voté, la variable $cookvote se crer et prend pour valeur 1, ce qui entraine une création du cookie cvote.
 
Et n'est affiché le formulaire (normalement) seulement si cvote n'éxiste pas.
 
Donc voila, moi j'ai beau chercher, je ne trouve pas le problème.
Pour voir ce qui ce passe, allez ICI
 
 
Merci d'avance.

Reply

Marsh Posté le 20-02-2007 à 14:20:30   

Reply

Marsh Posté le 20-02-2007 à 14:30:03    

ton cookie risque pas d'être créé, ton if ($cookvote == 1) est tout au début de ton script, alors que tu n'as même pas créé ta variable cookvote...[:moule_bite]


Message édité par skeye le 20-02-2007 à 14:30:11

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-02-2007 à 14:43:39    

Comment je peus faire alors?
 
Parce-que setcookie doit se trouver avant tout code HTML.  :(

Reply

Marsh Posté le 20-02-2007 à 14:45:28    

...et alors??
Tu n'as rien qui t'oblige à faire un affichage écran avant ton $cookvote = 1; là non? :??:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-02-2007 à 14:52:23    

Comment çà?
 
Dsl j'ai pas compri ^^

Reply

Marsh Posté le 20-02-2007 à 14:54:12    

ton setcookie, pourquoi il n'est pas là-dedans?

Citation :

#
if (isset($_POST['noteprgm']) AND $_POST['noteprgm'] != 'Note')
#
{
#
$noteprgm = htmlentities ($_POST['noteprgm']);
#
$notenouvelle = $notenouvelle + $noteprgm;
#
$nbvote = $nbvote + 1;
#
mysql_query("UPDATE prgmmembre SET nbvote='" . $nbvote . "', note='" . $notenouvelle . "' WHERE nom='" . $_GET['nom'] . "'" );
#
$cookvote = 1;
#
}


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-02-2007 à 15:43:18    

Ben parce-que on peus pas mettre de setcookie avant un code HTML.

Reply

Marsh Posté le 20-02-2007 à 15:50:42    

Je ne vois pas de html avant.[:dawao]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-02-2007 à 16:10:42    

ha ben dsl je l'avais pas mis ^^
 
Mais c'est bon, j'ai résolut le prob.
Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed