Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problemy z cookies
Forum PHP.pl > Forum > Przedszkole
kacka
Witam,
Na początku chciałbym się przywitać, ponieważ jest to mój pierwszy post.
A teraz do rzeczy.
Postanowiłem zrobić prosty skrypt pozdrowień dla radia. Wszystko ładnie chodzi oprócz jednej funkcji. Jest nią anty flood. Nie wiem co źle robię że nie sprawdza mi tego ciasteczka.
  1. <? ob_start(); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <meta http-equiv="Creation-date" content="2005-08-19T17:54:34Z" />
  7. <meta http-equiv="Content-Language" content="pl" />
  8. <title>Pozdrowienia</title>
  9. <?php
  10. //formularz
  11.  
  12. if (!isset($_POST[submit])) {
  13. echo '
  14. <form method="post" action="index.php">
  15. Od:<input type="text" name="odkogoto"><br>
  16. Pozdrowienie:<textarea name="tresctego" rows="3">Tu wpisz treść pozdrowienia</textarea>
  17. <input type="submit" name="submit" value="Wyślij">
  18. </form>';
  19.  
  20. } else {
  21. if($_COOKIE['pozdrowieniaco']=='1') //sprawdzanie ciastka
  22. {
  23. echo "Kolejne pozdrowienia będziesz mógł wysłać trochę później. Spróbuj za jakiś 
    czas."
    ;
  24. }
  25. else 
  26. {
  27. if(empty($_POST['odkogoto']) || empty($_POST['tresctego'])) { // jeśli nie jest wszystko wypełnione
  28.  
  29. echo "Sorry ale nie wypełniłeś wszystkich wymaganych pól :(";
  30. }
  31. else
  32. {
  33. setcookie ("pozdrowieniaco", "1", time() +180);  //tworzenie ciastka
  34. echo "Pozdrowienie zostało pomyślnie wysłane!";
  35. }
  36. }
  37. $db = mysql_connect("localhost", "root", "krasnal"); // host, nazwa usera i hasło
  38. if (!$db)
  39. die("failed to open database");
  40. mysql_select_db("pozdro"); //nazwa bazy danych
  41.  
  42. //polaczenie z baza
  43. $query = "insert INTO pozdrowienia
  44. (od, tresc)
  45. VALUES ('$odkogoto', '$tresctego' )";
  46. $result = mysql_query($query);
  47. if (mysql_errno())
  48. {
  49. echo "Pozdrowienie nie zostało wysłane!";
  50. die ("<br>" . mysql_errno() . ": ".mysql_error()."<br>");
  51.  
  52. }
  53.  
  54.  
  55. }
  56. ?>
  57. </head>
  58. </html>
  59. <? ob_end_flush(); ?>
Pigula
Witaj,
sproboj 1 bez ciapek ' '. albo wogole zrob warunek
  1. <?php
  2. if($_COOKIE['pozdrowieniaco'])
  3. ?>

powinno pomoc winksmiley.jpg
kacka
Nie pomaga...
Problem tkwi chyba w tym że to cookies nie jest tworzone przez skrypt.
Nigdzie go nie ma.
borec
sprawdza czy nie sprawdza ciastka, tak czy siak skrypt dodaje dane do bazy, zle ulozyles warunki, powinno byc tak:
  1. <? ob_start(); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <meta http-equiv="Creation-date" content="2005-08-19T17:54:34Z" />
  7. <meta http-equiv="Content-Language" content="pl" />
  8. <title>Pozdrowienia</title>
  9. <?php
  10. //formularz
  11.  
  12. if (!isset($_POST['submit'])) {
  13. echo '
  14. <form method="post" action="index.php">
  15. Od:<input type="text" name="odkogoto"><br>
  16. Pozdrowienie:<textarea name="tresctego" rows="3">Tu wpisz treść pozdrowienia</textarea>
  17. <input type="submit" name="submit" value="Wyślij">
  18. </form>';
  19.  
  20. }
  21. else {
  22. if ($_COOKIE['pozdrowieniaco']=='1') {
  23. echo "Kolejne pozdrowienia będziesz mógł wysłać trochę później. Spróbuj za jakiś 
    czas."
    ;
  24. }
  25. else {
  26. if(empty($_POST['odkogoto']) || empty($_POST['tresctego'])) { // jeśli nie jest wszystko wypełnione
  27. echo "Sorry ale nie wypełniłeś wszystkich wymaganych pól :(";
  28. }
  29. else {
  30. $db = mysql_connect("localhost", "root", "krasnal"); // host, nazwa usera i hasło
  31. if (!$db)
  32. die("failed to open database");
  33. mysql_select_db("pozdro"); //nazwa bazy danych
  34.  
  35. //polaczenie z baza
  36. $query = "insert INTO pozdrowienia
  37. (od, tresc)
  38. VALUES ('$odkogoto', '$tresctego' )";
  39. $result = mysql_query($query);
  40. if (mysql_errno())
  41. {
  42. echo "Pozdrowienie nie zostało wysłane!";
  43. die ("<br>" . mysql_errno() . ": ".mysql_error()."<br>");
  44.  
  45. }
  46. setcookie ("pozdrowieniaco", "1", time() +180);  //tworzenie ciastka
  47. }
  48. }
  49.  
  50.  
  51. }
  52. ?>
  53. </head>
  54. </html>
  55. <? ob_end_flush(); ?>
kacka
Teraz znowu nie wyświetla komunikatu o wysłaniu pozdrowienia oraz nadal nie nie blokuje wysyłania.
infero
  1. <? ob_start(); ?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <meta http-equiv="Creation-date" content="2005-08-19T17:54:34Z" />
  7. <meta http-equiv="Content-Language" content="pl" />
  8. <title>Pozdrowienia</title>
  9. <?php
  10. //formularz
  11.  
  12. if (!isset($_POST['submit'])) {
  13. echo '
  14. <form method="post" action="index.php">
  15. Od:<input type="text" name="odkogoto"><br>
  16. Pozdrowienie:<textarea name="tresctego" rows="3">Tu wpisz treść pozdrowienia</textarea>
  17. <input type="submit" name="submit" value="Wyślij">
  18. </form>';
  19.  
  20. }
  21. else {
  22. if ($_COOKIE['pozdrowieniaco'] != 'dodane') {
  23. if(empty($_POST['odkogoto']) || empty($_POST['tresctego'])) { // jeśli nie jest wszystko wypełnione
  24. echo "Sorry ale nie wypełniłeś wszystkich wymaganych pól :(";
  25. }
  26. else {
  27. $db = mysql_connect("localhost", "root", "krasnal"); // host, nazwa usera i hasło
  28. if (!$db)
  29. die("failed to open database");
  30. mysql_select_db("pozdro"); //nazwa bazy danych
  31.  
  32. //polaczenie z baza
  33. $query = "insert INTO pozdrowienia
  34. (od, tresc)
  35. VALUES ('$odkogoto', '$tresctego' )";
  36. $result = mysql_query($query);
  37. if (mysql_errno())
  38. {
  39. die ("Pozdrowienie nie zostało wysłane!<br>" . mysql_errno() . ": ".mysql_error()."<br>");
  40.  
  41. }
  42.  
  43. echo "Pozdrowienie zostało wysłane!";
  44. setcookie ("pozdrowieniaco", "dodane", time() + 240);  //tworzenie ciastka
  45. }
  46. }
  47. else {
  48. echo "Kolejne pozdrowienia będziesz mógł wysłać trochę później. Spróbuj za jakiś 
    czas."
    ;
  49. }
  50.  
  51. }
  52. ?>
  53. </head>
  54. </html>
  55. <? ob_end_flush(); ?>


Pozdrawiam winksmiley.jpg...
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.