Foros del Web » Programando para Internet » PHP »

Actualización de código PHP antiguo (pocas líneas)

Estas en el tema de Actualización de código PHP antiguo (pocas líneas) en el foro de PHP en Foros del Web. Hola, hace tiempo tengo la idea de poder poner en mi web un listado de la gente que está conectada a mi canal de IRC. ...
  #1 (permalink)  
Antiguo 19/04/2013, 17:31
Avatar de bragolsul  
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Actualización de código PHP antiguo (pocas líneas)

Hola, hace tiempo tengo la idea de poder poner en mi web un listado de la gente que está conectada a mi canal de IRC. Como una vista previa de los usuarios conectados.

Buscando en la web encontré un código hecho por Vlan7, que data de 2006 y que según dice, hace lo que quiero. Como no me funciona, antes de admitir que es culpa mía, prefiero echarle la culpa al código y por tanto, consultarles si el mismo está acorde a los tiempos que corren, ya que lo estoy probando en un server con PHP 5.3.4 y no me da ni pelota (bah, me dice que la constante salir no está definida).
¿Es mucha molestia si le hechan un vistazo?

Código PHP:
Ver original
  1. <?php
  2. // botbc 2.0 Por vlan7
  3. // http://www.vlan7.org
  4.  
  5. $servidor = 'dune.irc-hispano.org';
  6. $puerto = 6667;
  7. $nick = 'botbc';
  8. $host = 'www.vlan7.org';
  9. $canal='#canal';
  10.  
  11. $con = array();
  12.  
  13. $con['socket'] = fsockopen($servidor, $puerto);
  14.  
  15. if (!$con['socket']) {
  16.   print ("No se ha podido conectar con $servidor en el puerto $puerto");
  17. } else {
  18.   fputs($con['socket'], "USER $nick $host $host ".$nick."\n\r");
  19.   fputs($con['socket'], "NICK $nick ".$host."\n\r");
  20.  
  21.   $salir=false;
  22.   $eof=false;
  23.   while ((!$eof) && (!$salir)) {
  24.   $con['buffer']['linea'] = trim(fgets($con['socket'], 1024));
  25.  
  26.   if(substr($con['buffer']['linea'], strpos($con['buffer']['linea'], 'End of /WHO list'))=='End of /WHO list') {
  27.     fclose($con['socket']);
  28.     $salir=true;
  29.   }
  30.  
  31.   if(substr($con['buffer']['linea'], 0, strlen($servidor)+5) == ':'.$servidor.' 352') {
  32.     $nicks = explode(" ", $con['buffer']['linea']);
  33.     print "$nicks[7] ";
  34.   }
  35.  
  36.   if(substr($con['buffer']['linea'], 0, 6) == 'PING :') {
  37.     fputs($con['socket'], "PONG :".substr($con['buffer']['linea'],6)."\n\r");
  38.     fputs($con['socket'], "WHO ". $canal ."\n\r");
  39.   }
  40.   if(!salir) {
  41.     $eof=feof($con['socket']);
  42.   }
  43. }
  44. }
  45. ?>
  #2 (permalink)  
Antiguo 19/04/2013, 17:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Actualización de código PHP antiguo (pocas líneas)

y los errores?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 20/04/2013, 18:19
Avatar de bragolsul  
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Actualización de código PHP antiguo (pocas líneas)

Ah, perdón.
Los errores son estos dos. El primero se repite unas 20 veces y luego aparece el otro.

( ! ) Notice: Use of undefined constant salir - assumed 'salir' in C:\Users\****\wamp\www\IRCusers\index.php on line 48
Call Stack
# Time Memory Function Location
1 0.0206 694944 {main}( ) ..\index.php:0

( ! ) Fatal error: Maximum execution time of 30 seconds exceeded in C:\Users\****\wamp\www\IRCusers\index.php on line 32
Call Stack
# Time Memory Function Location
1 0.0206 694944 {main}( ) ..\index.php:0
  #4 (permalink)  
Antiguo 20/04/2013, 18:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Actualización de código PHP antiguo (pocas líneas)

El primer error es porque aquí:

Código PHP:
Ver original
  1. if(!salir) {

debería ser

Código PHP:
Ver original
  1. if(!$salir) {

y el segundo intenta aumentando el tiempo de ejecución a ver si funciona.

Código PHP:
Ver original
  1. ini_set('max_execution_time', SEGUNDOS AQUI);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 21/04/2013, 13:11
Avatar de bragolsul  
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Actualización de código PHP antiguo (pocas líneas)

:FACEPALM:
Si, lo de salir era eso.
El tiempo se lo aumenté, pero el error sigue saliendo.
La conexión se establece pero al parecer lo que falla es la autenticación en el IRC, ya que en ningún momento veo aparecer al bot en el canal. Voy a ver qué puedo hacer con eso.

Muchas gracias andresdzphp.

Etiquetas: antiguo, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:00.