Главная » 2018 » Январь » 31 » Помощник
22:45
Помощник

ОБЩАЯ ИНФОРМАЦИЯ

При активации услуги PHP для сайта учетная запись создается на отдельном сервере, на котором происходит исполнение всех php-скриптов. Доступ к данной учетной записи, загрузка, изменение и удаление данных осуществляется по протоколу FTP с логином и паролем (указанным при активации услуги PHP), которые можно посмотреть в панели управления сайтом.

При создании аккаунта автоматически создается директория scripts, в которой должны размещаться все php-скрипты, которые вызываются на страницах сайта. Все скрипты должны иметь расширение ".php", только такие файлы доступны по прямым адресным ссылкам. Все другие файлы (их содержимое) можно получать ТОЛЬКО посредством самих php-скриптов.
Все учетные записи создаются со следующими ограничениями:

  • максимальный объем занимаемого дискового пространства - 200Мб

  • максимальное количество файлов и директорий - 10000

  • максимальное количество файлов в директории - 500

  • максимальное время исполнения скрипта - 15 секунд

КАК ИСПОЛЬЗОВАТЬ

Использовать php-скрипты на страницах сайта можно в текущем домене через проксирование: 
http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA&param1=valueB...&paramN=valueM 
В шаблонах для вызова php-скрипта можно использовать функцию PHPCODE следующим образом: 
<?$PHPCODE$("http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA&param1=valueB...&paramN=valueM")?> 
где:

  • SITE_ADDRESS - адрес сайта пользователя, на котором выполняется скрипт

  • SCRIPT_NAME - путь (относительно папки scripts) и имя скрипта, который выполняется

  • ?param0=valueA&param1=valueB...&paramN=valueM - необязательные параметры для скрипта


Данная функция выполняет GET-запрос на указанный скрипт. Ответ для нее должен быть возвращен только в формате json, т.е. при использовании данной функции в шаблонах страниц, вызываемый ею скрипт не должен менять тип возвращаемых данных на какой-либо другой (путем установки переменной $___notjson, использования функции header('Content-type: TYPE') и т.п.). Использовать ее можно 1 раз на страницу. Для вызова методом GET нескольких скриптов на одной странице можно использовать исходный javascript код функции $PHPCODE$, изменяя идентификатор (id) тега <div id="phpdiv">. Реализовать использование POST-запросов можно через формы, iframe, другие скрипты этого домена и т.д, например: 

в файле шаблона: 
<script type="text/javascript">
    function updatepostdata(result) { $('#postdiv').html(result); }
</script>
<div id="postdiv"></div>
<iframe frameborder="0" src="http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA&param1=valueB...&paramN=valueM"></iframe> 


в скрипте SCRIPT_NAME.php: 
<?
$___notjson=1;
if ($_POST)
{
    $ret="POST OK:<br>";
    foreach ($_POST as $i => $val) $ret.="$i=$val<br>";
    echo "<script type=\"text/javascript\">
    window.parent.updatepostdata(\"$ret\");
    </script>";
}
echo "<form action=\"http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA&param1=valueB...&paramN=valueM\" method=\"POST\">
<input type=\"hidden\" name=\"field0\" value=\"test_".rand()."\">
<input type=\"submit\" value=\"Go\">
</form>";
?> 


ИЛИ

в файле шаблона: 
<script type="text/javascript">
    function updatepostdata(result) { $('#postdiv').html(result); }
</script>
<div id="postdiv"></div>
<iframe frameborder="0">
    <form action=\"http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA&param1=valueB...&paramN=valueM\" method=\"POST\">
        <input type=\"hidden\" name=\"field0\" value=\"test_".rand()."\">
        <input type=\"submit\" value=\"Go\">
    </form>
</iframe>


в скрипте SCRIPT_NAME.php: 
<?
$___notjson=1;
if ($_POST)
{
    $ret="POST OK:<br>";
    foreach ($_POST as $i => $val) $ret.="$i=$val<br>";
    echo "<script type=\"text/javascript\">
    window.parent.updatepostdata(\"$ret\");
    </script>";
}
else echo "No data<br>";
?> 


Есть несколько параметров, которыми можно управлять в скрипте:

  • $___notjson=1 - если данная переменная установлена в единицу, то результат работы скрипта возвращается в том виде, в каком его сформировал скрипт, иначе (по умолчанию) результат возвращается в json формате

  • $___retval - результат работы скрипта (возвращенные им данные), может быть установлена в скрипте пользователя и будет использоваться, как результат работы

  • $___error - используется как описание ошибки в случае, если скрипт должен ее вернуть



НЕ ИСПОЛЬЗУЙТЕ __FILE__, т.к. скрипты выполняются через wrapper, и данная переменная определена как название wrapper-скрипта.
 

Внимание!
1. Любые попытки использовать PHP-скрипты для злонамеренных действий, в частности для отправки большого числа HTTP-запросов куда-либо, наказываются удалением сайта!
2. По умолчанию результат работы скрипта возвращается В ФОРМАТЕ JSON.

ОГРАНИЧЕНИЯ PHP

В данной реализации запрещено использование следующих функций языка:

  • системные вызовы (proc_open, proc_terminate, shell_exec, system и т.д.)

  • низкоуровневые функции по работе с файловой системой (dio_fcntl, dio_open, dio_read, dio_seek и т.д.)

  • posix функции

  • shared memory функции

  • MySQL функции: mysql_stat, mysql_pconnect

Более практичные примеры использования скриптов можно посмотреть на phpexample.ucoz.net.
Хронологию изменений и дополнений можно посмотреть на phpexample.ucoz.net/manual.

Просмотров: 26 | Добавил: classicterror
Всего комментариев: 0
avatar