В настоящее время я делаю IRC, который отправляет сообщение на основной канал IRC. Вот мой код:
<?php $ircServer = "xxxx"; $ircPort = "6667"; $ircChannel = "#bots"; set_time_limit(0); $msg = $_GET['msg']; $ircSocket = fsockopen($ircServer, $ircPort, $eN, $eS); if ($ircSocket) { fwrite($ircSocket, "USER Lost rawr.test lol :code\n"); fwrite($ircSocket, "NICK Rawr" . rand() . "\n"); fwrite($ircSocket, "JOIN " . $ircChannel . "\n"); fwrite($ircSocket, "PRIVMSG " . $channel . " :" . $msg = $_GET['msg'] . "\n"); while(1) { while($data = fgets($ircSocket, 128)) { echo nl2br($data); flush(); // Separate all data $exData = explode(' ', $data); // Send PONG back to the server if($exData[0] == "PING") { fwrite($ircSocket, "PONG ".$exData[1]."\n"); } } echo $eS . ": " . $eN; } } ?> <html><body> <h4>IRC Bot Tester</h4> <form action="irc.php" method="post"> Command: <input type="text" name="msg" /> <input type="submit" /> </form> </body></html>
Моя проблема заключается в том, что BOT не отправляет никаких сообщений на канал, так как вы видите, что я использовал post + get data для информации о сообщении, отправленной на канал.
Вот журнал, который я получаю:
: irc.underworld.no 366 Rawr30517 #bots: Конец / список NAMES. : irc.underworld.no 411 Rawr30517: Нет получателя (PRIVMSG): 0: 0PING: irc.underworld.no
Я не знаю, какая из причин вызывает это:
получатель (PRIVMSG): 0: 0PING
Спасибо, если кто-нибудь сможет мне помочь. Я пытаюсь просто отправить сообщение боту, и бот доставляет сообщение на основной канал.
Изменить:
$msg = $_GET['msg']; ... fwrite($ircSocket, "PRIVMSG " . $channel . " :" . $msg = $_GET['msg'] . "\n");
Для того, чтобы:
$msg = $_POST['msg']; ... fwrite($ircSocket, "PRIVMSG " . $ircChannel . " :" . $msg . "\n");
fwrite($ircSocket, "PRIVMSG " . $ircChannel . " " . $msg = $_GET['msg'] . "\n");
Для того, чтобы:
fwrite($ircSocket, "PRIVMSG " . $ircChannel . " " .$msg. "\n");