Raised This Month: $2 Target: $400
 0% 

PHP help please!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SweatyBanana
BANNED
Join Date: Sep 2005
Location: LOL
Old 04-05-2006 , 09:05   PHP help please!
Reply With Quote #1

Hey all...need some PHP help...keep getting this error on http://owned.dajoob.com/forums/ :

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /usr/local/djcsites/dajoob.com/owned/forums/server_net.php on line 306


FULL SOURCE CODE TO THIS


My phpbb forums that im having the problem on.


It is producing the error on this line:

Code:
$result = fread($this->socket, $status["unread_bytes"]);
I think it is because it isnt storing the socket correctly or something.

Code:
<?php ############################################################## ## Mod Title: Counter-Strike Server Info ## Mod Version: 1.0.0 ## Author: Jay < <a href="mailto:[email protected]">[email protected]</a> > Jay - http:##<a href="http://www.dvdfuture.com" target="_blank" rel="nofollow noopener">www.dvdfuture.com</a> ## Description: ##   This mod will query your CS server and grab the info ##   about it and then put it onto your phpBB2 board! ## ##   Thanks to <a href="http://www.phprcon.net/" target="_blank" rel="nofollow noopener">http://www.phprcon.net/</a> PHPRcon for the use ##   of their code!! Make sure to go and CHECK IT OUT! ## ## Installation Level: (easy) ## Installation Time: 5-10 Minutes ## Files To Edit: ##   index.php, ## index_body.tpl, ## server_info.php ## ## Included Files: ##   server_info.php ##   server_net.php ############################################################## ## This MOD is released under the GPL License. ## Intellectual Property is retained by the MOD Author(s) listed above ############################################################## ## For Security Purposes, Please Check: http:##<a href="http://www.phpbb.com/mods/downloads/" target="_blank" rel="nofollow noopener">www.phpbb.com/mods/downloads/</a> for the ## latest version of this MOD. Downloading this MOD from other sites could cause malicious code ## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered ## in our MOD-Database, located at: http:##<a href="http://www.phpbb.com/mods/downloads/" target="_blank" rel="nofollow noopener">www.phpbb.com/mods/downloads/</a> ############################################################## ############################################################## ## Author Note: ## Make sure and edit the next three variables: $server_ip ## $server_port, and $server_password or this MOD will NOT ## work correctly! ############################################################## ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ############################################################## class rcon {    var $socket;    var $server_ip;    var $server_port;    var $server_password;    var $challenge_number = 0;    ##Constructor    function rcon()    {    }    ##Open socket to gameserver    function connect($server_ip, $server_port, $server_password = "")    {       ##store server data       $this->server_ip = gethostbyname($server_ip);       $this->server_port = $server_port;       $this->server_password = $server_password;       ##open connection to gameserver       $fp = fsockopen("udp://" . $this->server_ip, $this->server_port);       if(!$fp)        return false;       ##store socket       $this->socket = $fp;       ##return success       return true;    }    ##Close socket to gameserver    function disconnect()    {       ##close socket       fclose($this->socket);    } ##function disconnect()    ##Get detailed player info via rcon    function serverinfo()    {       ##get server information       $status = $this->rcon_command("status");       ##if there is bad rcon password       if(trim($status) == "Bad rcon_password.")       {          return $status;       }        ##format global server info        $line = explode("\n", $status);        $map = substr($line[3], strpos($line[3], ":") + 1);        $players = trim(substr($line[4], strpos($line[4], ":") + 1));        $active = explode(" ", $players);        $result["ip"] = trim(substr($line[2], strpos($line[2], ":") + 1));        $result["name"] = trim(substr($line[0], strpos($line[0], ":") + 1));        $result["map"] = trim(substr($map, 0, strpos($map, "at:")));        $result["mod"] = "Counterstrike";        $result["game"] = "Halflife";        $result["activeplayers"] = $active[0];        $result["maxplayers"] = substr($active[2], 1);        ##format player info        for($i = 1; $i <= $result["activeplayers"]; $i++)        {           ##get possible player line           $tmp = $line[$i + 6];           ##break if no more players are left           if(substr_count($tmp, "#") <= 0)           {              break;           }           ##name           $begin = strpos($tmp, "\"") + 1;           $end = strrpos($tmp, "\"");           $result[$i]["name"] = substr($tmp, $begin, $end - $begin);           $tmp = trim(substr($tmp, $end + 1));           ##Frag           $end = strpos($tmp, " ");           $result[$i]["frag"] = substr($tmp, 0, $end);           $tmp = trim(substr($tmp, $end));           ##Time           $end = strpos($tmp, " ");           $result[$i]["time"] = substr($tmp, 0, $end);           $tmp = trim(substr($tmp, $end));          ##Ping          $end = strpos($tmp, " ");          $result[$i]["ping"] = substr($tmp, 0, $end);          $tmp = trim(substr($tmp, $end));        }        ##return formatted result        return $result;    }    ##Get all maps in all directories    function servermaps()    {       ##get server information       $maps = $this->rcon_command("maps *");       ##if there is bad rcon password       if(trim($maps) == "Bad rcon_password.")        return $maps;       $line = explode("\n", $maps);       $count = sizeof($line) - 4;       ##format maps       for($i = 0; $i <= $count; $i++)       {          $text = $line[$i];          ##at directory output sorted map list          if(strstr($text, "Dir:"))          {             ##reset counter             $mapcount = 0;             ##parse directory name             $directory = strstr($text, " ");          } ##if(strstr($text, "Dir:"))          else if(strstr($text, "(fs)"))          {             ##parse mappath             $mappath = strstr($text, " ");             ##parse mapname             ##if no "/" is included in the "maps * " result             if(!($tmpmap = strrchr($mappath, "/")))              $tmpmap = $mappath;             ##parse mapname without suffix (.bsp)             $result[$i] = substr($tmpmap, 1, strpos($tmpmap, ".") - 1);          } ##else if(strstr($text, "(fs)"))       } ##for($i = 1; $i <= $count; $i++)       ##return formatted result       return $result;    } ##function servermaps()    ##Get server rules via info protocoll    function serverrules()    {       ##build info command       $buffer = "\xff\xff\xff\xffrules\x00";       $buffer = $this->communicate($buffer);       ##seperate rules       $buffer = substr($buffer, 7);       $buffer = explode("\x00", $buffer);       $buffer_count = sizeof($buffer) / 2;       ##build rules array       for($i = 1; $i < $buffer_count; $i++)       {          ##rule name          $result[$i]["name"] = $buffer[2 * $i];          ##rule value          $result[$i]["value"] = $buffer[2 * $i + 1];       }       ##return formatted result       return $result;    } ##function serverrules()    ##Execute rcon command on open socket $fp    function rcon_command($command, $pagenumber = 0)    {        ##get challenge number        if($this->challenge_number == "")        {            $challenge = "\xff\xff\xff\xffchallenge rcon\n";            $buffer = $this->communicate($challenge);            $buffer = explode(" ", $buffer);            $this->challenge_number = trim($buffer[2]);        }        ##build command        $buffer = "\xff\xff\xff\xffrcon $this->challenge_number \"$this->server_password\" $command\n";        ##get specified page        while($pagenumber-- >= 0)        {            ##send rcon command            $result = $this->communicate($buffer);            ##clear buffer for further pages            $buffer = "";            ##get more then one package            if(substr($result, 0, 4) == "\xfe\xff\xff\xff")            {               $result2 = $this->communicate("");               if(strlen($result2) < strlen($result2))               {                   $result = substr($result2, 9) . substr($result, 14);               }               else               {                   $result = substr($result, 14) . substr($result2, 9);               }            }            ##get only one package            else if(substr($result, 0, 4) == "\xff\xff\xff\xff")            {                $result = substr($result, 5);            }            ##whatever other case            else            {                echo(" \n");            }        } ##while($pagenumber >= 0)        ##return unformatted result        return trim($result);    } ##function rcon_command ($command)    ##Communication between PHPrcon and the Gameserver    function communicate($buffer)    {        ##write command on socket        if($buffer != "")        {            fputs($this->socket, $buffer, strlen($buffer));        }        ##get results from server        $result = fread ($this->socket, 1);        $status = socket_get_status($this->socket);        $result = fread($this->socket, $status["unread_bytes"]);        ##return unformatted result        return $result;    } ##function comunicate($buffer) } ?>
SweatyBanana is offline
Send a message via AIM to SweatyBanana Send a message via Yahoo to SweatyBanana
n0obie4life
Veteran Member
Join Date: Dec 2004
Old 04-05-2006 , 09:54  
Reply With Quote #2

This mod doesn't work well on 1.6 servers.

I'm sure it has been said by the author
__________________
Plugins:
none

n0obie4life is offline
Janet Jackson
Veteran Member
Join Date: Mar 2005
Location: far, far away from here
Old 04-05-2006 , 10:19  
Reply With Quote #3

That mod is ooooooooooooooooooooold.
__________________
Janet Jackson is offline
SweatyBanana
BANNED
Join Date: Sep 2005
Location: LOL
Old 04-05-2006 , 15:34  
Reply With Quote #4

Oh c'mon..plz help me get rid of the error.
SweatyBanana is offline
Send a message via AIM to SweatyBanana Send a message via Yahoo to SweatyBanana
Janet Jackson
Veteran Member
Join Date: Mar 2005
Location: far, far away from here
Old 04-05-2006 , 20:52  
Reply With Quote #5

You want help ? Go here or look for a different mod.
__________________
Janet Jackson is offline
n0obie4life
Veteran Member
Join Date: Dec 2004
Old 04-06-2006 , 04:26  
Reply With Quote #6

I would like to make my own version of it when I'm free (I'm currently busy coding my own blog system..yeah, I can't stand wordpress anymore ).
__________________
Plugins:
none

n0obie4life is offline
Rirre
Veteran Member
Join Date: Nov 2006
Old 08-11-2009 , 06:29   Re: PHP help please!
Reply With Quote #7

Old topic, but i have exacly same problem with PHPrcon.
I would like to know how to fix that error also.
Rirre is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:22.


Powered by vBulletin®
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Theme made by Freecode