Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z botem irc
k00sl
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 20.04.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: if($command == 'lol'){
a: if(trim($command) == 'lol'){

Jak teraz?
Go to the top of the page
+Quote Post
k00sl
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 20.04.2009

Ostrzeżenie: (0%)
-----


bardzo dziękuję za pomoc, dałem "Pomógł" (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 00:53