Jump to content

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


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

 

 

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.