Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ShoutBox.... problem z odświeżaniem
Shahow
post 26.03.2005, 12:33:00
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2004

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


Na strone pisze shoutboxa. Skrypt jest zmodyfikowany z jednej księgi gości opartej na txt. I dobrze jest, działa ok, tylko, że jedno mnie wkurza. Po wysłaniu wiadomości otwiera sie nowa strona z wpisami i nowym wpisem. Ale ta strona (shoutbox.php) jest w ramce plywającej, która jest umieszczona w pliku index.php. Prosze Was, by mnie nakierować jak napisać kod, by po wysłaniu wiadomości odświeżyła sie strona shoutbox.php, która jest w ramce pływającej, bez zbędnych otwierających sie okien. Ewentualnie odświeżenie całej strony index.php.

index.php
  1. <?php
  2. <table width=&#092;"100%\" height=\"100%\" border=0 cellpadding=\"0\" cellspacing=\"0\">
  3.           <tr><td height=&#092;"200\">
  4.             <div align=&#092;"center\">
  5.               <iframe name=&#092;"shoutbox\" src=\"shoutbox.php\" width=\"126\" frameborder=\"0\" scrolling=\"auto\" height=\"100%\"></iframe>
  6.               </div></td></tr>
  7.           <tr><td align='center'><form class='form' METHOD=POST ACTION=shoutbox.php?id=add_msg>
  8.           <input name=autor_msg type=text class=form value=autor><br>
  9.           <input name=wpis_msg type=text class=form value=treść><br>
  10.           <input type=submit name=add-msg value=wyslij class=form></form></td></tr></table>
  11.           </div></td>
  12.         </tr><tr><td height=&#092;"8\" background='menu_logend.gif'></td>
  13.       </table>
  14. ?>


shoutbox.php
  1. <? if ($id==add_msg) {
  2.  
  3. $plik_box = &#092;"msg.txt\";
  4. $wpis_box = &#092;"<p><b>$autor_msg</b><br>$wpis_msg</p>\";
  5. $myFile2 = fopen($plik_box, &#092;"r+\");
  6. $wpis_box=$wpis_box.fread($myFile2, filesize($plik_box));
  7.   rewind($myFile2);
  8.   fputs($myFile2, $wpis_box);
  9.   fclose($myFile2);
  10. }
  11.  
  12.  $plik_box = &#092;"msg.txt\";
  13.   $myFile2 = fopen($plik_box, &#092;"r\");
  14.   $k=1;
  15.   $end=$st+29;
  16.   while(!feof($myFile2))
  17.    {
  18.      $myLine2 = fgets($myFile2, 2000);
  19.      if ($k>=$st) {
  20.         if ($k<=$end) {
  21.  
  22.                 print(&#092;"$myLine2\");
  23.         };
  24.      };
  25.      $k++;
  26.    }
  27. ?>


Ten post edytował Shahow 26.03.2005, 13:16:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
vala
post 26.03.2005, 17:51:39
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


header() ?


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
ReeV
post 27.03.2005, 20:03:17
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 14.12.2004

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


A nie lepiej umieścić wszystko w jednym pliku (niech to będzie plik shoutbox.php) czyli formularz na pola, funkcje (czyli dodawanie wpisu do bazy czy określonego pliku tekstowego), oraz funkcję wyświetlania wpisów.

Wtedy sprawa była by bardzo prosta. Includował byś ten plik (shoutbox.php) na odpowiednią stronę (załóżmy, że jest to strona główna czyli index.php) i wtedy dajesz

Kod
<form action="index.php" method='post'>


i przy daniu posta odrazu będzie ci się strona z wpisami odświeżać i będziesz widział nowy wpis bez jakiś tam zabaw z odświeżaniem.


--------------------
Warsztat: Apache 2.0.52 | PHP 5.0.2 | SQL 4.0.21 | Notatnik | PSP 7.0
Projekty: BanasheeShout v.1.2 '
Go to the top of the page
+Quote Post
Shahow
post 28.03.2005, 16:36:54
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2004

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


EDIT!!!! :
Ok juz wszystko działa! Tylko teraz plik jest includowany. I tabela bedzie sie bardzo rozciagac w pionie. Więc chciałbym, by np 30 wpisow aktualnych było, a reszta przepadała, lub była w pliku, ale nie wyswietlana. Plik msg.txt: jeden wpis = jedna linia.

Ten post edytował Shahow 28.03.2005, 16:52:07
Go to the top of the page
+Quote Post
Wave
post 28.03.2005, 17:38:50
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Zrób warunek:
  1. <?php
  2. $a = file(msg.txt);
  3. if(count($a) >= 30) {
  4. function file_DeleteLine ($filename, $index) { 
  5.     $file = file ($filename); 
  6.     $fp = fopen ($filename, &#092;"w\"); 
  7.     flock($fp, LOCK_EX); 
  8.     for( $w = 0; $w < count($file); $w++ ) 
  9.     { 
  10.       if ($index <> $w) 
  11.         fwrite ($fp, $file[$w]); 
  12.     } 
  13.     flock($fp, LOCK_UN); 
  14.     fclose($fp); 
  15.   } 
  16. file_DeleteLine('msg.txt', 0); // albo zamiast 0 - count($a) jeżeli najstarsze wpisy są na końcu.
  17. }
  18. ?>


Ten post edytował Wave 28.03.2005, 17:40:23
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:45