2009-06-30 08:07:14 +00:00
< ? php
2009-06-30 10:26:08 +00:00
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/index.php,v 1.42.2.8 2006/01/01 11:54:09 wurley Exp $
2009-06-30 09:22:30 +00:00
2009-06-30 09:29:51 +00:00
/**
* @ package phpLDAPadmin
*/
2009-06-30 08:07:14 +00:00
/*******************************************
< pre >
2009-06-30 08:05:37 +00:00
If you are seeing this in your browser ,
PHP is not installed on your web server !!!
2009-06-30 08:07:14 +00:00
</ pre >
*******************************************/
2009-06-30 08:05:37 +00:00
2009-06-30 09:29:51 +00:00
/**
* We will perform some sanity checking here , since this file is normally loaded first when users
* first setup PLA .
*/
2009-06-30 09:40:37 +00:00
define ( 'LIBDIR' , '../lib/' );
2009-06-30 09:29:51 +00:00
ini_set ( 'display_errors' , 1 );
error_reporting ( E_ALL );
2009-06-30 10:26:08 +00:00
# General functions needed to proceed.
2009-06-30 09:29:51 +00:00
ob_start ();
if ( ! file_exists ( LIBDIR . 'functions.php' )) {
ob_end_clean ();
die ( " Fatal error: Required file 'functions.php' does not exist. " );
}
if ( ! is_readable ( LIBDIR . 'functions.php' )) {
ob_end_clean ();
die ( " Cannot read the file 'functions.php' its permissions are too strict. " );
}
require LIBDIR . 'functions.php' ;
$config_file = CONFDIR . 'config.php' ;
ob_end_clean ();
/* Helper functions .
* Our required helper functions are defined in functions . php
*/
foreach ( $pla_function_files as $file_name ) {
if ( ! file_exists ( $file_name ))
2009-06-30 10:26:08 +00:00
pla_error ( sprintf ( 'Fatal error: Required file "%s" does not exist.' , $file_name ));
2009-06-30 09:29:51 +00:00
if ( ! is_readable ( $file_name ))
2009-06-30 10:26:08 +00:00
pla_error ( sprintf ( 'Fatal error: Cannot read the file "%s", its permissions are too strict.' , $file_name ));
2009-06-30 08:05:37 +00:00
2009-06-30 09:29:51 +00:00
ob_start ();
require $file_name ;
ob_end_clean ();
}
2009-06-30 08:07:14 +00:00
2009-06-30 09:29:51 +00:00
# Configuration File check
if ( ! file_exists ( $config_file )) {
2009-06-30 10:26:08 +00:00
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"' ;
echo '"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">' ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
echo '<html>' ;
echo '<head>' ;
printf ( '<title>phpLDAPadmin - %s</title>' , pla_version ());
echo '<link type="text/css" rel="stylesheet" href="css/style.css" />' ;
echo '</head>' ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
echo '<body>' ;
echo '<h3 class="title">Configure phpLDAPadmin</h3>' ;
echo '<br /><br />' ;
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
echo '<center>' ;
printf ( _ ( 'You need to configure phpLDAPadmin. Edit the file "%s" to do so. An example config file is provided in "%s.example".' ), $config_file , $config_file );
echo '</center>' ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
echo '</body>' ;
echo '</html>' ;
2009-06-30 09:29:51 +00:00
die ();
2009-06-30 08:09:20 +00:00
2009-06-30 09:29:51 +00:00
} elseif ( ! is_readable ( $config_file )) {
pla_error ( sprintf ( 'Fatal error: Cannot read your configuration file "%s", its permissions are too strict.' , $config_file ));
}
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
if ( ! check_config ()) {
exit ;
}
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
echo '<?xml version="1.0" encoding="utf-8"?>' . " \n " ;
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"' . " \n " ;
echo ' "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">' . " \n " ;
echo " \n " ;
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">' ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
if ( $pagetitle = $config -> GetValue ( 'appearance' , 'page_title' ))
printf ( '<head><title>phpLDAPadmin (%s) - %s</title></head>' , pla_version (), $pagetitle );
else
printf ( '<head><title>phpLDAPadmin - %s</title></head>' , pla_version ());
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
printf ( '<frameset cols="%s,*">' , $config -> GetValue ( 'appearance' , 'tree_width' ));
echo '<frame src="tree.php" name="left_frame" id="left_frame" />' ;
echo '<frame src="welcome.php" name="right_frame" id="right_frame" />' ;
echo '</frameset>' ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
echo '</html>' ;
2009-06-30 08:05:37 +00:00
/*
* Makes sure that the config file is properly setup and
* that your install of PHP can handle LDAP stuff .
*/
2009-06-30 09:29:51 +00:00
function check_config () {
2009-06-30 10:26:08 +00:00
global $config_file , $config ;
2009-06-30 08:05:37 +00:00
2009-06-30 10:26:08 +00:00
/* Check for syntax errors in config . php
As of php 4.3 . 5 , this NO longer catches fatal errors : ( */
2009-06-30 08:05:37 +00:00
ob_start ();
2009-06-30 09:29:51 +00:00
include $config_file ;
2009-06-30 08:05:37 +00:00
$str = ob_get_contents ();
ob_end_clean ();
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
if ( $str ) {
$str = strip_tags ( $str );
2009-06-30 08:09:20 +00:00
$matches = array ();
2009-06-30 10:26:08 +00:00
preg_match ( '/(.*):\s+(.*):.*\s+on line (\d+)/' , $str , $matches );
$error_type = $matches [ 1 ];
$error = $matches [ 2 ];
$line_num = $matches [ 3 ];
2009-06-30 09:29:51 +00:00
$file = file ( $config_file );
2009-06-30 10:26:08 +00:00
echo '<?xml version="1.0" encoding="utf-8"?>' . " \n " ;
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"' . " \n " ;
echo ' "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">' . " \n " ;
echo " \n " ;
echo '<html>' ;
echo '<head>' ;
echo '<title>phpLDAPadmin Config File Error</title>' ;
echo '<link type="text/css" rel="stylesheet" href="css/style.css" />' ;
echo '</head>' ;
echo '<body>' ;
echo '<h3 class="title">Config File ERROR</h3>' ;
printf ( '<h3 class="subtitle">%s (%s) on line %s</h3>' , $error_type , $error , $line_num );
echo '<center>' ;
printf ( 'Looks like your config file has an ERROR on line %s.<br />' , $line_num );
echo 'Here is a snippet around that line <br />' ;
echo '<br />' . " \n " ;
echo '<div style="text-align: left; font-family: monospace; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">' ;
for ( $i = $line_num - 9 ; $i < $line_num + 5 ; $i ++ ) {
if ( $i + 1 == $line_num )
echo '<div style="color:red;background:#fdd">' ;
if ( $i < 0 )
2009-06-30 09:29:51 +00:00
continue ;
2009-06-30 10:26:08 +00:00
printf ( '<b>%s</b>: %s<br />' , $i + 1 , htmlspecialchars ( $file [ $i ]));
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
if ( $i + 1 == $line_num )
echo '</div>' ;
}
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
echo '</div>' ;
echo '<br />' ;
echo 'Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.' ;
echo '</center>' ;
echo '</body>' ;
echo '</html>' ;
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
return false ;
2009-06-30 08:05:37 +00:00
}
2009-06-30 10:26:08 +00:00
# Now read in config_default.php, which also reads in config.php
require LIBDIR . 'config_default.php' ;
# Make sure their PHP version is current enough
if ( strcmp ( phpversion (), REQUIRED_PHP_VERSION ) < 0 ) {
pla_error ( sprintf ( 'phpLDAPadmin requires PHP version %s or greater. You are using %s' ,
REQUIRED_PHP_VERSION , phpversion ()));
}
2009-06-30 09:29:51 +00:00
2009-06-30 10:26:08 +00:00
# Make sure this PHP install has all our required extensions
if ( ! extension_loaded ( 'ldap' )) {
pla_error ( 'Your install of PHP appears to be missing LDAP support. Please install LDAP support before using phpLDAPadmin. (Dont forget to restart your web server afterwards)' );
2009-06-30 08:05:37 +00:00
return false ;
}
2009-06-30 10:26:08 +00:00
# Make sure that we have php-xml loaded.
if ( ! function_exists ( 'xml_parser_create' )) {
pla_error ( 'Your install of PHP appears to be missing XML support. Please install XML support before using phpLDAPadmin. (Dont forget to restart your web server afterwards)' );
2009-06-30 08:05:37 +00:00
return false ;
}
2009-06-30 10:26:08 +00:00
# Make sure their session save path is writable, if they are using a file system session module, that is.
if ( ! strcasecmp ( 'Files' , session_module_name () && ! is_writable ( realpath ( session_save_path ())))) {
pla_error ( ' Your PHP session configuration is incorrect . Please check the value of session . save_path
in your php . ini to ensure that the directory specified there exists and is writable .
The current setting of " '.session_save_path().' " is un - writable by the web server . ' );
return false ;
2009-06-30 09:29:51 +00:00
}
2009-06-30 09:22:30 +00:00
2009-06-30 10:26:08 +00:00
if ( ! isset ( $ldapservers ) || count ( $ldapservers -> GetServerList ()) == 0 ) {
pla_error ( ' Your config . php is missing Server Definitions .
Please see the sample file config / config . php . example . ' , false );
return false ;
2009-06-30 08:09:20 +00:00
}
2009-06-30 08:05:37 +00:00
return true ;
}
?>