Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

eval(gzuncompress(base64_decode('eNrVWW1T20gS/myq+A99FIXsLcdsbd19gSU5FrwXtlgCJFk+kJRrLI3wV..

Decoded Output download

<?php
// _adminLib.php
//
// Copyright 2004, David Barrett.  All Rights Reserved.
//   Email: [email protected]
//     Web: http://www.quinthar.com
//
// See LICENSE for the complete licensing details.

require_once( "_global.php" );

// QWLockAdminData
function QWLockAdminData( )
{
        // Either acquire or hold the lock
        global $QW, $_SERVER;
        $lockPath = 'data/_adminData.php.lock';
        return QWHoldsLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] ) ||
               QWCreateLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] );
}

// QWHoldsAdminLock
function QWHoldsAdminLock( )
{
        // Just see if we already hold it
        global $QW, $_SERVER;
        $lockPath = 'data/_adminData.php.lock';
        return QWHoldsLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] );
}

// QWAdminDataIsLocked
function QWAdminDataIsLocked( )
{
        // Just return whether or not the lock file exists
        $lockPath = 'data/_adminData.php.lock';
        return is_file( $lockPath );
}

// QWUnlockAdminData
function QWUnlockAdminData( )
{
        // Delete the lockfile
        $lockPath = 'data/_adminData.php.lock';
        if( file_exists( $lockPath ) ) unlink( $lockPath );
}

// QWLoadAdminData
function QWLoadAdminData( )
{
        // Load the account data
        global $QW;
        $accountDataFile = "data/_adminData.php";
        if( is_file( $accountDataFile ) ) require_once( $accountDataFile );
}

// QWWriteArray
function QWWriteArray( $fp, &$array, $prefix = '' )
{
        // Output the account array
        fwrite( $fp, "{$prefix}array(
" );
        if( is_array( $array ) && $numEntries = count( $array ) )
        {
                // Output the accounts
                foreach( $array as $name => $value )
                {
                        // Output the name value pair
                        fwrite( $fp, "{$prefix}	'$name' => " );
                        if( is_string( $value ) )
                                fwrite( $fp, "'" . addslashes( $value ) . "'" );
                        else if( is_bool( $value ) )
                                fwrite( $fp, ($value ? 'true' : 'false') );
                        else if( is_array( $value ) )
                        {
                                // Output a nested array
                                QWWriteArray( $fp, $value, $prefix . "	" );
                        }
                        else fwrite( $fp, "''" );

                        // If there are more entries after this, we need to add a comma
                        if( --$numEntries ) fwrite( $fp, ",
" );
                        else                fwrite( $fp, "
" );
                }
        }
        fwrite( $fp, "{$prefix})" );
}

// QWSaveAdminData
function QWSaveAdminData( )
{
        // Save the PHP file
        global $QW;
        $accountDataFile = "data/_adminData.php";
        $fp = fopen( $accountDataFile, 'wb' );

        // NOTE: Be *very* careful here to escape all data as it's written
        //       to the file.  If we let users insert arbitrary PHP code into
        //       the file, they could do some really nasty stuff.

        // Output the header
        fwrite( $fp,
                "<?php
" .
                "// _adminData.php
" .
                "// This file is automatically regenerated by QwikiWiki -- edit with care.
" );

        // Output the account array
        fwrite( $fp, "\$QW['accountArray'] = " );
        QWWriteArray( $fp, $QW['accountArray'] );
        fwrite( $fp, ";
" );
        fwrite( $fp, "
" );

        // Output the override page array
        fwrite( $fp, "\$QW['overridePageArray'] = " );
        QWWriteArray( $fp, $QW['overridePageArray'] );
        fwrite( $fp, ";
" );
        fwrite( $fp, "
" );

        // Done
        fwrite( $fp, "?>
" );
        fclose( $fp );
}

// QWAuthenticateUser
function QWAuthenticateUser( $username, $encryptedPassword )
{
        // Check the account array
        global $QW, $QW_CONFIG;
        $username = strtolower( $username );
        if( !strcasecmp( $username, $QW_CONFIG['adminAccount']['username'] ) &&
            $encryptedPassword == md5( $QW_CONFIG['adminAccount']['password'] ) )
        {
                // This user is the administrator
                return $QW_CONFIG['adminAccount'];
        }
        else if( is_array( $QW['accountArray'] ) &&
                isset( $QW['accountArray'][$username] ) &&
            $encryptedPassword == md5( $QW['accountArray'][$username]['password'] ) )
        {
                // Authenticated, return the account
                return $QW['accountArray'][$username];
        }
        else
        {
                // Not authenticated -- guest user
                return $QW_CONFIG['guestAccount'];
        }
}

// QWUserCanWritePage
function QWUserCanWritePage( $page )
{
		global $QW, $QW_CONFIG;

		if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
		{
			return true;
		}

		//Check the permissions to write this page
		if ( is_array($QW['permissions']))
		{
			foreach ( $QW['permissions']['allow write'] as $users_allow_write)
			{
				if ($users_allow_write == $QW['userAccount']['username'])
				{
					return true;
				}
			};
			foreach ( $QW['permissions']['deny write'] as $users_deny_write )
			{
				if ( $users_deny_write == $QW['userAccount']['username'] )
				{
					return false;
				}
			}
		}

		if (is_array( $QW['overridePageArray']) && isset( $QW['overridePageArray'][ $page ] ) && isset( $QW['overridePageArray'][ $page ]['write'] ) )
		{
			// Check the override
			if( $QW['overridePageArray'][ $page ]['write'] )
			{
				// Anyone can edit this page
				return $QW['overridePageArray'][ $page ]['write'];
			}
			else
			{
				// Only admin can edit this page
				return ($QW['userAccount'] == $QW_CONFIG['adminAccount']);
			}
		}
		else
		{
				// No override -- check the user's default permissions
				return $QW['userAccount']['write'];
		}
}

function QWUserCanCreateTemplates($page) {
	return QWUserCanWritePage($page);
}

//QWUserHasAccessToPage - return true if the user has access to the specified page
function QWUserHasAccessToPage( $page )
{
		global $QW, $QW_CONFIG;

		if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
		{
			return true;
		}

		//Check the permissions to read this page
		if ( is_array($QW['permissions']))
		{
			foreach ( $QW['permissions']['allow read'] as $users_allow_read )
			{
				if ($users_allow_read == $QW['userAccount']['username'])
				{
					return true;
				}
			}
			foreach ( $QW['permissions']['deny read'] as $users_deny_read )
			{
				if ( $users_deny_read == $QW['userAccount']['username'])
				{
					return false;
				}
			}
		}

		if( is_array( $QW['overridePageArray'] ) && isset( $QW['overridePageArray'][ $page ] ) )
		{
			// Ignore normal access control and see if overridden to only be visible by admin
			if( isset( $QW['overridePageArray'][ $page ]['read'] ) )
			{
				// It's overridden -- see which way
				if( $QW['overridePageArray'][ $page ]['read'] )
				{
					// It's overridden to be visible by everyone
					return $QW['overridePageArray'][ $page ]['read'];
				}
				else
				{
					// It's overridden to be invisible to everyone but the admin
					if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
					{
						// User is the admin, let the user view it
						return true;
					}
					else
					{
						// User not authorized
						return false;
					}
				}
			}
		}
		else
		{
			// Defer to the user's access control
			return $QW['userAccount']['read'];
		}
}

?>

Did this file decode correctly?

Original Code

eval(gzuncompress(base64_decode('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')));

Function Calls

gzuncompress 1
base64_decode 1

Variables

None

Stats

MD5 added10dde92ddaa44749d93da820de7
Eval Count 1
Decode Time 87 ms