Вход Регистрация
Файл: admin/api.php
Строк: 32
<?php
/**
 * GetSimple API Handler
 *
 * @package GetSimple
 * @subpackage API
 */
    
include('inc/common.php');
    include(
'inc/api.class.php');
    
    
#step 1 - check for post
    
if (empty($_POST)) exit;
    if (!
defined('GSEXTAPI')) exit;
    
    
// disable libxml error output
    
if(!isDebug()) libxml_use_internal_errors(true);

    
// disable entity loading to avoid xxe
    
libxml_disable_entity_loader();

    
#step 1 - check post for data
    
if (!isset($_POST['data'])) {
        
$message = array('status' => 'error', 'message' => i18n_r('API_ERR_MISSINGPARAM'));
        echo 
json_encode($message);
        exit;
    };
    
    
#step 2 - setup request
    
$in = simplexml_load_string($_POST['data'], 'SimpleXMLExtended', LIBXML_NOCDATA);
    
$request = new API_Request();
    
$request->add_data($in);
    
    
#step 3 - verify a compatible method was provided
    
$methods = array('page_read', 'page_save', 'all_pages_read', 'all_files_read', 'file_upload', 'settings_read' );
    if (!
in_array($in->method, $methods)) {
        
$message = array('status' => 'error', 'message' => sprintf(i18n_r('API_ERR_BADMETHOD'), $in->method));
        echo 
json_encode($message);
        exit;
    }
    
    
#step 4 - process request
    
$method = (string)$in->method;
    echo 
call_user_func(array($request, $method), '');

exit;

/*
----------------------------
EXAMPLE XML FILE COMING IN
----------------------------

<request>
    <key>ABCDE12345</key>
    <method>page_read</method>
    <data>
        <field1></field1>
        <field2></field2>
        <field3></field3>
    </data>
</request>

*/
Онлайн: 2
Реклама