PHP

Prosty chat w PHP

JarekX

<font size="3">Wstęp do artykułu</span>

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.

<font size="3">Tworzymy chat</span>

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. 

```php
<?
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...

<code class="html4strict"><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ę.

<code class="html4strict"><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/.

PHP

6 komentarzy

Miałem ten sam wątpliwości i komentarze bardzo mi pomógł. Dzięki!

Andre
http://www.trusera.com

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

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

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ł.

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

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