ОБЩАЯ ИНФОРМАЦИЯ
При активации услуги PHP для сайта учетная запись создается на отдельном сервере, на котором происходит исполнение всех php-скриптов. Доступ к данной учетной записи, загрузка, изменение и удаление данных осуществляется по протоколу FTP с логином и паролем (указанным при активации услуги PHP), которые можно посмотреть в панели управления сайтом.
При создании аккаунта автоматически создается директория scripts, в которой должны размещаться все php-скрипты, которые вызываются на страницах сайта. Все скрипты должны иметь расширение ".php", только такие файлы доступны по прямым адресным ссылкам. Все другие файлы (их содержимое) можно получать ТОЛЬКО посредством самих php-скриптов.
Все учетные записи создаются со следующими ограничениями:
-
максимальный объем занимаемого дискового пространства - 200Мб
-
максимальное количество файлов и директорий - 10000
-
максимальное количество файлов в директории - 500
-
максимальное время исполнения скрипта - 15 секунд
КАК ИСПОЛЬЗОВАТЬ
Использовать php-скрипты на страницах сайта можно в текущем домене через проксирование:
http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA¶m1=valueB...¶mN=valueM
В шаблонах для вызова php-скрипта можно использовать функцию PHPCODE следующим образом:
<?$PHPCODE$("http://SITE_ADDRESS/php/SCRIPT_NAME.php?param0=valueA¶m1=valueB...¶mN=valueM")?>
где:
-
SITE_ADDRESS - адрес сайта пользователя, на котором выполняется скрипт
-
SCRIPT_NAME - путь (относительно папки scripts) и имя скрипта, который выполняется
-
?param0=valueA¶m1=valueB...¶mN=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¶m1=valueB...¶mN=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¶m1=valueB...¶mN=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¶m1=valueB...¶mN=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.
|