<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ś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/.
A na moim laptopie nie chce się otworzyć, tylko chce się ściągnąć.
Cały czas się odświeża i utrudnia pracę :f
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ł.
Jak w tytule, "Prosty chat w PHP", zatem sądzę że można to przemyśleć jaki on będzie (:
Miałem ten sam wątpliwości i komentarze bardzo mi pomógł. Dzięki!
Andre
http://www.trusera.com