!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Intranet\C\xampp\htdocs\php\OAB\WebCalendar-1.0.2\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     report.php (20.41 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 * $Id: report.php,v 1.27.2.3 2005/10/14 18:38:59 cknudsen Exp $
 *
 * Page Description:
 * This page will either list all reports available to the current
 * user (if report id not specified) or display a report (if the
 * report id is specified).
 *
 * Input Parameters:
 * report_id (optional) - specified report id in webcal_report table
 * offset (optional) - specifies how many days/weeks/months +/- to display.
 *   For example, if the report type is 1 (today) with offset=5, then
 *   the report will display 5 days from now.  Should only be specified
 *   if report_id is specified.  Will be ignored if specified report
 *   does not have the webcal_report.cal_allow_nav field set to 'Y'.
 * user (optional) - specifies which user's calendar to use for the
 *   report.  This will be ignored if the chosen report is tied to
 *   a specific user.
 *
 * Security:
 * If system setting $reports_enabled is set to anything other than
 *   'Y', then don't allow access to this page.
 * If webcal_report.cal_is_global is set to 'Y', any user can view
 *   the report.  If set to 'N', only the creator (set in
 *   webcal_report.cal_login) can view the report.
 * If webcal_report.cal_allow_nav is 'Y', then Next and Previous
 *   links will be presented.  If 'N', then they will not and the
 *   offset parameter will be ignored.
 * Public user cannot edit/list reports.
 *
 */

include_once 'includes/init.php';

// Generate the HTML for one event
// params:
//   $id - event id
//   $date - date
//   $time - time (in HHMMSS format)
//   $duration - event duration (in minutes)
//   $name - event name
//   $description - long description of event
//   $status - event status
//   $pri - event priority
//   $access - event access
//   $event_owner - user associated with this event
function event_to_text $id$date$time$duration,
  
$name$description$status,
  
$pri$access$event_owner ) {
  global 
$login$user$event_template$report_id$allow_html_description;

  
$time_str $start_time_str $end_time_str '';

  if ( 
$duration == ( 24 60 ) ) {
    
$time_str translate("All day event");
  } else if ( 
$time == -) {
    
$time_str translate("Untimed event");
  } else {
    
$time_str display_time $time );
    
$start_time_str $time_str;
    
$time_short preg_replace ("/(:00)/"''$time_str);
    if ( 
$duration ) {
      if ( 
$duration == ( 24 60 ) ) {
        
$time_str translate("All day event");
      } else {
        
// calc end time
        
$h = (int) ( $time 10000 );
        
$m = ( $time 100 ) % 100;
        
$m += $duration;
        
$d $duration;
        while ( 
$m >= 60 ) {
          
$h++;
          
$m -= 60;
        }
        
$end_time sprintf "%02d%02d00"$h$m );
        
$time_str .= " - " display_time $end_time );
        
$end_time_str display_time $end_time );
      }
    }
  }
  if ( 
$login != $user && $access == 'R' && strlen $user ) ) {
    
$name_str "(" translate("Private") . ")";
    
$description_str translate("This event is confidential");
  } else if ( 
$login != $event_owner && $access == 'R' &&
    
strlen $event_owner ) ) {
    
$name_str "(" translate("Private") . ")";
    
$description_str translate("This event is confidential");
  } else {
    
$name_str htmlspecialchars $name );
    if ( ! empty ( 
$allow_html_description ) &&
      
$allow_html_description == 'Y' ) {
      
$str str_replace '&''&amp;'$description );
      
$description_str str_replace '&amp;amp;''&amp;'$str );
      if ( 
strstr $description_str"<" ) &&
        
strstr $description_str">" ) ) {
        
// found some HTML
      
} else {
        
// No HTML found.  Add line breaks.
        
$description_str nl2br $description_str );
      }
    } else {
      
$description_str nl2br (
        
activate_urls htmlspecialchars $description ) ) );
    }
  }

  
$date_str date_to_str $date""false );
  
$date_full_str date_to_str $date""truefalse );

  if ( 
$duration ) {
    
$duration_str $duration ' ' translate "minutes" );
  } else {
    
$duration_str '';
  }

  if ( 
$pri == ) {
    
$pri_str translate "Low" );
  } else if ( 
$pri == ) {
    
$pri_str translate "Medium" );
  } else if ( 
$pri == ) {
    
$pri_str translate "High" );
  }

  if ( 
$status == 'W' ) {
    
$status_str translate "Waiting for approval" );
  } else if ( 
$status == 'D' ) {
    
$status_str translate "Deleted" );
  } else if ( 
$status == 'R' ) {
    
$status_str translate "Rejected" );
  } else if ( 
$status == 'A' ) {
    
$status_str translate "Approved" );
  } else {
    
$status_str translate "Unknown" );
  }

  
$href_str "view_entry.php?id=$id";

  
// Replace all variables in the event template.
  
$text $event_template;
  
$text str_replace '${name}'$name_str$text );
  
$text str_replace '${description}'$description_str$text );
  
$text str_replace '${date}'$date_str$text );
  
$text str_replace '${dateYmd}'$date$text );
  
$text str_replace '${fulldate}'$date_full_str$text );
  
$text str_replace '${time}'$time_str$text );
  
$text str_replace '${starttime}'$start_time_str$text );
  
$text str_replace '${endtime}'$end_time_str$text );
  
$text str_replace '${duration}'$duration_str$text );
  
$text str_replace '${priority}'$pri_str$text );
  
$text str_replace '${href}'$href_str$text );
  
$text str_replace '${id}'$id$text );
  
$text str_replace '${user}'$event_owner$text );
  
$text str_replace '${report_id}'$report_id$text );

  return 
$text;
}

$error "";
$list ""// list of reports when no id specified

if ( ! empty ( $user ) && $user != $login &&
  ( ( ! empty ( 
$allow_view_other ) && $allow_view_other == 'Y' )
  || 
$is_admin ) ) {
  
$report_user $user;
  
$u_url "&amp;user=$user";
} else {
  
$u_url "";
}

if ( empty ( 
$reports_enabled ) || $reports_enabled != 'Y' ) {
  
$error translate "You are not authorized" ) . ".";
}

$updating_public false;
if ( 
$is_admin && ! empty ( $public ) && $public_access == "Y" ) {
  
$updating_public true;
  
$report_user "__public__";
}

$report_id getIntValue "report_id"true );
$offset getIntValue "offset"true );
if ( empty ( 
$offset ) ) {
  
$offset 0;
}

// If no report id is specified, then generate a list of reports for
// the user to select from.
if ( empty ( $error ) && empty ( $report_id ) && $login == "__public__" ) {
  
$error translate "You are not authorized" ) . ".";
}
if ( empty ( 
$error ) && empty ( $report_id ) ) {
  
$list "";
  if ( 
$is_admin ) {
    if ( ! 
$updating_public ) {
      
$list .= "<p><a title=\"" .
        
translate("Click here") . " " .
        
translate("to manage reports for the Public Access calendar") . "." .
        
"\" href=\"report.php?public=1\">" .
        
translate("Click here") . " " .
        
translate("to manage reports for the Public Access calendar") . "." .
        
"</a></p>\n";
      
$sql "SELECT cal_report_id, cal_report_name " .
        
"FROM webcal_report WHERE cal_login = '$login' OR " .
        
"cal_is_global = 'Y' ORDER BY cal_update_date DESC, cal_report_name";
    } else {
      
$sql "SELECT cal_report_id, cal_report_name " .
        
"FROM webcal_report WHERE cal_login = '__public__' " .
        
"ORDER BY cal_update_date DESC, cal_report_name";
    }
  } else {
    
$sql "SELECT cal_report_id, cal_report_name " .
      
"FROM webcal_report WHERE cal_login = '$login' " .
      
"ORDER BY cal_update_date DESC, cal_report_name";
  }
  
$res dbi_query $sql );
  
$list .= "<ul>\n";
  if ( 
$res ) {
    while ( 
$row dbi_fetch_row $res ) ){
      
$rep_name trim $row[1] );
      if ( empty ( 
$rep_name ) )
        
$rep_name translate "Unnamed Report" );
      
$list .= "<li><a href=\"edit_report.php?report_id=$row[0]\" class=\"nav\">" .
        
$rep_name "</a></li>\n";
    }
    
$list .= "</ul>\n";
    
$addurl $updating_public "edit_report.php?public=1" "edit_report.php";
    
$list .= "<p><a title=\"" .
      
translate("Add new report") . "\" href=\"$addurl\" class=\"nav\">" .
      
translate("Add new report") . "</a></p>\n";
    
dbi_free_result $res );
  } else {
    
$error translate "Invalid report id" );
  }
}

// Load the specified report
if ( empty ( $error ) && empty ( $list ) ) {
  
$res dbi_query "SELECT cal_login, cal_report_id, cal_is_global, " .
    
"cal_report_type, cal_include_header, cal_report_name, " .
    
"cal_time_range, cal_user, " .
    
"cal_allow_nav, cal_cat_id, cal_include_empty, cal_update_date " .
    
"FROM webcal_report WHERE cal_report_id = $report_id);
  if ( 
$res ) {
    if ( 
$row dbi_fetch_row $res ) ) { 
      if ( 
$row[2] != 'Y' && $login != $row[0] ) {
        
$error translate "You are not authorized" ) . ".";
      } else {
        
$i 0;
        
$report_login $row[$i++];
        
$report_id $row[$i++];
        
$report_is_global $row[$i++];
        
$report_type $row[$i++];
        
$report_include_header $row[$i++];
        
$report_name $row[$i++];
        
$report_time_range $row[$i++];
        
$test_report_user $row[$i++];
        
// If this report type specifies a specific user, then we will
        // use that user rather even if a user was passed in via URL.
        
if ( ! empty ( $test_report_user ) ) {
          
$report_user $test_report_user;
        }
        
$report_allow_nav $row[$i++];
        
$report_cat_id $row[$i++];
        
$report_include_empty $row[$i++];
        
$report_update_date $row[$i++];
      }
    } else {
      
$error translate "Invalid report id" );
    }
    
dbi_free_result $res );
  } else {
    
$error translate "Database error" ) . ": " dbi_error ();
  }
}

if ( empty ( 
$report_user ) ) {
  
$report_user $login;
}
//echo "User: $report_user <p>";

// Set default templates (in case there are none in the database for
// this report.)
$page_template '<dl>${days}</dl>';
$day_template '<dt><b>${date}</b></dt><dd><dl>${events}</dl></dd>';
$event_template '<dt>${name}</dt><dd>' .
  
'<b>' translate "Date" ) . ':</b> ${date}<br />' .
  
'<b>' translate "Time" ) . ':</b> ${time}<br />' .
  
'${description}</dd>';

// Load templates for this report.
if ( empty ( $error ) && empty ( $list ) ) {
  
$res dbi_query "SELECT cal_template_type, cal_template_text " .
    
"FROM webcal_report_template " .
    
"WHERE cal_report_id = $report_id);
  if ( 
$res ) {
    while ( 
$row dbi_fetch_row $res ) ) {
      if ( 
$row[0] == 'P' ) {
        
$page_template $row[1];
      } else if ( 
$row[0] == 'D' ) {
        
$day_template $row[1];
      } else if ( 
$row[0] == 'E' ) {
        
$event_template $row[1];
      } else {
        
// This shouldn't happen under normal circumstances, so
        // no need translate.
        
echo "Invalid template type: '$row[0]'";
        exit;
      }
    }
    
dbi_free_result $res );
  } else {
    
$error translate "Database error" ) . ": " dbi_error ();
  }
}

if ( ! empty ( 
$report_include_header ) && $report_include_header == 'Y' ||
  ! empty ( 
$list ) || ! empty ( $error ) ) {
  
print_header();
}

if ( empty ( 
$offset ) || empty ( $report_allow_nav ) ||
  
$report_allow_nav != 'Y' ) {
  
$offset 0;
}

// Set time range based on cal_time_range field.
if ( empty ( $report_time_range ) ) {
  
// manage reports
} else if ( $report_time_range >= && $report_time_range 10 ) {
  
$today mktime 300date "m" ), date "d" ), date "Y" ) );
  
$days_offset $report_time_range $offset;
  
$start_date date "Ymd"$today + ( $days_offset $ONE_DAY ) );
  
$end_date $start_date;
} else if ( 
$report_time_range >= 10 && $report_time_range 20 ) {
  if ( 
$WEEK_START == ) {
    
$wkstart get_monday_before date "Y" ), date "m" ),
      
date "d" ) );
  } else {
    
$wkstart get_sunday_before date "Y" ), date "m" ),
      
date "d" ) );
  }
  
//echo "wkstart = " . date("Ymd",$wkstart) . "<br />";
  
$week_offset 11 $report_time_range $offset;
  
//echo "week_offset=$week_offset <br />";
  
$start_date date "Ymd"$wkstart + ( $week_offset $ONE_DAY ) );
  
$end_date date "Ymd"$wkstart + ( $week_offset $ONE_DAY ) + 
    ( 
$ONE_DAY ) );
} else if ( 
$report_time_range >= 20 && $report_time_range 30 ) {
  if ( 
$WEEK_START == ) {
    
$wkstart get_monday_before date "Y" ), date "m" ),
      
date "d" ) );
  } else {
    
$wkstart get_sunday_before date "Y" ), date "m" ),
      
date "d" ) );
  }
  
//echo "wkstart = " . date("Ymd",$wkstart) . "<br />";
  
$week_offset 21 $report_time_range $offset;
  
//echo "week_offset=$week_offset <br />";
  
$start_date date "Ymd"$wkstart + ( $week_offset $ONE_DAY ) );
  
$end_date date "Ymd"$wkstart + ( $week_offset $ONE_DAY ) + 
    ( 
$ONE_DAY 13 ) );
} else if ( 
$report_time_range >= 30 && $report_time_range 40 ) {
  
$thismonth date "m" );
  
$month_offset 31 $report_time_range $offset;
  
//echo "month_offset=$month_offset <br />";
  
$start_date date "Ymd"mktime 300$thismonth $month_offset,
    
1date "Y" ) ) );
  
$end_date date "Ymd"mktime 300$thismonth $month_offset 1,
    
0date "Y" ) ) );
} else if ( 
$report_time_range >= 40 && $report_time_range 50 ) {
  
$thisyear date "Y" );
  
$year_offset 41 $report_time_range $offset;
  
//echo "year_offset=$year_offset <br />";
  
$start_date date "Ymd"mktime 30011,
    
$thisyear $year_offset ) );
  
$end_date date "Ymd"mktime 3001231,
    
$thisyear $year_offset ) );
} else if ( 
$report_time_range >= 50 && $report_time_range 60 ) {
  
// This series of reports is today + N days
  
switch ( $report_time_range ) {
    case 
50$x 14; break;
    case 
51$x 30; break;
    case 
52$x 60; break;
    case 
53$x 90; break;
    case 
54$x 180; break;
    case 
55$x 365; break;
    default: echo 
"Invalid cal_time_range setting for report id $report_id";
      exit;
  }
  
$today mktime 000date "m" ), date "d" ), date "Y" ) );
  
$start $today + ( $ONE_DAY $offset $x );
  
$end $start + ( $ONE_DAY $x );
  
$start_date date "Ymd"$start );
  
$end_date date "Ymd"$end );
} else {
  
// Programmer's bug (no translation needed)
  
echo "Invalid cal_time_range setting for report id $report_id";
  exit;
}

if ( empty ( 
$error ) && empty ( $list ) ) {
  
$cat_id = empty ( $report_cat_id ) ? "" $report_cat_id;

  
$repeated_events read_repeated_events $report_user$cat_id$start_date );

  
$events read_events $report_user$start_date$end_date$cat_id );

  
$get_unapproved $DISPLAY_UNAPPROVED == 'Y';
  if ( 
$report_user == "__public__" ) {
    
$get_unapproved false;
  }

  
//echo "User: $report_user <br />\n";
  //echo "Date Range: $start_date - $end_date <br /><br />\n";

  
$start_year substr $start_date0);
  
$start_month substr $start_date4);
  
$start_day substr $start_date6);
  
$start_time mktime 300$start_month$start_day$start_year );

  
$end_year substr $end_date0);
  
$end_month substr $end_date4);
  
$end_day substr $end_date6);
  
$end_time mktime 300$end_month$end_day$end_year );

  
$day_str '';

  
// Loop through each day
  // Get events for each day (both normal and repeating).
  // (Most of this code was copied from week.php)
  
for ( $cur_time $start_time$cur_time <= $end_time$cur_time += $ONE_DAY ) {
    
$event_str '';
    
$dateYmd date "Ymd"$cur_time );
    
$rep get_repeating_entries ( empty ( $user ) ? $login $user$dateYmd );
    
$ev get_entries ( empty ( $user ) ? $login $user$dateYmd );
    
$cur_rep 0;
    
//echo "DATE: $dateYmd <br />\n";
  
    
for ( $i 0$i count $ev ); $i++ ) {
      
// print out any repeating events that are before this one...
      
while ( $cur_rep count $rep ) &&
        
$rep[$cur_rep]['cal_time'] < $ev[$i]['cal_time'] ) {
        if ( 
$get_unapproved || $rep[$cur_rep]['cal_status'] == 'A' ) {
          if ( ! empty ( 
$rep[$cur_rep]['cal_ext_for_id'] ) ) {
            
$viewid $rep[$cur_rep]['cal_ext_for_id'];
            
$viewname $rep[$cur_rep]['cal_name'] . " (" .
              
translate("cont.") . ")";
          } else {
            
$viewid $rep[$cur_rep]['cal_id'];
            
$viewname $rep[$cur_rep]['cal_name'];
          }
          
$event_str .= event_to_text $viewid,
            
$dateYmd$rep[$cur_rep]['cal_time'], $rep[$cur_rep]['cal_duration'],
            
$viewname$rep[$cur_rep]['cal_description'],
            
$rep[$cur_rep]['cal_status'], $rep[$cur_rep]['cal_priority'],
            
$rep[$cur_rep]['cal_access'], $rep[$cur_rep]['cal_login'] );
        }
        
$cur_rep++;
      }
      if ( 
$get_unapproved || $ev[$i]['cal_status'] == 'A' ) {
        if ( ! empty ( 
$ev[$i]['cal_ext_for_id'] ) ) {
          
$viewid $ev[$i]['cal_ext_for_id'];
          
$viewname $ev[$i]['cal_name'] . " (" .
            
translate("cont.") . ")";
        } else {
          
$viewid $ev[$i]['cal_id'];
          
$viewname $ev[$i]['cal_name'];
        }
        
$event_str .= event_to_text $viewid,
          
$dateYmd$ev[$i]['cal_time'], $ev[$i]['cal_duration'],
          
$viewname$ev[$i]['cal_description'],
          
$ev[$i]['cal_status'], $ev[$i]['cal_priority'],
          
$ev[$i]['cal_access'], $ev[$i]['cal_login'] );
      }
    }
    
// print out any remaining repeating events
    
while ( $cur_rep count $rep ) ) {
      if ( 
$get_unapproved || $rep[$cur_rep]['cal_status'] == 'A' ) {
        if ( ! empty ( 
$rep[$cur_rep]['cal_ext_for_id'] ) ) {
          
$viewid $rep[$cur_rep]['cal_ext_for_id'];
          
$viewname $rep[$cur_rep]['cal_name'] . " (" .
            
translate("cont.") . ")";
        } else {
          
$viewid $rep[$cur_rep]['cal_id'];
          
$viewname $rep[$cur_rep]['cal_name'];
        }
        
$event_str .= event_to_text $viewid,
          
$dateYmd$rep[$cur_rep]['cal_time'], $rep[$cur_rep]['cal_duration'],
          
$viewname$rep[$cur_rep]['cal_description'],
          
$rep[$cur_rep]['cal_status'], $rep[$cur_rep]['cal_priority'],
          
$rep[$cur_rep]['cal_access'], $rep[$cur_rep]['cal_login'] );
      }
      
$cur_rep++;
    }
  
    if ( ! empty ( 
$event_str ) || $report_include_empty == 'Y' ||
      
$report_time_range 10 ) {
      
$date_str date_to_str $dateYmd""false );
      
$date_full_str date_to_str $dateYmd""truefalse );
      
$text str_replace '${events}'$event_str$day_template );
      
$text str_replace '${report_id}'$report_id$text );
      
$text str_replace '${fulldate}'$date_full_str$text );
      
$day_str .= str_replace '${date}'$date_str$text );
    }
  }
}

if ( ! empty ( 
$error ) ) {
  echo 
"<h2>" translate("Error") .
    
"</h2>\n" $error;
} else if ( ! empty ( 
$list ) ) {
  echo 
"<h2>";
  if ( 
$updating_public ) {
    echo 
translate($PUBLIC_ACCESS_FULLNAME) . " ";
  }
  echo 
translate("Manage Reports");
  echo 
"</h2>\n" 
  
"<a title=\"" translate("Admin") . "\" class=\"nav\" href=\"adminhome.php\"> " .
     
"&laquo;&nbsp;" translate("Admin") . "</a><br /><br />\n" $list;
} else {
  if ( 
$report_include_header == 'Y' ) {
    echo 
"<h2>" $report_name "</h2>\n";
  }
  
$text str_replace '${report_id}'$report_id$page_template );
  echo 
str_replace '${days}'$day_str$text );
}


if ( empty ( 
$error ) && empty ( $list ) ) {
  if ( ! empty ( 
$report_allow_nav ) && $report_allow_nav == 'Y' ) {
    if ( empty ( 
$offset ) ) {
      
$offset 0;
    }
    
$next $offset 1;
    
$prev $offset 1;
    echo 
"<br /><br /><a title=\"" .
      
translate "Previous" ) . "\" href=\"report.php?report_id=$report_id$u_url.
      ( empty ( 
$prev ) ? "" "&amp;offset=$prev) . "\" class=\"nav\">" .
      
translate "Previous" ) . "</a>\n";
    echo 
"&nbsp;&nbsp;<a title=\"" .
      
translate "Next" ) . "\" href=\"report.php?report_id=$report_id$u_url.
      ( empty ( 
$next ) ? "" "&amp;offset=$next) . "\" class=\"nav\">" .
      
translate "Next" ) . "</a><br />\n";
  }
  if ( 
$report_include_header == 'Y' ) {
    echo 
'<br /><br /><a title="' translate("Printer Friendly") . 
      
'" class="nav" href="report.php?report_id=' $report_id .
      
'&amp;friendly=1' $u_url '&amp;offset=' $offset .
      
'" target="cal_printer_friendly" onmouseover="window.status=\'' .
      
translate("Generate printer-friendly version") .
      
'\'">[' translate("Printer Friendly") . ']</a>';
  }
}

if ( ! empty ( 
$list ) || $report_include_header == 'Y'
  
|| ! empty ( $error ) || ! empty ( $list ) ) {
  
print_trailer ();
} else {
  
print_trailer false );
}

?>
</body>
</html>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--