TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

Members
Stats
  • Total Posts: 195,994
  • Total Topics: 21,325
  • Online today: 348
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 0
  • Guests: 257
  • Total: 257

phpbox code question

Started by IchBin, March 15, 2005, 02:09:34 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

IchBin

I have a script that has a bunch of phpcode to query a server to get information like what map is playing, and who is on the server currently. At the bottom of the phpcode is the html code for output. How can I get this to work in one of my TPortal blocks? Here's the code if you'd like to see it.
<?php
/*
server.php
This script connects to a Call of Duty server, and puts the server information in a table.
Change the variables below to get it working.
You can also address the script as follows to get your own server information:
server.php?server=xxx.xxx.xxx.xxx:port (ie. server.php?server=137.224.238.228:28960)

Made by Ghostie (Peter Verboom)

Disclaimer:
This file is only ment for use on your website, not for redistribution.
Please refer to my clan (aG, http://www.ag-clan.nl) for credit.
*/

/*
Version history:
V 1.0 : Fetching server info. Simple layout
V 1.01: Layout changed, added pictures for maps.
V 1.02: Added possibility for other servers by server=xxx.xxx.xxx.xxx:port
V 1.1 : Fixed problem with some servers.
V 1.11: Layout changed.
V 1.12: Small player bug fixed, should be working on ALL servers now.
V 1.13: Fixed error when register_globals = off
V 1.14: Colors set in variables
V 2.0: Display image when server is offline
V 2.0.1 Small bug fix for newer PHP versions
V 3.0 Optimized for Call of Duty
*/

// Server ip and port:
if (!isset($_GET['server'])) {

$server_ip "69.93.65.219";
$server_port "28960";

} else {

$server explode(":"$_GET['server']);
$server_ip $server[0];
$server_port $server[1];

}

// Set the color variables:
$color1 "#acacac";
$color2 "#acacac";
$bgcolor "#acacac";

// Set the offline image:
$img_offline "images/offline.jpg";

// Do NOT change anything below this line!

function colors($string) {
$string str_replace("^0""<font color=\"black\">"$string);
$string str_replace("^1""<font color=\"red\">"$string);
$string str_replace("^2""<font color=\"darkgreen\">"$string);
$string str_replace("^3""<font color=\"yellow\">"$string);
$string str_replace("^4""<font color=\"blue\">"$string);
$string str_replace("^5""<font color=\"lightblue\">"$string);
$string str_replace("^6""<font color=\"pink\">"$string);
$string str_replace("^7""<font color=\"white\">"$string);
return 
$string "</font>";
}

function 
stripcolors($string) {
$string str_replace("^0"""$string);
$string str_replace("^1"""$string);
$string str_replace("^2"""$string);
$string str_replace("^3"""$string);
$string str_replace("^4"""$string);
$string str_replace("^5"""$string);
$string str_replace("^6"""$string);
$string str_replace("^7"""$string);
return 
$string;
}

// Creating the URL for the connection:
$server_ip "udp://" $server_ip;

// Open the connection:
$connect fsockopen($server_ip$server_port$errno$errstr30);
if (
$connect) {
// Set the timeout:
socket_set_timeout ($connect1000000);

// Get the information from the server, and put it into the $output array:

$send "ÃÆ'ƒÂÃ,¿ÃÆ'ƒÂÃ,¿ÃÆ'ƒÂÃ,¿ÃÆ'ƒÂÃ,¿" chr (0x02) . "getstatus";
fputs($connect$send);
fwrite ($connect$send);
$output fread ($connect1);
if (! empty (
$output)) {
   do {
     
$status_pre socket_get_status ($connect);
     
$output $output fread ($connect1);
     
$status_post socket_get_status ($connect);
   } while (
$status_pre['unread_bytes'] != $status_post['unread_bytes']);
};

// Close the connection:
fclose($connect);

// Select the variables from the $output array:
$output explode ("\\"$output);

$max_index array_search ("sv_maxclients"$output);
$max_clients $output[$max_index+1];

$max_index array_search ("mapname"$output);
$mapname $output[$max_index+1];

$max_index array_search ("sv_hostname"$output);
$hostname $output[$max_index+1];

$max_index array_search ("g_gametype"$output);
$gametype $output[$max_index+1];

if (
$gametype == "re") {
$gametype "Retrieval";
}
if (
$gametype == "dm") {
$gametype "Deathmatch";
}
if (
$gametype == "sd") {
$gametype "Search and Destroy";
}
if (
$gametype == "tdm") {
$gametype "Team Deathmatch";
}
if (
$gametype == "bel") {
$gametype "Behind Enemy Lines";
}
$last_value count($output) - 1;
$players_string $output[$last_value];
$players_string explode("\n"$players_string);

$i 1;
while (
$i != count($players_string)) {
$split explode(" "$players_string[$i], 3);
$playerlist[$i-1]['score'] = $split[0];
$playerlist[$i-1]['ping'] = $split[1];
$playerlist[$i-1]['player'] = $split[2];
$i++;
}

function 
cmp ($a$b) {
    if (
$a["score"] > $b["score"]) {
    return -
1;
    }
    if (
$a["score"] < $b["score"]) {
    return 
1;
    }
    if (
$a["score"] == $b["score"]) {
    return 
0;
    }
}

@
usort($playerlist"cmp");

$players count($playerlist);

// Create the image url:
if (substr($mapname03) == "dm/") {
$picture_src str_replace("dm/"""$mapname);
} else {
$picture_src str_replace("obj/"""$mapname);
}
$picture_src "/images/q3a_main/" $picture_src ".jpg";
}

// Check if the server is reached:
if (!$max_clients) {
?>

<html>
<head>
      <title>Server offline</title>
</head>
<body bgcolor="<?=$bgcolor?>">
<table align="center" bgcolor="<?=$color1?>">
<tr>
    <td><img src="<?=$img_offline?>" border="0"></td>
</tr>
</table>
</body>
</html>
<?
exit;
}

// Start the output:
?>
<html>
<head>
      <title><?=stripcolors($hostname)?></title>
</head>
<body bgcolor="#acacac">
<table width="150" border="0" align="center">

<tr>
    <td width="200" valign="top" bgcolor="<?=$color1?>">
    <table border="0">
         
         <tr>
             <td bgcolor="<?=$color2?>" width="200"><img src="<?=$picture_src?>"></td>
         </tr>
    </td>
    <td valign="top" bgcolor="<?=$color1?>">
        <table border="0">
        <tr>
            <td bgcolor="<?=$color2?>" width="200">Player name:</td>
        </tr>
        <?
        $i = 1;
        while (count($playerlist) != $i) {
        ?>
        <tr>
            <td bgcolor="<?=$color2?>" width="200"><font size="2">
                <?=colors(str_replace("\"", "", $playerlist[$i]['player']))?>
            </font></td>
           
        </tr>

        <?
        $i = $i + 1;
        }
    ?>
<tr><td><font size="2" color="<?=$color2?>">Call of Duty Serverstats created by <a href="mailto:peter.verboom@gnomezz.com">Ghostie</a></font></td></tr>
</table>
    </table>
    </td>

</tr>
</table>
<center>

</center>
</body>
</html>

IchBin

Well I did get another script to work using the include method. But I still cannot get this script to work. It seems that I cannot connect to the server. It gives me the error that the server is offline. I believe this is not your problem now hehe.

Bjørn

:) Probably not.

IF you want to try it in a block, remove the ?php and ?> from it, put all the html stuff inside a echo and remove the <html> and <head>/<body> tags. Then test it in the preview box. It may work...when the server is OK of course. ;)

NightOwl

#3
the phpbox seems refuse to fetch outside script.

This is the code it refuse to run the script:

echo'People in the Chatroom:<br /><script src="http://www.everywherechat.com/members.asp?room=', $modSettings['chatRoomName'], '"></script>';

knat

I wanted to use this code to get the latest post in a blog on the frontpage.

require("/customers/knat.net/knat.net/httpd.www/gw/SSI.php");
ssi_recentTopics();


but i get these errors:



Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /customers/knat.net/knat.net/httpd.www/gw/TPpreview.php(18) : eval()'d code on line 1

Parse error: parse error, unexpected $ in /customers/knat.net/knat.net/httpd.www/gw/TPpreview.php(18) : eval()'d code on line 1


im not any good at php just thought it might help  ;)


Bjørn

Hm..the preview box can't read SSI.php actually..how you tried to just make it show in the block? it might work there.

And you won't need require at all, just use ssi_recentTopics();...in fact, thats what "recent topics" block use.. ;)

knat

Well im not so good with php.  ???

I would really like a box saying like this:
Quote
Hello [username]

You are a part of the [groupname] group

If you think you belong in a different group then contact [admin name].

Could you help me out with that code bloc, or should i start study php ?  ;D

Btw the "recent topics" shows now after i installed your fix. ( no more 500 error ) Thanks  ;)

Bjørn

how about:
    global $db_prefix;
    $mgroup=array();
    $request = db_query("SELECT ID_GROUP,groupName FROM {$db_prefix}membergroups WHERE 1", __FILE__, __LINE__);
    if (mysql_num_rows($request) > 0){
        while($row=mysql_fetch_assoc($request)){
                $mgroup[]=array(
                        'id' => $row['ID_GROUP'],
                        'name' => $row['groupName'],
                );
        }
        mysql_free_result($request);
     }
     echo 'Hello '.$context['user']['name'].' !<br /><br />You are a part of these group(s):<br /><br />';

     foreach($mgroup as $mg){
         if(in_array($mg['id'],$context['TPortal']['membergroups']))
             echo $mg['name'].'<br />';
     }
     echo '<br />If you think you belong in a different group then contact admin.';


It wont work in preview mode, but it does in a block. As you can see, some variables are already present. Like username and which groups it belong. It just does not contain the names of groups, so thats what the SQl call is for.

knat


Pierse

#9
I am trying to insert this code to pull stats from my gallery.

include "gallery/cpmfetch/coppermine.php";
$objCpm = new cpm('/gallery');

$objCpm->cpm_formatStats("Here is a percent sign %% There are
   %f files in %c categories containing %a albums,  having served %v views and getting %n comments");

$objCpm->cpm_close();

However, I get this error when running phptest
QuoteWarning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/pierson/public_html/smf/TPpreview.php(18) : eval()'d code on line 1

Parse error: parse error, unexpected $ in /home/pierson/public_html/smf/TPpreview.php(18) : eval()'d code on line 1


output errors:
QuoteWarning: Unknown(gallery/cpmfetch/coppermine.php): failed to open stream: No such file or directory in /home/pierson/public_html/smf/Sources/Load.php(1042) : eval()'d code(31) : eval()'d code on line 1

Warning: Unknown(gallery/cpmfetch/coppermine.php): failed to open stream: No such file or directory in /home/pierson/public_html/smf/Sources/Load.php(1042) : eval()'d code(31) : eval()'d code on line 1

Warning: (null)(): Failed opening 'gallery/cpmfetch/coppermine.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/pierson/public_html/smf/Sources/Load.php(1042) : eval()'d code(31) : eval()'d code on line 1

Fatal error: Cannot instantiate non-existent class: cpm in /home/pierson/public_html/smf/Sources/Load.php(1042) : eval()'d code(31) : eval()'d code on line 2

any ideas?

This website is proudly hosted on Crocweb Cloud Website Hosting.