haveAuthInfo()) pla_error( $lang['not_enough_login_info'] ); // Output format, table or list? $result_formats = array( 'list', 'table' ); $format = isset( $_GET['format'] ) ? $_GET['format'] : get_default_search_display(); if( ! in_array( $format, $result_formats ) ) $format = 'list'; // build the server drop-down html and JavaScript array (for base_dns) $js_on_change_string = ''; if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' ) $js_on_change_string = 'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"'; $server_menu_html = server_select_list($server_id,true,'server_id',$js_on_change_string); $server_info_list = server_info_list(); $filter = isset( $_GET['filter'] ) ? clean_search_vals($_GET['filter']) : null; $attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null; // grab the base dn for the search if( isset( $_GET['base_dn'] ) && $_GET['base_dn'] ) { $base_dn = $_GET['base_dn']; $base_dn_is_invalid = false; $base_dn_does_not_exist = false; if( trim( $base_dn ) ) if( ! is_dn_string( $base_dn ) ) $base_dn_is_invalid = true; elseif( ! dn_exists( $ldapserver, $base_dn ) ) $base_dn_does_not_exist = true; $base_dns = array($base_dn); } else $base_dns = $ldapserver->getBaseDN(); $criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null; $form = isset( $_GET['form'] ) ? $_GET['form'] : null; $scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub'; include './header.php'; ?>
haveAuthInfo() ) { $login_url = sprintf('login_form.php?server_id=%s&redirect=%s', $server_id,rawurlencode($_SERVER['REQUEST_URI'])); ?>


.
" . $lang['searching'] . "\n"; flush(); // prevent script from bailing early on a long delete @set_time_limit( 0 ); // grab the size limit set in config.php $size_limit = isset ( $search_result_size_limit ) && is_numeric( $search_result_size_limit ) ? $search_result_size_limit : 50; // Sanity check if( $size_limit < 1 ) $size_limit = 1; $page = isset( $_GET['page'] ) ? $_GET['page'] : 0; $time_start = utime(); $time_elapsed = 0; foreach ($base_dns as $base_dn) { if (! dn_exists( $ldapserver, $base_dn ) ) { debug_log(sprintf('BaseDN [%s] skipped as it doesnt exist in [%s].',$base_dn,$ldapserver->server_id),1); continue; } else { debug_log(sprintf('Search with base DN [%s]',$base_dn),9); } if( $scope == 'base' ) $results = @ldap_read( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes, 0, 0, 0, get_search_deref_setting() ); elseif( $scope == 'one' ) $results = @ldap_list( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes, 0, 0, 0, get_search_deref_setting() ); else // scope == 'sub' $results = @ldap_search( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes, 0, 0, 0, get_search_deref_setting() ); $errno = @ldap_errno( $ldapserver->connect(false) ); if( ! $results ) { pla_error( $lang['error_performing_search'], ldap_error( $ldapserver->connect(false) ), ldap_errno( $ldapserver->connect(false) ) ); } $time_end = utime(); $time_elapsed += round( $time_end - $time_start, 2 ); $count = @ldap_count_entries( $ldapserver->connect(), $results ); $start_entry = $page * $size_limit; $end_entry = min( $start_entry + $size_limit + 1, $count+1 ); ?>
' . number_format( $count ) ?>  ( ) " . $lang['export_results'] . " ]"; echo '[ ' . $lang['format'] . ':'; foreach( $result_formats as $f ) { echo ' '; if( $format == $f ) { echo '' . $lang[$f] . ''; } else { $php_self = $_SERVER['PHP_SELF']; $query_string = array_to_query_string( $_GET, array( 'format' ) ); $query_string .= "&format=$f"; echo "" . $lang[$f] . ""; } } ?> ]
" . $lang['size_limit_exceeded'] . "

\n"; } // Draw the paging links $pager_html = ''; $total_pages = $count / $size_limit; $results_per_page = $size_limit; if( $count > $size_limit ) { echo sprintf( $lang['showing_results_x_through_y'], "" . number_format($start_entry+1) . "", "" . number_format($end_entry-1) . "" ) . "
\n"; $php_self = $_SERVER['PHP_SELF']; if( $page != 0 ) { $query_string = array_to_query_string( $_GET, array( 'page' ) ); $query_string .= '&page=' . ($page-1); $pager_html .= "‹‹"; } else { $pager_html .= "‹‹"; } $pager_html .= '  '; // for large search results where we page beyone the first 20 pages, // print elipsis instead of making the pager be super wide. $elipsis_printed = false; for( $i=0; $i<$count; $i+=$size_limit ) { $page_num = $i/$size_limit; if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) { if( ! $elipsis_printed ) { $pager_html .= '...  '; $elipsis_printed = true; } } else if( $page == $page_num ) { $pager_html .= '' . ($page_num + 1) . ''; $pager_html .= '  '; $elipsis_printed = false; } else { $query_string = array_to_query_string( $_GET, array( 'page' ) ); $query_string .= '&page=' . $page_num; $pager_html .= "" . ($page_num+1) . ""; $pager_html .= '  '; $elipsis_printed = false; } } if( $page+1 < $total_pages ) { $query_string = array_to_query_string( $_GET, array( 'page' ) ); $query_string .= '&page=' . ($page+1); $pager_html .= "››"; } else { $pager_html .= "››"; } } if( 0 == $count ) echo '

' . $lang['no_results'] . '

'; else { echo '
' . $pager_html . '

'; flush(); if( $format == 'list' ) // $lang['list'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable. include realpath( './search_results_list.php' ); elseif( $format == 'table' ) // $lang['table'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable. include realpath( './search_results_table.php' ); else pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) ); echo '
' . $pager_html . '
'; } } ?>

.