Programowanie w języku PHP

Prosty chat w PHP

Wstęp do artykułu

Dziś stworzymy prosty chat w PHP. Jako bazy danych użyjemy pliku tekstowego. Tekst wiadomości będzie pisany w wygodnym edytorze HTML (zawierać będzie dla bezpieczeństwa tylko podstawowe funkcje formatowania). To jest mój pierwszy artykuł, więc proszę o poprawianie błędów.

Tworzymy chat

Na początek zrobimy prostą stronę główną index.php używając ramek:

<FRAMESET ROWS="*, 230" FRAMEBORDER=0 FRAMESPACING=0 BORDER=0>
   <FRAME SRC=rozmowa.php NAME="gora">
   <FRAME SRC="reply.php" NAME="dol">
</FRAMESET>


I strona główna gotowa. Zajmiemy się teraz skryptem pokazującym rozmowę (rozmowa.php). Użyjemu tu starej, dobrej funkcji include. Przedtem stwórz plik "rozmowa.txt" i nadaj mu prawa do zapisu.

<?
include("rozmowa.txt");
?>


Teraz najtrudniejsza część - 'reply.php'. W tym pliku następuje przesłanie danych z formularza do pliku save.php i dopisanie go do pliku rozmowa.txt. Będziemy budować tą stronę stopniowo.

Na początku strony umieścimy skrypt JavaScript odpowiedzialny za edytor HTML na stronie.

tinyMCE.init({
 mode : "textareas",
  theme : "advanced",
   language : "en",
    plugins : "emotions",
     editor_selector : "mceEditor",
      theme_advanced_buttons1 : "bold, italic, underline, separator, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, bullist, numlist, undo, redo, link, unlink, separator, emotions",
      theme_advanced_buttons2 : "",
      theme_advanced_buttons3 : "",
      theme_advanced_toolbar_location : "top",
      theme_advanced_toolbar_align : "left",
      theme_advanced_path_location : "bottom",
     extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]"
});


I zaraz po tym jeszcze jeden skrypcik.

<script type="text/javascript" src="http://www.designsphere.pl/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce.js">


Później tworzymy formularz...

<form method="post" action="save.php">
 <textarea id="content" name="content" style="width:100%; height:150;" class="mceEditor"></textarea><br><input name="user" size="20" value="Twój nick">
<input type="submit" value="Wy&#347;lij"></form>


Teraz mechanizm zapisujący dane do pliku rozmowa.txt - save.php

    //Pobieramy dane z formularza
 $EE = $_POST["content"];
 $user = $_POST["user"];
    //Otwieramy plik do dopisywania i odczytu
  $fp=fopen("rozmowa.txt", "a+");
    //Zapisujemy dane i oddzielamy znakiem nowej linii
   fwrite($fp, "$user: $EE<br>");
    //Zamykanie dokumentu
   fclose($fp);


I pod koniec pliku save.php dodajemy linijkę:

<script>window.location="reply.php"</script>


I już prawie koniec. Jedyne co nam jeszcze zostało to ułatwienie korzystania z chata. Niestety po zapisie do pliku odświeża się tylko ramka z formularzem. To oznacza że mamy odświeżać stronę aby zobaczyć nowe wpisy?
Nie. Wystarczy na końcu pliku rozmowa.php dodać znacznik HTML odpowiedzialny za odświeżanie strony co 1 sekundę.

<META HTTP-EQUIV="REFRESH" CONTENT="1">


I skończyliśmy tworzenie prostego chata. Zobaczyć działanie skryptu możesz na mojej stronie: http://jarekx.110mb.com/czat/mychat/4programmers/.

5 komentarzy

Lily652 2016-12-03 13:34

I ve heard about it. Thanks for sharing. prayer times

raru 2008-05-20 10:59

Jak w tytule, "Prosty chat w PHP", zatem sądzę że można to przemyśleć jaki on będzie (:

Snowak 2008-03-27 19:23

Zainteresuj się Ajaxem, bo to jest mało profesjonalne podejście do sprawy.. Z całym szacunkiem, ale to za bardzo nie nadaje się na artykuł.

wargo 2008-03-27 14:45

Cały czas się odświeża i utrudnia pracę :f

jozio 2010-06-01 20:32

A na moim laptopie nie chce się otworzyć, tylko chce się ściągnąć.