Online Чат с помощью PHP

В этом уроке Вы узнаете, как создать простой онлайн чат с помощью PHP и MySql. В уроке идет полное объяснение всего процесса, от создания баз данных, до программирования. Основными необходимыми навыками являются знания HTML и PHP. Ну, что, давайте начинать?

Шаг 1: Создание базы данных.

Создаем таблицу "chat" в базе данных MySQL для хранения основной информации чата: chtime (чат времени), nick (псевдоним пользователя) и words (фразы, менее 150 символов).

				mysql>  CREATE TABLE chat 
					->  chtime DATATIME, 
					-> nick  CHAR (10) NOT NULL, 
					-> words  CHAR (150);
				

Шаг 2: Проектируем структуру.

Этот простой онлайн чат включает в себя четыре раздела: 1) Логин пользователя;
2) Вывод сообщения;
3) Ввод сообщений;
4) Отображение ввода разделов.
Таким образом создаем следующие четыре файла для работы: login.php, main.php, display.php и speak.php.

Шаг 3: Пишем код.

1. login.php – состоит только из формы HTML.

				<html> 
					<head> 
						<title>Логин  пользователя</title> 
					</head> 
					<body> 
						Пожалуйста введите Логин.
						<form  action="main.php" method="post"  target="_self"> 
							<input  type="text" name="nick" cols="20"> 
							<input  type="submit" value="login"> 
						</form> 
					</body> 
				</html>
				

2. main.php

				<? 
					setcookie("nick",$nick) //используем Куки для хранения  ника
				?> 
					<html> 
						<title>Комната  Чата</title> 
						<frameset  rows="80%,*"> 
							<frame  src="/display.php" name="chatdisplay"> 
							<frame  src="/speak.php" name="speak"> 
						</frameset> 
					</html>
				

3. display.php

Этот файл используется для получения и отображения пользовательских сообщений из базы данных. Чтобы не загружать базу данных, старые сообщения будут удаляться, а выводиться будут только 15 самых последних сообщений.

				<html> 
					<head> 
					<title>Чат</title> 
					<meta  http-equiv="refresh" content="5;url=display.php"> 
					</head> 
					<body> 
				<? 
					$link_ID=mysql_connect("main","root"); 
					mysql_select_db("abc"); 
					$str="select  * from chat ORDER BY chtime;" ;
					$result=mysql_query($str,  $link_ID);
					$rows=mysql_num_rows($result); 
					@mysql_data_seek($resut,$rows-15); 
					if  ($rows<15) {
						$l=$rows;
					} else {
						$l=15;
						for ($i=1;$i<=$l; $i++) { 
							list($chtime,  $nick, $words)=mysql_fetch_row($result); 
							echo  $chtime; 
							echo " "; 
							echo $nick; 
							echo":" ; 
							echo $words; 
							echo  ""; 
							@mysql_data_seek($result,$rows-20);
							list($limtime)=mysql_fetch_row($result); 
							$str="DELETE  FROM chat WHERE chtime<'$limtime' ;" ; 
							$result=mysql_query($str,$link_ID);
							mysql_close($link_ID);
						}
				?> 
					</body> 
				</html>
				

4. speak.php

				<html> 
					<head> 
						<title>Общение</title> 
					</head> 
					<body> 
				<? 
					if ($words) {  
						$link_ID=mysql_connect("main","root"); 
						mysql_select_db("abc"); 
						$time=date(y).date(m).date(d).date(h).date(i).(date(s); 
						$str="INSERT  INTO chat(chtime,nick,words) values ('$time','$nick','$words');" ;
						mysql_query($str,$link_ID 
						mysql_close($link_ID); 
					} 
			    ?> 
						<form  action="speak.php" method="post" target="  _self"> 
							<input  type="text" name="words" cols="20"> 
							<input  type="submit" value="Speak"> 
						</form> 
					</body> 
				</html>
				

На этом, пожалуй, и все! Теперь Вы можете создавать собственные чаты на Ваших сайтах.

Просмотров: 4054      Опубликовал: Евгений Фединчик      Дата: 26.03.2010 18:49:31
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

    Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.

    Комментарии:

    • yuri 11.03.2011 20:11:02
      что то неработает у меня( кто то утанавливал уже себе?
      Ответить
      • SiteStalker 16.07.2011 13:45:35
        у мя тож не пашет
        Ответить
    • Arconas 10.08.2011 07:19:22
      Не советую использовать такую схему на сайтах. Она сильно устаревшая плюс не выдержит большого наплыва пользователей. Это даже в общем-то и не чат, а простой вывод сообщений из базы в перезагрузке страниц. Базу вообще не рекомендую использовать для вывода. Когда Я делал нечто подобное, то при порядка сорока пользователей нагрузка на БД возрастала троекратно, холостого трафика море из-за чего возникали многочисленные проблемы. Если хотите нормальный чат смотрите в сторону так называемой Comet технологии - http://javascript.ru/ajax/comet или http://boorick.livejournal.com/26602.html web-socket`ов или клиент-серверных приложений на базе других языков.
      Ответить
    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa