Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ograniczenie czasowe
Forum PHP.pl > Forum > Przedszkole
majesik
Witam robię księgę gości ... i mam taki problem gdyż wszystko działa prawidłowo.
Lecz gdy ktoś się dopisze do księgi i weźmie odśwież wpis będzie widoczny (dwukrotnie) zależnie od ilości odświerzania.

Chciałbym aby dana osoba mogła wpisać się do księgi gości raz na jakiś czas.

czyli jeżeli wypełnie formularz i go zatwierdze to dane zostaną dopisane do bazy,
jeżeli wypełnie kolejny raz, lub wezmę odśwież to pokaże mi informację, że wpis do księgi gości mogę dodać po upływie 60 minut.

Jak czegoś takiego dokonać?

W php dopiero początkuję więc porszę mnei nie wyśmiewać,
Proszę o POMOC smile.gif



DLA ROZJASNIENIA SPRAWY DODAJ KOD KSIGI:

  1. <?
  2.  
  3. include(&#092;"admin/config.php\");
  4.  
  5. if($ssl == &#092;"\"):
  6. echo '<center><b><font face=\"Verdana\" size=\"1\" color=\"#CC3300\">';
  7. echo '<a href=\"ksiega.php?ssl=dodaj\" style=\"text-decoration: none\">';
  8. echo '<font color=\"#CC3300\">Dodaj Wpis</font></a></font></b></p>';
  9.  
  10. $db=mysql_connect(&#092;"localhost\", $sqluser, $sqlpass);
  11. mysql_select_db($sqldatabase, $db);
  12. $sql = &#092;"select ilosc_wpisow from opcje where id='1'\";
  13. $result = mysql_query($sql);
  14. while ($rezul = mysql_fetch_array($result)) {
  15.  
  16. $db=mysql_connect(&#092;"localhost\", $sqluser, $sqlpass);
  17. mysql_select_db($sqldatabase, $db);
  18. $ile = $rezul[&#092;"ilosc_wpisow\"];
  19. $sql2 = &#092;"select * FROM ksiega order by 'data' DESC, 'czas' DESC LIMIT $ile\";
  20. $result2 = mysql_query($sql2);
  21. while ($rezul2 = mysql_fetch_array($result2)) {
  22.  
  23. echo $rezul2[&#092;"data\"];
  24. echo &#092;"r. \";
  25. echo $rezul2[&#092;"czas\"];
  26. echo &#092;"<br>\";
  27. echo $rezul2[&#092;"xywka\"];
  28. echo &#092;"<br>\";
  29. echo $rezul2[&#092;"adres\"];
  30. echo &#092;"<br>\";
  31. echo $rezul2[&#092;"wpis\"];
  32. echo &#092;"<br>\";
  33. echo &#092;"<br>\";
  34.  
  35. }
  36.  
  37. }
  38.  
  39.  
  40. elseif(($ssl == &#092;"dodaj\") && ($status == \"ok\")):
  41. $data = date('d.m.Y');
  42. $czas = date('H:i:s');
  43. $db=mysql_connect(&#092;"localhost\", $sqluser, $sqlpass);
  44. mysql_select_db($sqldatabase, $db);
  45. $sql = &#092;"insert into ksiega values('NULL', '$xywka_ksiega', '$adres_ksiega', '$wpis_ksiega', '$data', '$czas')\";
  46.  
  47. echo '<center>Wpis do Księgi został dodany.</center>';
  48.  
  49.  
  50. elseif($ssl == &#092;"dodaj\"):
  51.  
  52. echo '<center>';
  53. echo '<form method=\"POST\" action=\"ksiega.php?ssl=dodaj&status=ok\">';
  54. echo '<font face=\"Verdana\" size=\"2\">Xywka:</font><br>';
  55. echo '<input type=\"text\" name=\"xywka_ksiega\" size=\"40\"><br>';
  56. echo '<font face=\"Verdana\" size=\"2\">Adres www:</font><br>';
  57. echo '<input type=\"text\" name=\"adres_ksiega\" size=\"40\"><br>';
  58. echo '<font face=\"Verdana\" size=\"2\">Wpis do Księgi:</font><br>';
  59. echo '<textarea rows=\"10\" name=\"wpis_ksiega\" cols=\"30\"></textarea><br>';
  60. echo '<input type=\"submit\" value=\"Zapisz\" name=\"zapisz\">';
  61. echo '</form>';
  62. echo '</center>';
  63.  
  64. endif;
  65. ?>
eS...
musisz ustawić ciacho
  1. <?php
  2.  
  3. setcooki(&#092;"dopisywanie\",\"1\",time()+60*60);
  4. ?>

i potem na sprawdzasz czy koles ma juz ciacho jesli tak to nie pozwala mu dopisać

pisze na szybko ale na 100% to działa
majesik
Gdzie podać kod aby ustawiał te ciasteczko?

Gdzie i jaki podać kod aby sprawdzał ciasteczko, jeżeli będzie utworzone to aby pokazało komunikat Wpis możesz dokonać po 60 minutach od poprzedniego.
A jeżeli go nie będzie to aby dodał wpis i utworzył ciasteczko.


Proszę o pomoc smile.gif
mike
Najlepiej poczytaj o ciasteczkach, bo chyba nie czytałeś: setcookie()

1. Tak, ciacho samo się usunie, po to jest czas życia ciasteczka.
2. Sprawdzasz, czy ciacho jes w ten sposób:
  1. <?php
  2. if( !isset( $_COOKIE[ 'dopisywanie' ] ) )
  3. {
  4. echo 'można dodać wpis';
  5. }
  6. else
  7. {
  8. echo 'nie można dodać wpisu';
  9. }
  10. ?>


P.S. & #33; zamień na wykrzyknik, bo coś się chrzanie BBCode.
majesik
Wszyustko jest ok gdy podaje dane i chce je dodac wyskakuje blad

  1. <?php
  2.  
  3. Warning: Cannot modify header information - headers already sent by (output started at /home/ja/public_html/mblog/admin/config.php:1) in /home/ja/public_html/mblog/ksiega.php on line 44
  4.  
  5. Wpis do Księgi został dodany.
  6.  
  7. ?>



OKA PORADZIŁEM SOBIE CHODZIŁO O PRZEŁOŻENIE includu config.php POD TWORZENIE SESJI smile.gif

WIELKIE DZIEKI ZA POMOC smile.gif laugh.gif thumbsupsmileyanim.gif graduated.gif
MarcinJarek
Na samej górze daj kod:

  1. <?
  2. if ($_COOKIE[&#092;"jest\"]<>1) setcookie(\"jest\",\"1\",mktime()+3600); //tutaj 3600 to czas w sekundach coile mozna dodawac nastepny wpis
  3. ?>


a potem tam gdzie formularz to daj:

  1. <?
  2. if ($_COOKIE[&#092;"jest\"]<>1) {
  3. //tutaj formularz
  4. } else {
  5. echo &#092;"Można dodawać wpis tylko co 3600 sekund.\";
  6. ?>


Nie sprawdzany czy dziala.
hwao
Kod
Warning: Cannot modify header information - headers already sent by (output started at /home/ja/public_html/mblog/admin/config.php:1) in /home/ja/public_html/mblog/ksiega.php on line 44


Ten błąd oznacza to ze wystlasz nagłówek (ktory powinien byc wyslany na poczatku) w srodku kodu HTML/XHMTL. Jak juz wystlasz ten naglowek to dawaj go na samym poczatku (nawet jakas spacja czy enter moga zaszkodzic)m albo poczytaj o:
ob_start" title="Zobacz w manualu PHP" target="_manual()

Zastosowanie ob_start()
  1. <?php
  2. ?>
  3.  
  4. <p>Kod HTML</p>
  5.  
  6. <?php
  7. setcookie( 'test', 'żyje', time()+60*); // wyslanie ciacha
  8.  
  9. if( empty( $_COOKIE['test'] ) ) // Sprawdza czy ciacho ma jakos wartosc
  10. { 
  11. // Jeżeli Nie ma
  12.  header( 'location: '.$_SERVER['PHP_SELF'] ); // Nagłówek przekierowania
  13. }
  14. else
  15. {
  16.  // Jezeli ciacho zyje :) (cos ma )
  17.  echo '<p> Jak to widzisz to znaczy ze ciacho zyje :)</p>';
  18.  echo '<p> Ciacho ma wartosc: \"'.$_CCOKIE['test'].'\"</p>';
  19. }
  20. ?>


Chyba jasne :]
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.