Simple PHP Letter Error. Please Help

I have been working on trying to fix a code I got from a friend. We host CounterStrike servers together, and I cannot seem to figure out this problem.

Hopefully someone here can help.

The code I have been working on is here.
http://184.154.138.58/test3.php?ip=184.154.138.58&port=36965

It is a code that displays server info that anyone can view.

However, if you look at the third line down, you will see

cZ» Sparta

I do not know why this “A” is there. It should be,

cZ» Sparta

Could anyone please help me?

[php]<?php
//Step 1: Gather the variables
$svip=$_GET[‘ip’];
$svport=$_GET[‘port’];
$parts = Explode(’/’, $_SERVER[“PHP_SELF”]);
$pagename = $parts[count($parts) - 1];

if (empty($svport)) {$svport=36963;}
if (!empty($_POST[‘server_ip’])) {
if (empty($_POST[‘server_port’])) {
header(“Location: $pagename?ip=”.$_POST[‘server_ip’]."&port=36963");
} else {
header(“Location: $pagename?ip=”.$_POST[‘server_ip’]."&port=".$_POST[‘server_port’]);
}
exit;
}

//Step 2: Prepare the form
if (empty($svip)) {
?>






<?php
exit;
}

//Step 3: Prepare the functions
function server_info($ip,$port) {
$fp = @fsockopen(“udp://”.$ip, $port, $errno, $errstr);
fwrite($fp, chr(1).chr(0).chr(251).chr(2));
return fread($fp,2048);
}

function server_players($ip,$port) {
$fp = @fsockopen(“udp://”.$ip, $port, $errno, $errstr);
fwrite($fp, chr(1).chr(0).chr(251).chr(5));
return fread($fp,2048);
}

function strToHex($string) {
$hex=’’;
for ($i=0; $i < strlen($string); $i++) {
if (strlen(dechex(ord($string[$i])))==1) {
$hex .= “0”.dechex(ord($string[$i]));
} else {
$hex .= dechex(ord($string[$i]));
}
}
return $hex;
}

function hexToStr($hex) {
$string=’’;
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}

//Step 4: Gather raw data from udp return, strip the header.
$v_temp=substr(strToHex(server_info($svip,$svport)),8);
if ($v_temp=="") {
echo “Timeout! Server does not answer!
Maybe it is offline or busy. Try again later.
<input type=“button” onClick=“location.href=’”.$pagename.”’" value=“Back”/>";
exit;
}

//Step 5: Gather has_password,has_fow,has_ff,has_lua, change them to text
$v_mixed=hexdec(substr($v_temp,0,2));
$v_values="";
while($v_mixed!=1) {
if ($v_mixed % 2==true) {
$v_values=$v_values.“1”;
} else {
$v_values=$v_values.“0”;
}
$v_mixed=intval($v_mixed/2);
}
for ($i=1; $i==8-strlen($v_values); $i++) {
$v_values=“0”.$v_values;
}
$password=substr($v_values,1,1);
$fow=substr($v_values,3,1);
$ff=substr($v_values,4,1);
$lua=substr($v_values,7,1);
$us=substr($v_values,2,1);

if ($password==“1”) {
$password=“Password protected”;
} else {
$password=“No Password”;
}

if ($fow==“1”) {
$fow=“On”;
} else {
$fow=“Off”;
}

if ($ff==“1”) {
$ff=“On”;
} else {
$ff=“Off”;
}

if ($lua==“1”) {
$lua=“Server uses Lua scripts”;
} else {
$lua=“No scripts”;
}

if ($us==“1”) {
$us=“Yes”;
} else {
$us=“No, everyone”;
}

//Step 6: Gather sv_name,sv_map,create the length
$svname=utf8_encode(hexToStr(substr($v_temp,4,hexdec(substr($v_temp,2,2))2)));
$namelen=strlen(hexToStr(substr($v_temp,4,hexdec(substr($v_temp,2,2))2)));
$svmap=hexToStr(substr($v_temp,6+$namelen
2,hexdec(substr($v_temp,4+$namelen
2,2))*2));

//Step 7: Get Player+PlayerMax+Bots
if (strlen($v_temp)-strlen($namelen)*2-strlen($svmap)*2-4==8) {
$players=hexdec(substr($v_temp,-6,2));
$maxplayers=hexdec(substr($v_temp,-4,2));
$bots=hexdec(substr($v_temp,-2,2));
} else {
$players=hexdec(substr($v_temp,-8,2));
$maxplayers=hexdec(substr($v_temp,-6,2));
$bots=hexdec(substr($v_temp,-2,2));
}
if ($bots==1) {$name_bots=“bot”;} else {$name_bots=“bots”;}

//Step 8: Get Gamemode
if (strlen($v_temp)-$namelen*2-strlen($svmap)*2-4==8) {
$gamemode=“Standard”;
} else {
$gamemodes=array(“Death Match”,“Team Death Match”,“Construction”,“Zombie”);
$gamemode=$gamemodes[intval(substr($v_temp,-4,2))-1];
}

//Step 9: Output the data to html
echo ‘

Server IP
Server Port
OK
’;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “
IP $svip
Port $svport
Name $svname
Map $svmap
Players $players/$maxplayers ($bots $name_bots)
Password $password
U.S.G.N. Users Only $us
Fog of War $fow
Friendly Fire $ff
Lua Scripts $lua
Gamemode $gamemode

”;
echo ‘’;
echo “”;

//Step 10: Output Player data, it’s easier here
$v_temp=substr(strToHex(server_players($svip,$svport)),10);
$last=0;
for ($i = 1; $i <= 32; $i++) {
$v_temp=substr($v_temp,$last);
$userlen=hexdec(substr($v_temp,2,2))*2;
if (hexdec(substr($v_temp,0,2))==0) {
break;
}
$player_id=hexdec(substr($v_temp,0,2));
$player_name=utf8_encode(hexToStr(substr($v_temp,4,$userlen)));
$player_score=hexdec(substr($v_temp,$userlen+10,2).substr($v_temp,$userlen+8,2).substr($v_temp,$userlen+6,2));
$player_deaths=hexdec(substr($v_temp,$userlen+18,2).substr($v_temp,$userlen+16,2).substr($v_temp,$userlen+14,2));
if (hexdec(substr($v_temp,$userlen+4,2))==1) {
$player_team=“Terrorist”;
} elseif (hexdec(substr($v_temp,$userlen+4,2))==2) {
$player_team=“Counter-Terrorist”;
} else {
$player_team=“Spectator”;
}
echo “

”;
$last=$userlen+22;
}
echo “
ID Name Score Deaths Team
$player_id $player_name $player_score $player_deaths $player_team
”;
[/php]

I would appreciate any help or information as to why this error keeps occurring.

Sponsor our Newsletter | Privacy Policy | Terms of Service