Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][js]Chat na plikach
Glarden
post
Post #1





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Napisałem sobie chat działający na plikach - i na moim kompie wszystko działa jak należy. Teraz tylko mam taki problem: chcę zrobić, żeby odświeżało co jakiś czas (powiedzmy, 10 sekund), żeby inni użytkownicy też mogli zobaczyć wiadomość. Skrypt wygląda tak:
  1. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"/>
  2. <form action='chat.php' method='post'>
  3. Autor: <input type='text' name='autor' /><br>
  4. Treść: <input type='text' name='tresc' style='width: 500px;' /><br>
  5. <input type='submit' value='OK'/>
  6. </form>
  7. <hr>
  8. <iframe frameborder='0' width='700px' src='chat2.php'>
  9. <script language="JavaScript" src="refresh.js"></script>
  10. <?php
  11. if (isset ($_POST['autor']) && ($_POST['tresc'])) {
  12. $autor = $_POST['autor'];
  13. $tresc = $_POST['tresc'];
  14. $wynik = "<b>".$autor."</b>: ".$tresc."rn";
  15.  
  16. $plik1 = file('chat');
  17. $plik = fopen('chat', 'w');
  18. $zapis = fputs($plik, $wynik);
  19. for ($i = 0; $i<count($plik1); $i++) {
  20. fputs($plik, $plik1[$i]);
  21. }
  22. fclose ($plik);
  23. $tab = file('chat');
  24. for ($i=0; $i<5; $i++) {
  25. $tab[$i] = str_replace ("rn", "<br>", $tab[$i]);
  26. echo ($tab[$i]);
  27. }
  28. }
  29. else {
  30. $tab = file('chat');
  31. for ($i=0; $i<5; $i++) {
  32. $tab[$i] = str_replace ("rn", "<br>", $tab[$i]);
  33. echo ($tab[$i]);
  34. }
  35. }
  36. ?>
  37. </iframe>

A to odświeżanie:
  1. ID=window.setTimeout("refresh();",10000);
  2. function refresh() {
  3. location.reload();
  4. ID=window.setTimeout("refresh();",10000);
  5. }


Nie jestem pewien, czy działa to odświeżanie, ale wydaje mi się, że nie, bo 10 sekund po załadowaniu strony ta "ani drgnie", żadnego "błysku" odświeżania. Widzicie jakieś błędy? Zaznaczam, że sam czat działa jak należy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sylwin
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


Wstaw to na samą górę pliku jeszcze przed <? i będzie sie odświeżało co jakiś czas który możesz sobie wpisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

<meta http-equiv='refresh' content='czas w sekundach;url=chat.php'>

Albo to w dowolnym momencie w skrypcie np jak user doda wpis:

  1. <?php
  2. echo"<meta http-equiv='refresh' content='czas w sekundach;url=chat.php'>";
  3. ?>


A tu masz kompletny skrypcik z odświeżaniem nazwij go chat.php:
Kod
<meta http-equiv='refresh' content='10;url=chat.php'>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"/>
<form action='chat.php' method='post'>
Autor: <input type='text' value='<? echo$autor; ?>' name='autor' /><br>
Treść: <input type='text' value='<? echo$autor; ?>' name='tresc' style='width: 500px;' /><br>
<input type='submit' value='OK'/>
</form>
<hr>
<iframe frameborder='0' width='700px' src='chat2.php'>
<?php
if (isset ($_POST['autor']) && ($_POST['tresc'])) {
    $autor = $_POST['autor'];
    $tresc = $_POST['tresc'];
    $wynik = "<b>".$autor."</b>: ".$tresc."\r\n";
    
    $plik1 = file('chat');
    $plik = fopen('chat', 'w');
    $zapis = fputs($plik, $wynik);
    for ($i = 0; $i<count($plik1); $i++) {
        fputs($plik, $plik1[$i]);
    }
    fclose ($plik);
    $tab = file('chat');
    for ($i=0; $i<5; $i++) {
        $tab[$i] = str_replace ("\r\n", "<br>", $tab[$i]);
        echo ($tab[$i]);
    }
}
else {
    $tab = file('chat');
    for ($i=0; $i<5; $i++) {
        $tab[$i] = str_replace ("\r\n", "<br>", $tab[$i]);
        echo ($tab[$i]);
    }
}
?>
</iframe>


Ten post edytował Sylwin 17.06.2007, 22:27:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 25.12.2025 - 02:16