hi. I have been working on this page for a while and all I get is errors...(this time: Parse error: syntax error, unexpected $end in /header.php on line 291) can someone please help to fix this?

<?php

class headers {
function startheaders() {
global $ir, $set;
echo <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>{$set['game_name']}</title>
<style type="text/css">
<!--
body {
background-color: #DEDEDE;
margin-top: 0px;
margin-bottom: 0px;
font-family:calibri, helvetica, arial, geneva, sans-serif;font-size:12px;color: black;
   scrollbar-base-color: #005B70; 
   scrollbar-arrow-color: #F3960B;
   scrollbar-DarkShadow-Color: #000000;
}
a:visited,a:active,a:hover,a:link { color: black;text-decoration: none; }
table,tr,td { font-family:helvetica, arial, geneva, sans-serif;font-size: 12px; }
img { border:none; }
textarea { font-family:helvetica, arial, geneva, sans-serif;font-size:12px;color: black; }
.table2 {
}
.lgrad {
background-image:url(lgrad.jpg);
background-repeat:repeat-y;
width:19px;
}
.linegrad {
background-image:url(linegrad.PNG);
background-repeat:repeat-y;
background-align: center;
width:2px;
}
.rgrad {
background-image:url(rgrad.jpg);
background-repeat:repeat-y;
width:19px;
}
.dgrad {
background-image:url(dgrad.jpg);
background-repeat:repeat-x;
height:38px;
}
.dgradl {
background-image:url(dgradl.jpg);
background-repeat:no-repeat;
height:38px;
width:38px;
}
.dgradr {
background-image:url(dgradr.jpg);
background-repeat:no-repeat;
height:38px;
width:38px;
}
.center {
width:932px;
background-color:#FFFFFF;
vertical-align:top;
text-align:center;
}
.table {
background-color:#000000;
}
.table3 {
background-color:#000000;
}
.table td {
background-color:#DEDEDE;
height:22px;
}
.table3 td {
background-color:#CCCCCC;
}
td .alt {
background-color:#EEEEEE;
height:22px;
}
td .h {
background-image:url(tablehgrad.png);
background-repeat:repeat-x;
font-weight: bold;
background-color: #D6D6D6;
}
.table th {
background-image:url(tablehgrad.png);
background-repeat:repeat-x;
font-weight: bold;
background-color: #D6D6D6;
}
-->
</style></head>
<body>
<center>
<table width="970" border="0" cellpadding="0" cellspacing="0" class="table2">
<tr>
<td class="lgrad"></td>
<td class="center">
EOF;
}
function userdata($ir,$lv,$fm,$cm,$dosessh=1)
{
global $db,$c,$userid, $set;
$IP = ($_SERVER['HTTP_X_FORWARDED_FOR'])
    ?  $_SERVER['HTTP_X_FORWARDED_FOR']
    :  $_SERVER['REMOTE_ADDR'];
$db->query("UPDATE users SET laston=unix_timestamp(),lastip='$IP' WHERE userid=$userid");





if($ir['mission'] != 0)
{
$mq=mysql_query("SELECT * FROM missions WHERE id=".$ir['mission']."",$c);
if(mysql_num_rows($mq)== 0)
{
mysql_query("UPDATE users SET mission=0 WHERE userid=".$userid."",$c);
}
$rm=mysql_fetch_array($mq);
if($rm['location_on']== 1)
{
if($rm['location_value'] != $ir['location'])
{ mysql_query("UPDATE users SET mission=0 WHERE userid=".$userid."",$c);
event_add($ir['userid'],"Your mission has been ended because you have moved city.",$c);
 }
}
if($rm['item_on']== 1 && $rm['attack_on']== 0)
{
$invq=mysql_query("SELECT * FROM inventory WHERE inv_userid=".$userid." AND inv_itemid=".$rm['item_value']."",$c);
if(mysql_num_rows($invq))
{ 
$exp=rand($ir['level'],$ir['level']*5);
mysql_query("UPDATE users SET mission=0, money=money+".$rm['money'].", crystals=crystals+".$rm['crystals'].", exp=exp+".$exp.", mission_counter=mission_counter+'1' WHERE userid=".$userid."",$c);
$mission=($ir['mission']);
mysql_query("INSERT INTO missdone VALUES ($userid,$mission);",$c);
mysql_query("DELETE FROM inventory WHERE inv_userid=$userid AND inv_itemid=".$rm['item_value']."",$c);
event_add($ir['userid'],"You have completed the mission and you was credited your reward.",$c);
 }
}
if($rm['item_on']== 0 && $rm['attack_on']== 0)
{
mysql_query("UPDATE users SET mission=0 WHERE userid=".$userid."",$c);
$owner=1;
event_add($owner,"The mission $rm[name] mission ($rm[id]) is not set to a mission, Please do so.",$c);
}
if($rm['item_on']== 0 && $rm['attack_on']== 1)
{
$usa=$_SESSION['mission_attack'];
$aa=mysql_query("SELECT * FROM missions WHERE id=".$ir['mission']." AND attack_value=".$_SESSION['mission_attack']."",$c);
if(mysql_num_rows($aa))
{
$exp=rand($ir['level'],$ir['level']*10);
mysql_query("UPDATE users SET mission=0, money=money+".$rm['money'].", crystals=crystals+".$rm['crystals'].", exp=exp+".$exp.", mission_counter=mission_counter+'1' WHERE userid=".$userid."",$c);
$mission=($ir['mission']);
mysql_query("INSERT INTO missdone VALUES ($userid,$mission);",$c);
event_add($ir['userid'],"You have completed the mission and you was credited your reward.",$c);
}
}







if(!$ir['email'])
{
global $domain;
die ("<body>Your account may be broken. Please mail help@{$domain} stating your username and player ID.");
}
if($dosessh && ($_SESSION['attacking'] || $ir['attacking']))
{
print "You lost all your EXP for running from the fight.";
$db->query("UPDATE users SET exp=0,attacking=0 WHERE userid=$userid");
$_SESSION['attacking']=0;
}
$enperc=(int) ($ir['energy']/$ir['maxenergy']*100);
$wiperc=(int) ($ir['will']/$ir['maxwill']*100);
$experc=(int) ( $ir['exp']/$ir['exp_needed']*100);
$brperc=(int) ($ir['brave']/$ir['maxbrave']*100);
$hpperc=(int) ($ir['hp']/$ir['maxhp']*100);
$enopp=100-$enperc;
$wiopp=100-$wiperc;
$exopp=100-$experc;
$bropp=100-$brperc;
$hpopp=100-$hpperc;
$d="";
$u=$ir['username'];
if($ir['donatordays']) { $u = "<font color=red>{$ir['username']}</font>";$d="<img src='donator.gif' alt='Donator: {$ir['donatordays']} Days Left' title='Donator: {$ir['donatordays']} Days Left' />"; }

 $gn=""; 
global $staffpage;

$bgcolor = 'FFFFFF';

print <<<OUT
<img src="title.jpg" alt="Mccodes Version 2" /><br />
<!-- Begin Main Content -->
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="20%" bgcolor="#$bgcolor" valign="top">
<!-- Side Panel -->
<b>Name:</b> $gn{$u} [{$ir['userid']}] $d<br />
<b>Money:</b> {$fm}<br />
<b>Level:</b> {$ir['level']}<br />
<b>Crystals:</b> {$ir['crystals']}<br />
[<a href='logout.php'>Emergency Logout</a>]
<hr />
<b>Energy:</b> {$enperc}%<br />
<img src=greenbar.png width=$enperc height=10><img src=redbar.png width=$enopp height=10><br />
<b>Will:</b> {$wiperc}%<br />
<img src=bluebar.png width=$wiperc height=10><img src=redbar.png width=$wiopp height=10><br />
<b>Brave:</b> {$ir['brave']}/{$ir['maxbrave']}<br />
<img src=yellowbar.png width=$brperc height=10><img src=redbar.png width=$bropp height=10><br />
<b>EXP:</b> {$experc}%<br />
<img src=navybar.png width=$experc height=10><img src=redbar.png width=$exopp height=10><br />
<b>Health:</b> {$hpperc}%<br />
<img src=greenbar.png width=$hpperc height=10><img src=redbar.png width=$hpopp height=10><br /><hr />
<!-- Links -->
OUT;
if($ir['fedjail'])
{
$q=$db->query("SELECT * FROM fedjail WHERE fed_userid=$userid");
$r=$db->fetch_row($q);
die("<b><font color=red size=+1>You have been put in the {$set['game_name']} Federal Jail for {$r['fed_days']} day(s).<br />
Reason: {$r['fed_reason']}</font></b></body></html>");
}
if(file_exists('ipbans/'.$IP))
{
die("<b><font color=red size=+1>Your IP has been banned from {$set['game_name']}, there is no way around this.</font></b></body></html>");
}
}
}

function menuarea()
{
include "mainmenu.php";
global $ir,$c;
$bgcolor = 'FFFFFF';
print '</td><td width="2" class="linegrad" bgcolor="#'.$bgcolor.'">&nbsp;</td><td width="80%"  bgcolor="#'.$bgcolor.'" valign="top"><br /><center>';
if($ir['hospital'])
{
  print "<b>NB:</b> You are currently in hospital for {$ir['hospital']} minutes.<br />";
}
if($ir['jail'])
{
  print "<b>NB:</b> You are currently in jail for {$ir['jail']} minutes.<br />";
}
print "<a href='donator.php'><b>Donate to {$set['game_name']} now for game benefits!</b></a><br />";
}
function smenuarea()
{
include "smenu.php";
global $ir,$c;
$bgcolor = 'FFFFFF';
print '</td><td width="2" class="linegrad" bgcolor="#'.$bgcolor.'">&nbsp;</td><td width="80%"  bgcolor="#'.$bgcolor.'" valign="top"><center>';
}
function endpage()
{
global $db;
print <<<OUT
</center>
</td>
</tr>
</table></td>
<td class="rgrad"></td>
</tr>
<tr>
<td colspan="3">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td class="dgradl">&nbsp;</td>
<td class="dgrad">&nbsp;</td>
<td class="dgradr">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
{$db->num_queries} queries</body>
</html>
}

?>

OUT;

is missing.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.