Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Ако разгледаме темата за комуникация в реално време, има няколко решения, които могат да се конкурират в сила с една проста уеб чат. Особено добре е решение, така че всичко, което е необходимо, за да го изпълни - е уеб браузър.

В този урок от две части, ние ще създадем AJAX уеб чат с помощта на PHP, MySQL и JQuery. В първата част на урока ще разгледаме използването на PHP и MySQL, а на следващия - клиентската част на JQuery и CSS.

Както обикновено, първата стъпка е посветена на маркиране HTML. Нашата книга е изграден в съответствие с HTML5, което позволява използването на нов, по-кратък синтаксис DOCTYPE. и пропуснете тип атрибут към скрипта на маркер.

index.html

За организирането на превъртате район с линии за чат, ние използваме плъгин jScrollPane. Този плъгин има свой собствен стил, който е включен в раздела за главата.

чат за маркиране се състои от четири основни елемента - Разделение на горния панел на контейнер чат, контейнера за потребителите и долния панел. Последно Разделение съдържа форма за регистрация на потребителя и да изпратите съобщение. изпращане на съобщения чрез формуляр по подразбиране е скрита и се показва само когато потребителят е въведен успешно системата за чат.

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

схема на база данни

Преди да се обърнат към частта от PHP, първо трябва да погледнем организацията на чат данни в база данни MySQL.

ние използваме две маси за нашия скрипт. В webchat_users маса съхранява информация за участниците в чата. В таблицата има поле за самоличност. име. Gravatar и last_activity. област име се определя като уникален, като по този начин не позволяват използването на дублиращи се имена в чата.

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Друга хубава черта на областта с уникален индекс е, че искането за въвеждане на данни се провали и имуществото inserted_rows MySQLi обект ще бъде настроен на 0, ако се опитате да вмъкнете два екземпляра ред. В клас PHP чат, този имот ще се използва широко.

last_activity поле съдържа стойност на времето. Стойността се обновява на всеки 15 секунди за всеки потребител. Полето също се определя като индекс, който ви позволява бързо да изтриете неактивни потребители (last_activity стойност в повече от 15 означава, че потребителят вече не е гледане на чат прозореца).

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

за определяне на свободни маси в tables.sql файл в изходния код. Можете да използвате текста на заявката за създаване на таблици. Също така, при инсталиране на чат на вашия хост, трябва да промените настройките в ajax.php вашите данни, за да се свърже с MySQL.

Сега имаме база данни, нека да обсъдим PHP скрипт, който управлява чат.

Първият файл погледнем, ajax.php. Той се справя AJAX заявки от страна на клиента от JQuery и изходи на данни в JSON формат.

За удобство, използвайте изявление превключвател за определяне на действието, който обработва сценария. Тук се прилагат чат подсистема, I / O функции и действия по искането на реплики и списъка с потребители онлайн.

Изходът е във формата на JSON съобщения (които обикновено са предложени използване JQuery), грешки хвърлят изключения. Отчетът за превключвател разпределя всички искания към съответния клас Чат техники статични. които ще бъдат обсъдени по-късно в този раздел.

DB.class.php

Клас DB - мениджъра на базата данни. Конструкторът е обявена като частна. така че не може да се създаде на обекта извън класа и инициализация е възможно само от статичен метод първоначален (). Той взема масив от опции за свързване с MySQL и създава инстанция на класа, който се съдържа в статична променлива самостоятелно :: $ например. Това гарантира съществуването на една връзка към базата данни в определен момент от време.

В останалата част от класа осъществява комуникацията с базата данни, която се основава на метода на статичното заявка ().

ChatBase.class.php

Това е прост базов клас. Нейната основна цел - да се дефинира конструктор, който се множество параметри, като запазва само тези, дефинирани в класа.

ChatLine.class.php

Този клас също определя метода спасяване. който съхранява на обекта в базата данни. Тъй като методът връща MySQLi обект, съдържащ се в класа DB, можете да потвърдите успешното приключване на операцията с помощта affected_rows на собственост.

ChatUser.class.php

Класът има име на имущество и Gravatar (обърнете внимание на модификатора защитен достъп - свойства са на разположение в класната стая ChatBase, и ние можем да зададете неговия в конструктора).

Chat.class.php - Част 1

Този код върши цялата работа. Отчетът за превключване в ajax.php файлови избран действия, които съответстват на методите на този клас. Всеки от тези методи връща масив, който след това се превръща в JSON обект с използване на () функция json_encode (това става в долната ajax.php файл).

Когато даден потребител влезе в неговото име и Gravatar съхраняват като елементи в масива $ _SESSION и стават достъпни в следващите заявки.

Chat.class.php - Част 2

JQuery getUsers изпраща заявки () на всеки 15 секунди. Ние използваме този факт да се премахне една реплика, която е по-стара от 5 минути и неактивните потребители от базата данни. Потенциално може да изтрие getChats записва данни. но това е получено искане всяка секунда и допълнително натоварване може да се отрази на работата на приложението.

Продължаването на втората част!

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

До получаване на информация от два канала (зрение и слух) на ефективността на обучението далеч по-добър живот от книги. А домашните задачи и онлайн тестове ще ви позволи да мисля постоянно в целевия език и веднага провери знанията си!

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Ако искате по-дълго време, за да проучи как да се HTML, че ме има, за което трябва добра новина!

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Ако вече сте се научили HTML и искат да се движи напред, следващата стъпка ще бъде да се проучи CSS технологията.

Аякс уеб чат с помощта на PHP, MySQL и JQuery (част 1 от 2)

Ако искате да се разбере концепцията на домейн и хостинг, да научат как да се създаде база данни, да качвате файлове към уеб сайт чрез FTP сървър, създаване на поддомейни, да конфигурирате пощенските кутии за сайта и мониторинг на посещаемостта, този курс е разработен специално за вас!