login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout met irc (Opgelost)

Offline tomie94 - 15/01/2008 19:10
Avatar van tomie94PHP interesse Ik heb de vogelde code vandeze site gehaald:
  1. <?php
  2. $config = array();
  3. $config['nickname'] = 'Botje';
  4. $config['realname'] = 'Botje';
  5. $config['ident'] = 'Botje';
  6. $config['hostname'] = 0;
  7. $config['server'] = 'irc.chatfactory.net';
  8. $config['poort'] = 6667;
  9. $config['kanalen'] = array('');
  10.  
  11. if(!$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) {
  12. die('Fatale fout: socket kon niet worden aangemaakt.');
  13. }
  14. echo 'Socket aangemaakt'."\n";
  15.  
  16. if(!socket_bind($socket,$config['hostname'])) {
  17. die('Fatale fout: verbinding kon niet worden gekoppeld aan hostname '.$config['hostname'].'.');
  18. }
  19. echo 'Verbinding gekoppeld aan hostname'."\n";
  20.  
  21. if(!socket_connect($socket,$config['server'],$config['poort'])) {
  22. die('Fatale fout: verbinding met server kon niet tot stand worden gebracht.');
  23. }
  24. echo 'Verbinden...'."\n";
  25.  
  26. function schrijf($data) {
  27. global $socket;
  28. socket_write($socket,$data."\r\n");
  29. }
  30.  
  31. schrijf('USER '.$config['ident'].' '.$config['hostname'].' '.$config['server'].' :'.$config['realname']);
  32. schrijf('NICK '.$config['nickname']);
  33.  
  34. $inKanaal = false;
  35. while($data = socket_read($socket,65000,PHP_NORMAL_READ)) {
  36. if($data == "\n") continue;
  37.  
  38. $eData = explode(" ",$data);
  39. for($i = 0; isset($eData[$i]); $i++) {
  40. $eData[$i] = trim($eData[$i]);
  41. }
  42.  
  43. echo $data."\n";
  44.  
  45. if($inKanaal == false && strstr($data,'MOTD')) {
  46. // Eerst kanalen binnengaan
  47. for($i = 0; isset($config['kanalen'][$i]); $i++) {
  48. schrijf('JOIN '.$config['kanalen'][$i]);
  49. }
  50. $inKanaal = true;
  51. }
  52.  
  53. if($eData[0] == 'PING') {
  54. schrijf('PONG '.$eData[1]);
  55. }
  56. if(isset($eData[3]) && $eData[3] == ':!google' && isset($eData[4])) {
  57. // Google command en minstens 1 trefwoord
  58. // http://www.google.be/search?q=trefwoord
  59. $zoekstring = trim(array_pop(explode('!google',$data)));
  60. $u = 'Google zoeken: http://www.google.be/search?q='.urlencode($zoekstring);
  61. schrijf('NOTICE '.nickname($eData[0]).' : '.$u);
  62. }
  63. }
  64.  
  65.  
  66. ?>


nu doet hij het niet, ik zie gewoon een melding als de bot online komt of offline maar als ik bijv. PING intik krijg ik niks terug. en als ik !google zoekwoord intik gaat de hele boot offline....

wat moet ik doen??

33 antwoorden

Gesponsorde links
Offline ikkedikke - 15/01/2008 19:19
Avatar van ikkedikke PHP expert bestaat de functie nickname? en weet je zeker dat er verder geen errors in dat stuk zitten?
Offline tomie94 - 15/01/2008 19:24
Avatar van tomie94 PHP interesse dit krijg ik als ik de code uitvoer: http://plaatscode.be/4999/
Offline Stijn - 15/01/2008 19:29
Avatar van Stijn PHP expert Je draait het php script in een console? Je kan zo'n scripts niet via het HTTP protocol uitvoeren.
Offline tomie94 - 15/01/2008 19:34
Avatar van tomie94 PHP interesse moet ik dan php dowloaden en op m'n pc php.exe uitvoeren en daarna de locatie invoeren?
Offline Stijn - 15/01/2008 19:43
Avatar van Stijn PHP expert Heb jij geen php geinstalleerd op je pc ofzo? Anders zou ik dat maar vlug doen (before we all murder you!)
Offline tomie94 - 15/01/2008 19:48
Avatar van tomie94 PHP interesse oke, ik heb nu gedowload, ik heb via go-pear gekozen vaan local copy en ik ben klaar. hoe kan ik nu die bot instraleren?
Offline Stijn - 15/01/2008 19:53 (laatste wijziging 15/01/2008 19:54)
Avatar van Stijn PHP expert http://www.php....m/a/mirror
Offline tomie94 - 15/01/2008 19:55 (laatste wijziging 15/01/2008 19:57)
Avatar van tomie94 PHP interesse ik had hem daarna die ook geinstarleerd. maar wat moet ik nu doen want ik snap er echt n iks van

EDIT:

waar moet ik uit kiezen bij de webservers(bij de install)...
Offline Stijn - 15/01/2008 20:14
Avatar van Stijn PHP expert Apache als je apache hebt anders None?
Offline tomie94 - 16/01/2008 15:49 (laatste wijziging 16/01/2008 17:26)
Avatar van tomie94 PHP interesse oke heb hem geinstraleerd maar hoe kun je dan het script uitvoeren?

EDIT:

Via uitvoeren tik ik dit: C:\Program Files\PHP\exe.exe C:\irc\bot.php

dan krijg ik de melding dat het niet bestaat. als ik ze allebei los intik wel... weet iemand hoe het wel moet?.
Offline Ricky - 16/01/2008 20:38
Avatar van Ricky PHP beginner Zet je php-bestand is gewoon in die php-map
Dan hoef je alleen maar exe.exe bot.php te doen...
Offline tomie94 - 17/01/2008 14:46
Avatar van tomie94 PHP interesse dat werkt
Offline tomie94 - 17/01/2008 14:46 (laatste wijziging 20/01/2008 14:07)
Avatar van tomie94 PHP interesse ik gebruik de volgende code:
  1. <?php
  2. include("config.php");
  3.  
  4. if(!$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) {
  5. die('Fatale fout: socket kon niet worden aangemaakt.');
  6. }
  7. echo 'Socket aangemaakt'."\n";
  8.  
  9. if(!socket_bind($socket,$config['hostname'])) {
  10. die('Fatale fout: verbinding kon niet worden gekoppeld aan hostname '.$config['hostname'].'.');
  11. }
  12. echo 'Verbinding gekoppeld aan hostname'."\n";
  13.  
  14. if(!socket_connect($socket,$config['server'],$config['poort'])) {
  15. die('Fatale fout: verbinding met server kon niet tot stand worden gebracht.');
  16. }
  17. echo 'Verbinden...'."\n";
  18.  
  19. function schrijf($data) {
  20. global $socket;
  21. socket_write($socket,$data."\r\n");
  22. }
  23.  
  24. schrijf('USER '.$config['ident'].' '.$config['hostname'].' '.$config['server'].' :'.$config['realname']);
  25. schrijf('NICK '.$config['nickname']);
  26. $f = 0;
  27. $inKanaal = false;
  28. while (TRUE) {
  29. if (socket_select($_r = array($socket), $_e = NULL, $_w = NULL, 0 , 200000 ))
  30. {
  31. $data = @socket_read($socket, 65000);
  32. if ($data == '' || $data == "\n" ) break;
  33.  
  34. $eData = explode(" ",$data);
  35. for($i = 0; isset($eData[$i]); $i++) {
  36. $eData[$i] = trim($eData[$i]);
  37. }
  38. echo $data."\n";
  39. if($inKanaal == false && strstr($data,'MOTD')) {
  40. // Eerst kanalen binnengaan
  41. for($i = 0; isset($config['kanalen'][$i]); $i++) {
  42. schrijf('JOIN '.$config['kanalen'][$i]);
  43. }
  44. $inKanaal = true;
  45. }
  46.  
  47. if(strstr($data,'PING')) {
  48. schrijf('PRIVMSG #testkanaal : PONG');
  49.  
  50.  
  51.  
  52. }
  53.  
  54. }
  55. }
  56.  
  57. ?>


dit werkt als ik PING intik krijg ik netjes PONG terug.

maar als ik shsyaPINGsjdnsu intik krijg ik ook PONG terug. ik wil dat dat dus niet kan hoe moet ik dat doen?
Offline mitshell - 20/01/2008 14:12 (laatste wijziging 20/01/2008 14:13)
Avatar van mitshell Nieuw lid
  1. <?php
  2. if($eData[0] == 'PING') {
  3. schrijf('PONG '.$eData[1]);
  4. }
  5. if ($eData[3] == ':PING') {
  6. schrijf('PRIVMSG '.$eData[2].' :PONG');
  7. }
  8. ?>


probeer dat s
Offline tomie94 - 20/01/2008 14:16
Avatar van tomie94 PHP interesse dat werkt maar wat is dat 2e stukje code dan?
Offline mitshell - 20/01/2008 14:17 (laatste wijziging 20/01/2008 14:18)
Avatar van mitshell Nieuw lid
Citaat:
dit werkt als ik PING intik krijg ik netjes PONG terug.


dat doet het 2e stukje 
Offline tomie94 - 20/01/2008 14:18
Avatar van tomie94 PHP interesse en het eerste stukje...
Offline mitshell - 20/01/2008 14:20
Avatar van mitshell Nieuw lid Als je PING krijgt van server terug PONGen
Offline tomie94 - 20/01/2008 14:22
Avatar van tomie94 PHP interesse het werkt maar wat als ik bijvoorbeeld !regels nick* intik dan wil ik dat je de vogelde telst krijg: nick* lees de regels op url

*nick kan dus bijv ook tomie94 zijn
Offline mitshell - 20/01/2008 14:25 (laatste wijziging 20/01/2008 14:26)
Avatar van mitshell Nieuw lid
  1. //function nickname - boven die while zetten
  2. function nickname($str) {
  3. return substr(array_shift(explode('!',$str)),1);
  4. }
  5.  
  6. $nickname = nickname($edata[0]);
  7. if ($eData[3] == ':!regels') {
  8. schrijf('PRIVMSG '.$eData[2].' :'.$nickname.' lees de regels op url');
  9. }

Offline tomie94 - 20/01/2008 14:27 (laatste wijziging 20/01/2008 14:27)
Avatar van tomie94 PHP interesse doet het niet... dan sluit de bot meteen weer af.

EDIT: en als ik PING test intik krijg ik gewoon PONG terug 
Offline Bart - 20/01/2008 14:29
Avatar van Bart PHP expert Tomie94, ZUCHT.
Leer PHP en mIRC scripting.
Dan kan je eens overwegen een topic aan te maken met daarin een vraag. En als je dit doet, laat zien wat je ZELF al geprobeerd hebt en denk mee met de anderen die je proberen te helpen.
En loop niet te zeuren als een klein kind van 10,
"nee wil niet" "kan ik niet" "andere oplossing aub" etc.
Offline mitshell - 20/01/2008 14:29
Avatar van mitshell Nieuw lid http://plaatscode.be
Offline tomie94 - 20/01/2008 14:32
Avatar van tomie94 PHP interesse de hele code: Plaatscode: 5097
Offline mitshell - 20/01/2008 14:34
Avatar van mitshell Nieuw lid Zet function nickname is buiten die while
Offline tomie94 - 20/01/2008 14:37 (laatste wijziging 20/01/2008 14:39)
Avatar van tomie94 PHP interesse dit werkt. maar nu krijg ik m'n eigen nickname. ik wil graag de nickname die ik na !regels invoer zoals !regels naam dan zo ik dus naam lees de regels op url

Ik zal nog effe doorzoeken.

edit:

gevonden:
  1. if ($eData[3] == ':!regels') {
  2. schrijf('PRIVMSG '.$eData[2].' :'.$eData[4].' lees de regels op url');
  3. }
Offline mitshell - 20/01/2008 14:40 (laatste wijziging 20/01/2008 14:40)
Avatar van mitshell Nieuw lid begin maar met mirc ofzo
Offline tomie94 - 20/01/2008 14:43
Avatar van tomie94 PHP interesse probleempje: ben al over de 30 dagen trail heen...
Offline Koen - 20/01/2008 14:45
Avatar van Koen PHP expert kvirc?
Offline Bart - 20/01/2008 14:45
Avatar van Bart PHP expert Tomie!!
Das toch helemaal offtopic?!
Zoek op Google een free IRC client.
Wat had je verwacht dat we zouden doen? Je een serial geven?
Helaas daar doen we niet aan op Sima
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.328s