Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problemy z cookies
kacka
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 5
Dołączył: 29.06.2005

Ostrzeżenie: (0%)
-----


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(); ?>
Go to the top of the page
+Quote Post
Pigula
post
Post #2





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witaj,
sproboj 1 bez ciapek ' '. albo wogole zrob warunek
  1. <?php
  2. if($_COOKIE['pozdrowieniaco'])
  3. ?>

powinno pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
kacka
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 5
Dołączył: 29.06.2005

Ostrzeżenie: (0%)
-----


Nie pomaga...
Problem tkwi chyba w tym że to cookies nie jest tworzone przez skrypt.
Nigdzie go nie ma.
Go to the top of the page
+Quote Post
borec
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


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(); ?>
Go to the top of the page
+Quote Post
kacka
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 5
Dołączył: 29.06.2005

Ostrzeżenie: (0%)
-----


Teraz znowu nie wyświetla komunikatu o wysłaniu pozdrowienia oraz nadal nie nie blokuje wysyłania.
Go to the top of the page
+Quote Post
infero
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.08.2005
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


  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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ...

Ten post edytował infero 20.08.2005, 12:20:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:15