Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z botem irc
Forum PHP.pl > Forum > PHP
k00sl
Witam, mam taki oto skrypt:

config.php
  1. <?php
  2. $server_host = "irc.quakenet.org";
  3. $server_port = 6667;
  4. $server_chan = "#mojkanal";
  5. ?>


bot.php
  1. <?php
  2.  
  3.  
  4. include("config.php");
  5.  
  6. function SendCommand ($cmd){
  7. global $server;
  8. @fwrite($server['SOCKET'], $cmd, strlen($cmd));
  9. echo "[SEND] $cmd <br>";
  10. }
  11.  
  12. $nickname = $_POST['nick'];
  13.  
  14. if(empty($nickname)){
  15. echo "<form name=\"form1\" method=\"post\" action=\"irc.php\">\n\r";
  16. echo "<p align=\"center\">Please Insert a Nickname.\n\r";
  17. echo "<input type=\"text\" name=\"nick\"> \n\r";
  18. echo "</p>\n\r";
  19. echo "<p align=\"center\">\n\r";
  20. echo "<input type=\"submit\" name=\"Submit\" value=\"Join IRC\">\n\r";
  21. echo "</p>\n\r";
  22. echo "</form>\n\r";
  23. }
  24. else
  25. {
  26.  
  27. $server = array();
  28.  
  29. $server['SOCKET'] = @fsockopen($server_host, $server_port, $errno, $errstr, 2);
  30. if($server['SOCKET']){
  31.  
  32. SendCommand("PASS NOPASS\n\r");
  33. SendCommand("NICK $nickname\n\r");
  34. SendCommand("USER $nickname USING PHP IRC\n\r");
  35.  
  36. #zapetlenie
  37. while(!feof($server['SOCKET'])){
  38.  
  39. #pobiera dane i wyswietla
  40. $server['READ_BUFFER'] = fgets($server['SOCKET'], 1024);
  41. echo "[RECIVE] ".$server['READ_BUFFER']."<br>\n\r";
  42.  
  43. #gdy linia wiadomosci wynosi 200 to jest wykonana komenda dołączania na serwer
  44. if(strpos($server['READ_BUFFER'], "200")){
  45. SendCommand("JOIN $server_chan\n\r");
  46. }
  47.  
  48. #wysylanie pingu
  49. if(substr($server['READ_BUFFER'], 0, 6) == "PING :"){
  50. SendCommand("PONG :".substr($server['READ_BUFFER'], 6)."\n\r");
  51. }
  52.  
  53. $get = explode(' ', $server['READ_BUFFER']);
  54. $split = explode(':',$get[3], 2);
  55. $command = $split[1];
  56. echo 'Napisano komende '.$command.'<br>';
  57.  
  58. if($command == 'lol'){
  59. echo 'Uzycie komendy';
  60. SendCommand("PRIVMSG $server_chan :tutaj_jakis_tekst\n\r");
  61. }
  62.  
  63.  
  64.  
  65. }
  66. }
  67. }
  68. ?>


Jest to bot IRC. Połączenie się z serwerem, wejście na kanał i reszta działa, oprócz warunku if($command == 'lol'). Po wpisaniu na kanale "lol" na stronie odpalonego bota wyświetla się "Napisano komende lol", więc zmienna $command napewno ma przypisaną wartość "lol". Na stronie bota powinno zostać wyświetlone "Uzycie komendy", a tak nie jest. Nie rozumiem dlaczego nie działa. Proszę o pomoc.
nospor
nie: if($command == 'lol'){
a: if(trim($command) == 'lol'){

Jak teraz?
k00sl
bardzo dziękuję za pomoc, dałem "Pomógł" winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.