Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sonda na Cookies
Forum PHP.pl > Forum > Przedszkole
viamarimar
Chodzi o to żeby sonda działała na "cookies" próbowałem ustawić żeby 1 osoba mogla glosować co 1h ale cookies się blokuje i wogle nie da się głosować... mógłby mi ktoś wskazać błąd, co jest nie tak ?
-Głos ma być oddawany co 1h

  1.  
  2.  
  3. <?php
  4. $c=time() + (60 * 60);
  5. setcookie("user", "glos", $c);
  6.  
  7. if (@!include('config.php')) die("Wystąpił błąd, spróbuj później");
  8.  
  9. $id = $_POST['pole'];
  10. mysql_query("UPDATE data SET wyniki = (wyniki + 1) WHERE id='$id'");
  11.  
  12. function sonda()
  13. {
  14.  
  15. if ((!isset($_COOKIE["user"])) && (!isset($_GET['wyniki'])))
  16. {
  17.  
  18. $r = mysql_query("SELECT `id`, `sonda_data`, `type` FROM data ORDER BY type DESC");
  19.  
  20. echo "<form id=\"ankieta\" method=\"POST\" action=\"sonda.php?". SID."\">\r\n";
  21. echo "<fieldset><legend>Ankieta</legend>\r\n";
  22.  
  23. while ($row = mysql_fetch_assoc($r))
  24. {
  25. if ($row['type'] == 'pyt')
  26. {
  27. echo '<p>'.$row['sonda_data'].'</p>';
  28. }
  29. else
  30. {
  31. echo "<div><input type=\"radio\" id=\"pole".$row['id']."\" value=\"".$row['id']."\" name=\"pole\" />\r\n";
  32. echo "<label for=\"pole".$row['id']."\">".$row['sonda_data']."</label></div>\r\n";
  33. }
  34. }
  35. echo "<div><input id=\"vote\" type=\"submit\" value=\"Zagłosuj !\" /></div>\r\n";
  36. echo "<div><a href=\"sonda.php?wyniki=show\">[Zobacz wyniki]</a></div>\r\n";
  37. echo "</fieldset>\r\n";
  38. echo "</form>\r\n";
  39. }
  40.  
  41. elseif ((isset($_COOKIE['user'])) || (isset($_GET['wyniki'])))
  42. {
  43.  
  44. $sql = mysql_query("SELECT SUM(wyniki) as suma FROM data WHERE type='odp'");
  45. $row = mysql_fetch_array($sql);
  46. $suma = $row['suma'];
  47.  
  48. echo '<div id="wyniki">';
  49. echo "<ul>\r\n";
  50.  
  51. $r = mysql_query("SELECT * FROM data ORDER BY type DESC");
  52. while ($row = mysql_fetch_assoc($r))
  53. {
  54. if ($row['type'] == 'pyt')
  55. {
  56. echo '<p>'.$row['sonda_data'].'</p>';
  57. }
  58.  
  59. else
  60. {
  61.  
  62. if ($suma==0)
  63. {
  64. $procent=0;
  65. }
  66. else
  67. {
  68. $procent = (int)(($row['wyniki']/$suma)*100);
  69. }
  70. echo '<li><span>'.$row['sonda_data'].' - '.$row['wyniki'].' ('.$procent.'%) '.'</span>
  71. <img src="image.php" width="'.(1+ 200*$procent/100).'px" height="9px" />
  72. </li>'."\r\n";
  73. }
  74. }
  75. echo "</ul>\r\n";
  76. }
  77. }
  78.  
  79.  
  80. ?>
  81.  
  82.  
  83. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  84. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  85. <head>
  86. <title></title>
  87. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  88. <meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
  89. <meta name="description" content="Opis strony" />
  90.  
  91. <style type="text/css">
  92. * {margin:0; padding:0;}
  93. body {
  94. width: 900px;
  95. margin: 0 auto;
  96. color: #201e1e;
  97. font: 12px/17px Tahoma, Helvetica, sans-serif;
  98. }
  99.  
  100.  
  101. a {display: block; text-align: center; color: #1089b1; text-decoration: none; font-weight: bold;}
  102. a:hover {text-decoration: underline;}
  103.  
  104. #ankieta fieldset, #wyniki {
  105. width: 220px;
  106. margin: 20px 0 0 20px;
  107. padding: 5px;
  108. }
  109.  
  110. #ankieta fieldset p, #wyniki p {font-weight: bold; text-align: center;}
  111. #ankieta div, #wyniki li {padding: 4px;}
  112. #wyniki li {list-style: inside; display:block;}
  113. #wyniki { border: 1px solid #000;}
  114. #wyniki li img {display:block;}
  115. #vote {
  116. width: 90px;
  117. display: block;
  118. margin: 0 auto;
  119. }
  120. </style>
  121.  
  122. </head>
  123.  
  124. <body>
  125.  
  126. <?php sonda(); ?>
  127.  
  128. </body>
  129. </html>
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
peter13135
1. Rób wcięcia, bo tego czytać się nie da. (Poniżej masz prezent ode mnie wink.gif )
2. Nie bardzo chce mi się analizować tej "kobyły", więc dam Ci taki schemat. Na moje oko powinno być tak.
  1. jeśli nie ma cookies
  2. {
  3. jeśli są dane z formularza
  4. {
  5. dodaj dane do bazy i ustaw cookie.
  6. }
  7. else
  8. {
  9. wyświetl formularz
  10. }
  11. }
  12. else
  13. {
  14. wyświetl info o tym, że dane zostały wysłane.
  15. }


U ciebie cookie są ustawiane od razu.


  1.  
  2. <?php
  3.  
  4. $c = time() + (60 * 60);
  5. setcookie("user", "glos", $c);
  6.  
  7. if (@!include ('config.php'))
  8. die("Wystąpił błąd, spróbuj później");
  9.  
  10. $id = $_POST['pole'];
  11. mysql_query("UPDATE data SET wyniki = (wyniki + 1) WHERE id='$id'");
  12.  
  13. function sonda()
  14. {
  15.  
  16. if ((!isset($_COOKIE["user"])) && (!isset($_GET['wyniki'])))
  17. {
  18.  
  19. $r = mysql_query("SELECT `id`, `sonda_data`, `type` FROM data ORDER BY type DESC");
  20.  
  21. echo "<form id=\"ankieta\" method=\"POST\" action=\"sonda.php?" . SID . "\">\r\n";
  22. echo "<fieldset><legend>Ankieta</legend>\r\n";
  23.  
  24. while ($row = mysql_fetch_assoc($r))
  25. {
  26. if ($row['type'] == 'pyt')
  27. {
  28. echo '<p>' . $row['sonda_data'] . '</p>';
  29. }
  30. else
  31. {
  32. echo "<div><input type=\"radio\" id=\"pole" . $row['id'] . "\" value=\"" . $row['id'] . "\" name=\"pole\" />\r\n";
  33. echo "<label for=\"pole" . $row['id'] . "\">" . $row['sonda_data'] . "</label></div>\r\n";
  34. }
  35. }
  36. echo "<div><input id=\"vote\" type=\"submit\" value=\"Zagłosuj !\" /></div>\r\n";
  37. echo "<div><a href=\"sonda.php?wyniki=show\">[Zobacz wyniki]</a></div>\r\n";
  38. echo "</fieldset>\r\n";
  39. echo "</form>\r\n";
  40. } elseif ((isset($_COOKIE['user'])) || (isset($_GET['wyniki'])))
  41. {
  42.  
  43. $sql = mysql_query("SELECT SUM(wyniki) as suma FROM data WHERE type='odp'");
  44. $row = mysql_fetch_array($sql);
  45. $suma = $row['suma'];
  46.  
  47. echo '<div id="wyniki">';
  48. echo "<ul>\r\n";
  49.  
  50. $r = mysql_query("SELECT * FROM data ORDER BY type DESC");
  51. while ($row = mysql_fetch_assoc($r))
  52. {
  53. if ($row['type'] == 'pyt')
  54. {
  55. echo '<p>' . $row['sonda_data'] . '</p>';
  56. }
  57.  
  58. else
  59. {
  60.  
  61. if ($suma == 0)
  62. {
  63. $procent = 0;
  64. }
  65. else
  66. {
  67. $procent = (int)(($row['wyniki'] / $suma) * 100);
  68. }
  69. echo '<li><span>' . $row['sonda_data'] . ' - ' . $row['wyniki'] . ' (' . $procent . '%) ' . '</span>
  70. <img src="image.php" width="' . (1 + 200 * $procent / 100) . 'px" height="9px" />
  71. </li>' . "\r\n";
  72. }
  73. }
  74. echo "</ul>\r\n";
  75. }
  76. }
  77.  
  78. ?>
  79.  
  80.  
  81. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  82. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  83. <head>
  84. <title></title>
  85. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  86. <meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
  87. <meta name="description" content="Opis strony" />
  88.  
  89. <style type="text/css">
  90. * {margin:0; padding:0;}
  91. body {
  92. width: 900px;
  93. margin: 0 auto;
  94. color: #201e1e;
  95. font: 12px/17px Tahoma, Helvetica, sans-serif;
  96. }
  97.  
  98.  
  99. a {display: block; text-align: center; color: #1089b1; text-decoration: none; font-weight: bold;}
  100. a:hover {text-decoration: underline;}
  101.  
  102. #ankieta fieldset, #wyniki {
  103. width: 220px;
  104. margin: 20px 0 0 20px;
  105. padding: 5px;
  106. }
  107.  
  108. #ankieta fieldset p, #wyniki p {font-weight: bold; text-align: center;}
  109. #ankieta div, #wyniki li {padding: 4px;}
  110. #wyniki li {list-style: inside; display:block;}
  111. #wyniki { border: 1px solid #000;}
  112. #wyniki li img {display:block;}
  113. #vote {
  114. width: 90px;
  115. display: block;
  116. margin: 0 auto;
  117. }
  118. </style>
  119.  
  120. </head>
  121.  
  122. <body>
  123.  
  124. <?php
  125.  
  126. sonda();
  127.  
  128. ?>
  129.  
  130. </body>
  131. </html>
  132.  
  133.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.