Jump to content

[SOLVED] Horrible calendar/date question - any help would be much appreciated!


HughbertD

Recommended Posts

Hi

 

I have gotten hold of an event calendar script that allows a user to add events to a calendar.

 

However, I have stumbled at the first hurdle.

 

When I click next month - i get a lot of jibberish printed out.

 

My code'

 

 

<?php


// there is NO NEED to edit ANY of this code

$ev_dat = array();
for ($i=0;$i<32;$i++) {
    $ev_dat[$i]=0;
}

$now = date("Y-m-d", time());
list($ty, $tm, $td) = explode('-',$now); // ty=thisyear, etc. used for highlighting 'today'

include("cal_parms.php"); // assorted configuration variables
include($dat_names); // retrieved from cal_parms.php as a 'language' file

if (!isset($_GET['m'])) { 
    $m = date("m",mktime()); 
} else {
    $m = $_GET['m'];
}
if (!isset($_GET['y'])) {
    $y = date("Y",mktime());
} else {
    $y = $_GET['y'];
}

/*== get what weekday the first is on ==*/ 
$mint = intval($m);
$yint = intval ($y);
$tmpd = getdate(mktime(0,0,0,intval($m),1,intval($y))); 
$month = $tmpd["month"]; 
$firstwday= $tmpd["wday"]; 
if ($firstDayIsMonday == 1) {
if ($firstwday == 0) {
	$firstwday = 6;
} else {
	$firstwday--;
}
}
$lastday = mk_getLastDayofMonth($m,$y); 

/*== get the last day of the month ==*/ 
function mk_getLastDayofMonth($mon,$year) 
{
    for ($tday=28; $tday <= 31; $tday++) 
    {
        $tdate = getdate(mktime(0,0,0,intval($mon),intval($tday),intval($year))); 
	echo "mon = $mon<br>tday = $tday<br>year = $year<br>"
	;
$tdate = getdate(mktime(0,0,0,intval($mon),intval($tday),intval($year)));
        if ($tdate["mon"] != $mon) 
        { 
            break;
        }
    }
    $tday--; 
    return $tday; 
}
  
// compute range of dates for this month to match dates in database in the format yyyy-mm-dd
if (strlen($m)<2) {
    $q="0";
    $q.=$m;
}
else {
    $q = $m;
}	
$dats_beg = $y. "-". $q. "-01";
$dats_en = $y. "-". $q. "-". $lastday;
  
// open db conn and select all records where date is between $dats_beg and $dats_en
include("cal_db_conn.php");
mysql_connect($db_host, $db_login, $db_pass) or die ("Can't connect!"); 
mysql_select_db($db_name) or die ("Can't open database!"); 
$query = "SELECT * FROM $db_table WHERE (ev_dat>='$dats_beg') AND (ev_dat<='$dats_en') "; 
  
$result = mysql_db_query($db_name, $query); 
// any matches?
if ($result)
{
    // handle the matches and pass relevant info to arrays
    while ($myrow = mysql_fetch_array($result)) 
    { 
        $found = $myrow['ev_dat'];
        $pieces = explode("-", $found);
        $dd = intval($pieces[2]);
        $ev_dat[$dd] = $myrow['id'];
    }
}
?> 
<table cellpadding="1" cellspacing="1" border="0" bgcolor="#<? echo $bg_edge; ?>"> 
<tr><td colspan="7" bgcolor="#<? echo $bg_top; ?>"> 
<table cellpadding="1" cellspacing="1" border="0" width="100%"> 
<tr bgcolor="#<? echo $bg_top; ?>"><th width="20" style="<?php echo $hcell; ?>"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?=(($m-1)<1) ? 12 : $m-1 ?>&y=<?=(($m-1)<1) ? $y-1 : $y ?>"><img src='calendar/images/prev.gif' height='18' width='18' alt='' border='0' /></a></th> 
<th style="<?php echo $hcell; ?>">
<?php
echo  "<a href='calendar/show-month.php?mon=".$m. "&yr=".$y. "'>";
echo "<span style='text-decoration:none'>". $mo[intval($m)]. " ". $y. "</span></a>";
?>
</th> 
<th width="20" style="<? echo $hcell; ?>"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?m=<?=(($m+1)>12) ? 1 : $m+1 ?>&y=<?=(($m+1)>12) ? $y+1 : $y ?>"><img src='calendar/images/next.gif' height='18' width='18' border='0' alt='' /></a></th> 
</tr>
</table> 
</td></tr> 
<tr bgcolor="#<? echo $bg_top; ?>">
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[1]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[2]; ?></th> 
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[3]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[4]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[5]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[6]; ?></th> 
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[7]; ?></th>
</tr> 

<?php  
$d = 1; 
$wday = $firstwday; 
$firstweek = true; 
/*== loop through all the days of the month ==*/ 
while ( $d <= $lastday) 
{ 
    /*== set up blank days for first week ==*/ 
    if ($firstweek) 
    {
        if ($wday!=0) {	 
            echo "<tr bgcolor='#". $bg_tabl. "'>\n";
            for ($i=1; $i<=$firstwday; $i++) { 
                 echo "<td style='". $tcell. "' bgcolor='#". $bg_fill. "'> </td>\n"; 
            }
        }
        /*== Sunday start week with <tr> ==*/ 
        else { 
            echo "<tr bgcolor='#". $bg_tabl. "'>\n";
        } 
        $firstweek = false;
    }
    /*== check for event ==*/   
    echo "<td style='". $tcell. "' ";
    // is this day 'today' AND there's no event today
    if (($ty==$y) && ($tm==$m) && ($td == $d) && (!$ev_dat[$d])) { 
        echo "bgcolor='#". $bg_now. "'>". $d;
    }
    elseif ($ev_dat[$d]) {
        // get what's happening that day and use as 'mouseOver' for the link
        $query = "SELECT * FROM $db_table WHERE id=$ev_dat[$d] ";
        $result = mysql_query($query); 
        $ev = mysql_fetch_array($result);
        $titl = $ev['ev_title'];
        echo "bgcolor='#". $bg_act. "'>";
        $url = "calendar/show.php?event=". $ev_dat[$d]. "&sho=". $win_sho;
        if ($win_sho=="1") {
             echo "<a href='javascript:winy(\"". $url."\")' title=\"". $titl. "\">". $d. "</a>";
        }
        else {
            echo "<a href='". $url. "' title=\"". $titl. "\">". $d. "</a>";
        }  
    }
    else {
        echo "bgcolor='#". $bg_days. "'>". $d; 
    }
    echo "</td>\n"; 

    /*== Saturday end week with </tr> ==*/ 
    if ($wday==6) {
        echo "</tr>\n"; 
    }
    $wday++; 
    $wday = $wday % 7; 
    if (($wday==0) AND ($d!=$lastday)){ echo "<tr bgcolor='#". $bg_tabl. "'>\n"; }
        $d++; 
    }
    // and close off the table
    if (($wday!=7) AND ($wday!=0)) {
        for ($i=$wday; $i<=6; $i++) {
            echo "<td style='". $tcell. "' bgcolor='#". $bg_fill. "'> </td>\n";
        }
        echo "</tr>";
    } 
echo "\n</table>"; 
include("win_open.php");
?>

 

I apologise for throwing all this code at you but I i have no idea where to begin with it.

 

If anyone can see why this is happening I would much appreciate it!

I'm guessing that the problem is due to short open tags being used in some places in the code - <?  The HTML concerning next month... is where they are being used.

 

I recommend finding all <? and changing them to <?php and finding all <?= and changing them to <?php echo

 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.