![]() |
ICQ на php
Есть задумка написать icq бот, который мог бы не только отправлять сообщения, но и вести переписку, а ответы записывать в БД. Проблема в том, как сделать принятие сообщений, чтоб реально работали условия if-else, а ответ писался хотя бы для начала в какую-нибудь переменную. :confused:
|
Бери WebIcqLite.php движок, пиши управляющий скрипт, вот пример такого скрипта:
PHP код:
|
А запись всех входящих сообщений в отдельные переменные как делать?
|
Автор, специально для тебя выкладываю бота. Итак. Запуск производится через файл 55.php. В нем же имееются комментарии как что работает, там есть условия "ответ на то, что прислал пользователь", там есть функция записи лога, там есть функция управления ботом с $ADMINUIN, добавления новых фраз в библиотеку бота (fraza.txt, оттуда берется рандомная фраза, если то, что ввел пользователь не совпадает с тем, на что имеются ответы в 55.php), смена статуса бота, посылка сообщения на $UIN через бота. Движком является Icq.php.
Залил сюда, пароль на скачивание - ICQBOT. С тебя плюсик ;) Будет что не понятно - пиши в ICQ. |
ОК. Щас затестю
|
Условия добавлять примерно так:
PHP код:
|
Я вроде начинаю понимать. А как вот это исправить?
Fatal error: Call to undefined function socket_create() in W:\home\localhost\www\WebIcqLite.class.php on line 393 В той строке это: $this->socet = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); |
Sockets включил?
|
Я на компе через денвер пробую. Реально проверить?
|
По-моему ты меня не понимаешь. У тебя не включены Sockets видимо.
|
Я в первый раз с сокетами и асей пробую. Не знаю как их включать
|
Не помню как на денвере... Зарегистрируй себе бесплатный хостинг с сокетами. Или платный...
|
Русских не нашел. А с иностранными все какие-то проблемы
|
ТС, открой свой php.ini и найтди там строку :
Цитата:
|
Есть предложение. Условие например такое:
$а = "сколько вам лет"; $b = "любимый цвет"; $c = "1. да"; $d = "2. нет"; Дальше смысл такой: пишет чел в асю. Ему приходит первое сообщение из $а. Ответ на него записывается в бд. Как только ответили, бот отсылает второе сообщение из $b. Ответ снова сохраняется. Третим идет вопрос с вариантами ответа $c, $d. Если ответ приходит цифрой из вариантов, то идем дальше на условие if-else, иначе пишем текст с пояснением его ошибки и спрашиваем заново. Если ответ нормальный, то снова пишем его в бд. Ну и т.д. Закину полтинник на счет тому, кто первым разместит работоспособный код. Спс. :-) |
чувак, если бы было время - я бы помог бесплатно и объяснил..стукни в асю если можешь тогда объясню как бота делать..я тоже на денвере запускаю :) аська 7876878 просто я на ачате не сижу....
|
Идите в ПМ/Аську ругаться, кодеры, блин...
ТС, стукни мне в аську, 674542, помогу :) Естественно бесплатно :) |
Парни, мне б его сделать в ближайшие дни. Сам бы пробовал всяко разно, но времени впритык, работать заставляют:-). Я могу написать в аську часа через три, но времени разбирать мало. Буду признателен за готовое решение. Кстати, забыл написать про плюсики в репутацию на анчате. Мне не жалко
|
Так что, у тебя получается что бот сам должен писать?
|
Вообще то, такие вещи пишутся на компилируемом языке.
|
mailbrush, почему? Боты на PHP неплохо работают.
ТС: тебе нужно, чтобы начинал пользователь... Например пишет он комманду Привет. Бот отвечает "Привет". Дальше уже идет вопрос "Ваш любимый цвет" и т.д. Я правильно понимаю? |
root_sashok, я имею в виду в ТС'овом случае, т.к. сомневаюсь, что он купит и настроит платный хостинг. А на фришных стоит ограничение на время выполнения скрипта.
PS: ТС, ща забацаем :) |
Тогда лучше действительно поставить денвер.
|
Сообщения надо брать
PHP код:
|
Deathdreams, а я обойдусь и без этой ф-ции :)
|
Да, мне надо, чтоб бот сам писал. И вообще он должен работать всегда без какого-либо вмешательства человека.
|
strtolower Эта функция разные кодировки не воспринимает у меня))..английские буквы преобразует а вот русские... ( по крайней мере это только у меня были такие проблемы )
у кого тоже проблема то у меня вот так: function strtolowex($txt) { $txt=strtolower(strtr($txt, "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦ ШЩЪЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхц шщъыьэюя")); return($txt); } :-) |
Поднимаю тему
|
Неужели никто не может помочь?
|
Надеялся на кодеров для начала)))
Условие например такое: $а = "сколько вам лет"; $b = "любимый цвет"; $c = "1. да"; $d = "2. нет"; Дальше смысл такой: пишет чел в асю. Ему приходит первое сообщение из $а. Ответ на него записывается в бд. Как только ответили, бот отсылает второе сообщение из $b. Ответ снова сохраняется. Третим идет вопрос с вариантами ответа $c, $d. Если ответ приходит цифрой из вариантов, то идем дальше на условие if-else, иначе пишем текст с пояснением его ошибки и спрашиваем заново. Если ответ нормальный, то снова пишем его в бд. Ну и т.д. Закину полтинник на счет тому, кто первым разместит работоспособный код. Спс. :-) |
Цитата:
Вот тебе для начала PHP код:
|
Почему у меня постоянно выскакивает ошибка:
Fatal error: Call to undefined function socket_create() in W:\home\localhost\www\WebIcqLite.class.php on line 393 391 function open($url = array('login.icq.com', 5190)) 392 { 393 $this->socet = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); 394 if ($this->socet < 0 || $this->socet === false) 395 { |
dk-ne, вам уже в прошлых постах говорили, что у вас не включены сокеты. Если не работает denwer(хотя вам были предложены и номера ась для помощи и одно из решений, как включить), попробуйте другие сборки-сервера, например: Vertrigo, XMMP, UniServer
|
А как-то включить можно то, что есть уже?
|
Цитата:
Цитата:
И маленькие совет: Лучше все скрипты проверять на хостинге котором будете запускать этот скрипт, меньше гемороя после будет |
Вобщем нет у меня там путей на модули. Php.ini у меня находится только в C://PHP. А стоит денвер. Причем кроме php.ini по тому пути ничего нет
|
через поиск по файлам находишь все php.ini на твоём компьютере и если думать особо лень то во всех раскомментируешь модуль сокетов. как он называется уже сказали. как искать в файле строчку думаю тоже понятно )
|
| Время: 20:57 |