!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:     purge.php (7.17 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 * $Id: purge.php,v 1.31 2005/02/22 01:29:58 cknudsen Exp $
 *
 * Description:
 *    Purge events page and handler.
 *    When an event is deleted from a user's calendar, it is marked
 *    as deleted (webcal_entry_user.cal_status = 'D').  This page
 *    will actually clean out the database rather than just mark an
 *    event as deleted.
 *
 * Security:
 *    Events will only be deleted if they were created by the selected
 *    user.  Events where the user was a participant (but not did not
 *    create) will remain unchanged.
 *
 */
include_once 'includes/init.php';

// Set this to true do show the SQL at the bottom of the page
$purgeDebug true;
$sqlLog '';

if ( ! 
$is_admin ) {
  
// must be admin...
  
do_redirect "index.php" );
  exit;
}

$ALL 0;

$purge_all getPostValue "purge_all" );
$end_year getPostValue "end_year" );
$end_month getPostValue "end_month" );
$end_day getPostValue "end_day" );
$user getPostValue "user" );
$preview getPostValue "preview" );
$preview = ( empty ( $preview ) ? false true );

$INC = array('js/purge.php','js/visible.php');
if ( ! empty ( 
$user ) ) {
  
$BodyX '';
} else {
  
$BodyX 'onload="all_handler();"';
}

print_header $INC''$BodyX );
?>

<table style="border-width:0px;">
<tr><td style="vertical-align:top; width:50%;">
<?php
echo "<h2>" translate("Delete Events" );
if ( 
$preview )
  echo 
"[ " translate("Preview" ) . "]";
echo 
"</h2>\n";

?>
<a title="<?php etranslate("Admin"?>" class="nav" href="adminhome.php">&laquo;&nbsp;<?php etranslate("Admin"?></a><br /><br />
<?php

if ( ! empty ( $user ) ) {
  if ( 
$preview ) {
    echo 
"<h2> [" .  translate("Preview") . "] " .
      
translate("Purging events for") . $user...</h2>\n";
  } else {
    echo 
"<h2>" .  translate("Purging events for") . ": $user</h2>\n";
  }
  
$ids '';
  
$end_date sprintf "%04d%02d%02d"$end_year$end_month$end_day );
  if ( 
$purge_all == "Y" ) {
    if ( 
$user == 'ALL' ) {
      
$ids = array ( 'ALL' );
    } else {
      
$ids get_ids (
        
"SELECT cal_id FROM webcal_entry WHERE cal_create_by = '$user'" );
    }
  } elseif ( 
$end_date ) {
    if ( 
$user != 'ALL' ) {
      
$tail " AND webcal_entry.cal_create_by = '$user'";
    } else {
      
$tail '';
      
$ALL 1;  // Need this to tell get_ids to ignore participant check
    
}
    
$E_ids get_ids "SELECT cal_id FROM webcal_entry " .
      
"WHERE cal_type = 'E' AND cal_date < '$end_date$tail",
      
$ALL );
    
$M_ids get_ids "SELECT webcal_entry.cal_id FROM webcal_entry " .
      
"INNER JOIN webcal_entry_repeats ON " .
      
"webcal_entry.cal_id = webcal_entry_repeats.cal_id " .
      
"WHERE webcal_entry.cal_type = 'M' AND " .
      
"cal_end IS NOT NULL AND cal_end < '$end_date$tail",
      
$ALL );
    
$ids array_merge $E_ids$M_ids );
  }
  
//echo "event ids: <ul><li>" . implode ( "</li><li>", $ids ) . "</li></ul>\n";
  
if ( count $ids ) > ) {
    
purge_events $ids );
  } else {
    echo 
translate("None");
  }
  echo 
"<h2>..." .  translate("Finished") . ".</h2>\n";
  if ( 
$purgeDebug ) {
    echo 
"<div style=\"border: 1px solid #000;background-color: #fff;\"><tt>$sqlLog</tt></div>\n";
  }
} else {
?>

<form action="purge.php" method="post" name="purgeform">
<table>
    <tr><td><label for="user">
        <?php etranslate("User");?>:</label></td>
    <td><select name="user">
<?php
  $userlist 
get_my_users ();
  if (
$nonuser_enabled == "Y" ) {
    
$nonusers get_nonuser_cals ();
    
$userlist = ($nonuser_at_top == "Y") ? array_merge($nonusers$userlist) : array_merge($userlist$nonusers);
  }
  for ( 
$i 0$i count $userlist ); $i++ ) {
    echo 
"<option value=\"".$userlist[$i]['cal_login']."\">".$userlist[$i]['cal_fullname']."</option>\n";
  }
?>
<option value="ALL" selected="selected"><?php etranslate("All")?></option>
        </select>
    </td></tr>
    <tr><td><label for="purge_all">
        <?php etranslate("Check box to delete <b>ALL</b> events for a user")?>:</label></td>
        <td valign="bottom">
        <input type="checkbox" name="purge_all" value="Y"
                onclick="all_handler()" />
    </td></tr>
    <tr id="dateArea"><td><label>
        <?php etranslate("Delete all events before");?>:</label></td><td>
        <?php print_date_selection "end_"date "Ymd" ) ) ?>
    </td></tr>
    <tr><td><label for="preview">
        <?php etranslate("Preview delete")?>:</label></td>
        <td valign="bottom">
        <input type="checkbox" name="preview" value="Y" checked="checked" />
    </td></tr>
    <tr><td colspan="2">
        <input type="submit" name="action" value="<?php etranslate("Delete")?>" onclick="return confirm('<?php etranslate("Are you sure you want to delete events for");?> ' + document.forms[0].user.value + '?')" />
    </td></tr>
</table>
</form>

<?php ?>
</td></tr></table>

<?php print_trailer(); ?>
</body>
</html>
<?php
function purge_events $ids ) {
  global 
$preview$c// db connection
  
global $sqlLog;

  
$tables = array (
    array ( 
'webcal_entry_user''cal_id' ),
    array ( 
'webcal_entry_repeats''cal_id' ),
    array ( 
'webcal_entry_repeats_not''cal_id' ),
    array ( 
'webcal_entry_log''cal_entry_id' ),
    array ( 
'webcal_import_data''cal_id' ),
    array ( 
'webcal_site_extras''cal_id' ),
    array ( 
'webcal_reminder_log''cal_id' ),
    array ( 
'webcal_entry_ext_user''cal_id' ),
    array ( 
'webcal_entry''cal_id' )
  );

  
//var_dump($tables);exit;
  
$num = array();
  for ( 
$i 0$i count $tables ); $i++ ) {
    
$num[$i] = 0;
  }
  foreach ( 
$ids as $cal_id ) {
    for ( 
$i 0$i count $tables ); $i++ ) {
      
$clause = ( $cal_id == 'ALL' '' :
        
" WHERE {$tables[$i][1]} = $cal_id);
      if ( 
$preview ) {
        
$sql "SELECT COUNT(" $tables[$i][1] .
          
") FROM {$tables[$i][0]}$clause;
        
//echo "cal_id = '$cal_id'<br>clause = '$clause'<br>";
        //echo "$sql <br/>\n";
        
$res dbi_query $sql );
        
$sqlLog .= $sql "<br/>\n";
        if ( 
$res ) {
          if ( 
$row dbi_fetch_row $res ) )
            
$num[$i] += $row[0];
          
dbi_free_result $res );
        }
      } else {
        
$sql "DELETE FROM {$tables[$i][0]}$clause;
        
$sqlLog .= $sql "<br/>\n";
        
$res dbi_query $sql );
        if ( 
$cal_id == 'ALL' ) {
          
$num[$i] = translate "All" );
        } else {
          
$num[$i] += dbi_affected_rows $c$res );
        }
      }
    }
  }
  for ( 
$i 0$i count $tables ); $i++ ) {
    
$table $tables[$i][0];
    echo 
"[" translate "Preview" ) . "] " .
      
translate("Records deleted from") .
      
$table$num[$i]<br />\n";
  }
}

function 
get_ids $sql$ALL '' ) {
  global 
$sqlLog;
  
$ids = array ();
  
//echo "SQL: $sql <br/>\n";
  
$sqlLog .= $sql "<br/>\n";
  
$res dbi_query $sql );
  if ( 
$res ) {
    while ( 
$row dbi_fetch_row $res ) ) {
      if (
$ALL == 1) {
        
$ids[] = $row[0];
      } else {
        
//ONLY Delete event if no other participants.
        
$ID $row[0];
        
$res2 dbi_query "SELECT COUNT(*) FROM webcal_entry_user " .
          
"WHERE cal_id = $ID);
        if ( 
$res2 ) {
          if ( 
$row2 dbi_fetch_row $res2 ) ) {
            if ( 
$row2[0] == $ids[] = $ID;
          }
          
dbi_free_result $res2 );
        }
      } 
// End if ($ALL)
    
// End while
  
}
  
dbi_free_result $res );
  return 
$ids;
}
?>

:: 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 ]--