Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] COOKIES
Forum PHP.pl > Forum > Przedszkole
rembasow1
Witam wszystkich bardzo serdecznie, muszę zrobić coś na wzór chatu, tak aby użytkownik podawał swój nick tylko raz, a nastepnie chat korzystał z jego nicku zapisanego w ciasteczkach :/

Nie mogę sobie z tym poradzić

Mam taki oto chat:
  1. <?php
  2. $godzina = date('H:i:s', time());
  3. $user = $_POST['user'];
  4. $post = $_POST['post'];
  5. if (IsSet($_POST['post'])) {
  6. $wpis = '<table border=”1” width="90%">
  7. <tr><td>'.$post.'</td><td width="80">' . $user . '</td><td width="60" bgcolor="yellow">'.$godzina.'</td></tr></table><br>';
  8. $plik = fopen ("zapis.txt", "a+");
  9. fwrite ($plik, $wpis);
  10. }
  11. ?>
  12. <form method="POST">
  13. <br>
  14. Nick:<input type="text" name="user" maxlength="10" size="10"><br>
  15. Post:<input type="text" name="post" maxlength="90" size="90"><br>
  16. <input type="submit" value="Send"/>
  17. </form>
  18. Posty:
  19. <br>
  20. <? include ("zapis.txt");?>
  21. <br>


A tutaj treść zadania:
Z wykorzystaniem technologii ciasteczek zmodyfikuj skrypt komunikatora w taki sposób, aby na danej przeglądarce internetowej nick
użytkownika wprowadzać tylko raz, po to, aby można było prowadzić bardziej komfortową wymianę komunikatów np. między dwiema
różnymi przeglądarkami

Błagam o pomoc i z góry zań dziękuję.
Niree
Proszę wink.gif

  1. <?php
  2. $godzina = date('H:i:s', time());
  3. $user = $_POST['user'];
  4. $post = $_POST['post'];
  5. if (IsSet($_POST['post']) && isset($_COOKIE['nickname'])) {
  6. $wpis = '<table border=?1? width="90%">
  7. <tr><td>'.$post.'</td><td width="80">' . $_COOKIE['nickname'] . '</td><td width="60" bgcolor="yellow">'.$godzina.'</td></tr></table><br>';
  8. $plik = fopen ("zapis.txt", "a+");
  9. fwrite ($plik, $wpis);
  10. }
  11. else if (IsSet($_POST['post'])) {
  12. setcookie('nickname', $user);
  13. $wpis = '<table border=?1? width="90%">
  14. <tr><td>'.$post.'</td><td width="80">' . $user . '</td><td width="60" bgcolor="yellow">'.$godzina.'</td></tr></table><br>';
  15. $plik = fopen ("zapis.txt", "a+");
  16. fwrite ($plik, $wpis);
  17. }
  18.  
  19. if(isset($_COOKIE['nickname']))
  20. {
  21. echo '<form method="POST">
  22. Post:<input type="text" name="post" maxlength="90" size="90" /><br />
  23. <input type="submit" value="Send"/>
  24. </form>';
  25. }
  26. else
  27. {
  28. echo '<form method="POST">
  29. Nick:<input type="text" name="user" maxlength="10" size="10" /><br />
  30. Post:<input type="text" name="post" maxlength="90" size="90" /><br />
  31. <input type="submit" value="Send"/>
  32. </form>';
  33. }
  34. ?>
  35.  
  36. Posty:
  37. <br />
  38. <? include ("zapis.txt");?>
  39. <br />


Zauważyłem lekką gafę. W zapis.txt robisz cały czas nową tabelkę dla nowego wpisu. Będzie 10 postów = 10 tabel na stronie. Załatw to w ten sposób:

  1. $wpis = '<tr><td>'.$post.'</td><td width="80">' . $_COOKIE['nickname'] . '</td><td width="60" bgcolor="yellow">'.$godzina.'</td></tr>';
  2. $plik = fopen ("zapis.txt", "a+");
  3. fwrite ($plik, $wpis);


Wyświetlanie:

Cytat
Posty:
<br />
<table border="1" width="90%">
<? include ("zapis.txt");?>
</table><br />
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.