Jednoduchý chat v PHP
V tomto tutoriále si ukážeme ako si vytvoriť jednoduchý chát v PHP.
Potrebujeme nejaký kvalitný webhosting, nie Endoru - tá to má zakázané, nie webzdarma alebo IC - tí majú desne pomalou databázu
Takže, chát si urobíme do FRAMESET.
Pripravíme si databázu.
Vytvorte si tabuľku, napr. "Chat", sa stĺpci
- ID - typ INT a zaškrtneme AUTO_INCREMENT
- jmeno - typ TEXT, porovnanie utf8_bin
- sprava - typ TEXT, porovnanie utf8_bin
- cas - typ DATETIME
Vytvoríme si 7 súborov.
- databaze.php
- index.php
- chat_type.php
- chat_screen.php
- messages.php
- messages.js
- msg_write.php
Do súboru databaze.php si uložíme údaje do databázy, napr.
<?php if(!mysql_connect("kam","uzivatel","heslo")) // Připojí se k databázi {die("Nepodařilo se připojit k databázi");} // pokud selže připojení, vyhodí chybu if(!mysql_select_db("databaze")) // vybere databázi {die("Nepodařilo se vybrat databázi");} // pokud selže výběr databáze, vyhodí chybu mysql_query("SET NAMES `utf-8`"); // nastaví kódování UTF ?>
Do súboru index.php napíšeme
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Chat</title> </head> <frameset rows="*, 100" cols="*"> <frame src="chat_screen.php" name="chat-screen"> <frame src="chat_type.php" name="chat-type"> </frameset> </html>
Ideme ďalej, do súboru chat_screen.php. Tu sa budú zobrazovať správy. Súbor vyzerá takto:
<script type="text/javascript" src="messages.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <div id="messages"></div>
Súbor chat_type.php slúži na zápis správy. vložíme:
<?php session_start(); //použijeme pro uložení jména ?> <br> <br> <form action="msg_write.php" method="post"> <input type="text" name="jmeno" <?php if(isset($_SESSION['jmeno'])){echo('value="' . $_SESSION["jmeno"] . '" ');} ?> > <input type="text" name="zprava"><input type="submit" value="Pošli !"> </form>
Teraz vkladanie správy do databázy. Do súboru msg_write.php si vložíme:
<?php session_start(); // Slouží pro uložení jména include('databaze.php'); // includuje soubor s údaji do databáze $jmeno = mysql_real_escape_string($_POST['jmeno']); // Ochrana proti SQL injekci $zprava = mysql_real_escape_string($_POST['zprava']); if($jmeno != "" || $zprava != "") // Pokud jméno a zpráva něco obsahuje (není prázdné) { mysql_query("INSERT INTO `chat`(`jmeno`, `zprava`,`cas`) VALUES ('$jmeno','$zprava',Now())"); // Vloží do databáze... vkládáme pouze do jméno, zpráva a datum, ID se vloží samo $_SESSION['jmeno'] = $jmeno; // Nastaví jméno header("Location: chat_type.php"); // Vrátí se zpět k psaní zprávy } else // Pokud je něco prázdné { header("Location: chat_type.php"); // Vrátí se zpět k psaní zprávy } ?>
Teraz zobrazovania správ. Do súboru messages.php vložíme:
<?php include('databaze.php'); // Includuje údaje pro připojení k DB $vyber = mysql_query("SELECT * FROM `chat` ORDER BY `cas` DESC"); // Vybere z tabulky chat, seřazeno podle času while($radek = mysql_fetch_assoc($vyber)) // Dokud není na konci, vybírá zprávy { echo htmlspecialchars($radek['cas'] . " ~ " . $radek['jmeno'] . " ~ " . $radek['zprava']); echo("<br><br>"); // Vypíše zprávy, htmlspecialchars zakazuje HTML } ?>
Aktualizáciu správ urobíme pomocou JavaScriptu, presnejšie technológií AJAX. Do súboru messages.js vložíme:
function getMessages(letter) { var div = $("#messages"); $.get('messages.php', function(data) { div.html(data); }); } setInterval(getMessages, 2000);
2000 je čas aktualizácie v milisekundách, príliš malé hodnoty budú zaťažovať server.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 1863x (2.56 kB)
Aplikácia je vrátane zdrojových kódov v jazyku PHP