![]() |
![]() |
![]()
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:
A to odświeżanie:
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Odswiezanie jest ok. To pewnie sprawa iframe.
Daj ten script do chat2.php, albo powyzej iframe. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kod ID=window.setTimeout("refresh();",10000); function refresh() { location.reload(); ID=window.setTimeout("refresh();",10000); } to sie wykona tylko raz powinno byc Interval ktory bedzie sie wykonywal w nieskonczonosc bo jak raz odswierzysz strone to fajnie a co potem?? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
No właśnie z irame miałem głupi problem. Powinno być tak, że wpisuję po prostu: "<iframe frameborder='0' width='700px' src='chat2.php'></iframe>" i to z tego pliku powinno być na stronie. Zrobiłem tak i nie działało. Więc skrypt z iframe masz między tymi znacznikami.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
moze zamiast bawic sie w iframe pomysl nad AJAX-em
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
AJAX byłby dobry, gdybym go umiał. A nie umiem, mam tylko mgliste pojęcie, jak to działa, więc raczej nie opłaca mi się uczyć dla jednego skryptu, który mogę zrobić łatwiej.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mozesz uzyc jakiejs gotowej biblioteki np advAJAX lub mintAJAX lub innych, biblioteki sa opracowane tak ze wystarczy znac odrobine JS
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
A właśnie z JS też u mnie dość kiepsko... Chociaż z jakąś książką mógłbym obsłużyć AJAXA. Ale wydaje mi się, że dla tego jednego skryptu nie opłaca się tego robić. Chodzi mi po prostu o to, żeby odświeżał ramkę co 10 sekund.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 4.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
moze tak? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Hehe, jest to krok do przodu, ale nie to o co chodziło. Ramka odświeża się po 10 sekundach, ale cała jej zawartość znika. Zaraz pokombinuję, dzięki za pomoc.
EDIT: Już działa, dostawiłem jedną cyferkę i jest! Wielkie dzięki! Ten post edytował Glarden 17.06.2007, 19:50:44 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 0 Dołączył: 29.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod ID=window.setTimeout("refresh();",10000); function refresh() { location.reload(); ID=window.setTimeout("refresh();",10000); } to sie wykona tylko raz powinno byc Interval ktory bedzie sie wykonywal w nieskonczonosc bo jak raz odswierzysz strone to fajnie a co potem?? dlaczego to miałoby się wykonać tylko raz? |
|
|
![]() ![]()
Post
#12
|
|
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:
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 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, odświeżanie już działa. Mam kolejne pytanie.
Zrobiłem tak, żeby pisać mogli tylko zalogowani. Potem na samym czacie - licznik typów on-line. Teraz potrzebuję zrobić coś takiego, żeby wyświetlał loginy zalogowanych użytkowników, ale ani rusz, nie mogę tego zrobić. Macie jakieś pomysły? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 29.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Musisz zapisywać zalogowanych w pliku. Tylko problem jest taki że jak ktoś zamknie przeglądarke a nie użyje opcji wyloguj nie będziemy mogli usunąć loginu z pliku...
Ten post edytował Sylwin 18.06.2007, 21:24:14 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie, to samo pomyślałem. Więc mógłbym zapisywać w bazie danych imię i datę zalogowania. Jeśli się wyloguje, to usuwa, jeśli przez więcej niż np. 5 min użytkownik nic nie robi, też usuwa. Ale mi się nie chce korzystać z bazy...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 23:34 |