Архив - только для чтения
Сообщество uCoz » Архивариус » Архив » PHP на uCoz (Описание темы)
PHP на uCoz
Модератор форума
Сообщение # 1 | 17:03:53
В марте 2011 в системе uCoz появилась возможность использовать ограниченные PHP-скрипты.

PHP вводится для того, чтобы наши пользователи могли расширить и кастомизировать свои сайты. Добавить им гибкости и разнообразных полезных функций. С помощью нового функционала возможно реализовать различные фичи на сайте, использовать скрипты для взаимодействия с модулями системы и вывода данных в необходимом виде и месте, их преобразование. Открываются возможности к реализации необычных сервисов на своих сайтах.

Данное решение не подходит для установки портальных систем, монстрообразных движков форумов, и прочих высоконагрузочных скриптов с неоптимальным исходным кодом, дающих высокие необоснованные нагрузки на сервер.


  • Полная инструкция по использованию PHP на uCoz здесь
  • Примеры использования PHP в системе uCoz представлены на сайте phpexample.ucoz.net

  • А также:
  • Полная инструкция об использовании базового API находится здесь
  • Обсуждение функционала API происходит здесь


Как активировать услугу?

Услуга доступна в рамках пакетов (начиная с пакета "Расширенный 2”), и как отдельная услуга ($1.99 в месяц)

Панель управления » Платные услуги » Купить отдельную услугу » PHP » Возможность использования PHP-скриптов



В этой теме разрешается обсуждать данную возможность, делиться опытом, вносить конструктивные предложения.

Внимание!
  • Просьба ко всем, кто не знает, что такое PHP, обсуждать его в другом месте (в сети есть множество форумов и мануалов).
  • HakerGTR
    Сообщений: 1
    Репутация: 15

    Сообщение # 121 | 01:54:30
    HotKnife, много. Если конечно вы не собираетесь в массивах хранить например файлы

    Да, я такой
    HotKnife
    Сообщений: 39
    Репутация: 9
    Уровень замечаний:

    Сообщение # 122 | 01:56:56
    я использую файлы как базу даных. все значения записываю в масив. интесно просто не будет ли со временем не хватка памяти

    HakerGTR
    Сообщений: 1
    Репутация: 15

    Сообщение # 123 | 02:33:53
    200 мб вполне достаточно. В будущем можно будет расширить

    Да, я такой
    White_wind
    Сообщений: 17
    Репутация: 0

    Сообщение # 124 | 16:44:57
    Можете назвать примерные сроки "выхода" встроенной функции?

    Добавлено (16-Апр-2011, 16:39:46)
    ---------------------------------------------

    Quote
    Ай, точно, fsockopen НЕ запрещена.
    Вероятно я изначально планировал ее отключить, но потом не нашел в ней ничего опасного, так что действительно, указанная вами ссылка может помочь временно решить проблему.

    Так я не понял, SMTP будет работать или нет?

    Добавлено (16-Апр-2011, 16:44:57)
    ---------------------------------------------
    И ещё вопрос: в таблицы БД можно вносить изменения? Необходимо добавить столбец оператором ALTER TABLE, чтобы можно было работать с доп. значениями страниц, находящихся в разделе shop.

    Ferro7
    Сообщений: 285
    Репутация: 230

    Сообщение # 125 | 17:22:41
    White_wind,
    Quote (joncofe)
    указанная вами ссылка может помочь временно решить проблему.

    т.е. http://thiswap.com/2010/08/25/otpravlyaem-pismo-na-mail-ru-so-skripta/

    Quote (White_wind)
    И ещё вопрос: в таблицы БД можно вносить изменения?

    Хранить дополнительные поля можно в текстовых файлах в папке /scripts, обращаясь к ним из PHP uCoz.

    Добавлено (16-Апр-2011, 17:22:41)
    ---------------------------------------------

    Quote (HakerGTR)
    Как вы думаете, стоит на uCoz php делать чат, который будет подавать запросы каждую секунду?

    Не стоит копировать функционал юкоза biggrin


    Вы полюбили меня. Здесь я. (с)
    Сообщение отредактировал Ferro7 - Суббота, 16 Апр 2011, 17:19:18
    Pupsik
    Сообщений: 8
    Репутация: 5

    Сообщение # 126 | 13:05:15
    Всем привет!!!
    Столкнулась с проблемой, просмотрела массу тем, и не нашла решения проблемы.
    Администраторы, приношу извинения за оффтоп (просто не у кого спросить)
    Если есть кто-то, кто нормально разбирается в php+ucoz и готов помочь, да бы посмотреть и разъяснить как сделать чтоб скрипт заработал. (скрипт рабочий на локальном сервере тестировали, работает)
    Буду в ЛС. Спасибо!
    White_wind
    Сообщений: 17
    Репутация: 0

    Сообщение # 127 | 13:20:22
    Quote
    Хранить дополнительные поля можно в текстовых файлах в папке /scripts, обращаясь к ним из PHP uCoz.

    Ооо...

    Поясню, что я хочу сделать. На странице раздела shop есть кнопка "Сделать заказ", по нажатии которой в БД добавляется запись о новом заказе. Я хотел добавить в таблицу БД два столбца - секретный код и статус заказа (подтверждён/не подтверждён), чтобы после нажатия кнопки "Сделать заказ" на мыло юзеру приходила ссылка с секретным кодом на php-скрипт. Если код сходится с записью бд - в таблице меняем статус заказа на активный.

    Реализовать такое с помощью текстовых файлов не резон: что, если заказов будет 1000 или 10000?

    Можно конечно попробовать отсылать секретный код до добавления заказа в БД. Т.е., когда юзер нажал на кнопку, php-скрипт отсылает код на мыло, а на сайте появляется окошко для ввода этого кода. Если код верный - продолжать работу сценария - добавлять заказ в БД.

    Что посоветуете?

    Добавлено (17-Апр-2011, 13:20:22)
    ---------------------------------------------
    Pupsik, выкладывайте сценарий прямо здесь - посмотрим и поможем, мб.

    Pupsik
    Сообщений: 8
    Репутация: 5

    Сообщение # 128 | 13:31:16
    Спасибо smile
    Quote
    <?PHP
    $FileBazaTXT="bazalink.txt";
    $temlpfile="backtemplate.html";
    $mypage404=false; //если true, то статус 404, иначе просто пустая страничка.

    // считываем шаблон
    if(file_exists($temlpfile)){
    $fh=fopen($temlpfile, 'r', false);
    $temlp = fread($fh, filesize($temlpfile));
    fclose($fh);
    }else $temlp='';

    // проверяем полученный GET-параметр
    if(isset($_GET['id'])){
    $idsite=substr(trim($_GET['id']),0,60);
    if(!preg_match("/^[a-z\-0-9.]*$/i", $idsite)){
    $idsite=''; }
    }else $idsite='';

    $strLink='';
    if((file_exists($FileBazaTXT))&&(strlen($idsite)>0)){
    $fh=fopen($FileBazaTXT, 'r', false);
    while (!feof($fh)) {
    $buf = trim(fgets($fh));
    if((strpos($buf,'[#*HOST=')!==false)&&(strpos($buf,$idsite)==8))
    {
    $strLink='';
    $buf='';
    while ((!feof($fh))AND(strpos($buf,'[#*HOST=')===false)) {
    $buf = fgets($fh);
    if (strpos($buf,'[#*HOST=')===false){$strLink.=$buf;}
    }
    break;
    }
    }
    fclose($fh);
    }

    if((strlen($temlp)>0)AND(strlen($strLink)>0)){ // если есть шаблон и код ссылки
    $result=str_replace("!linkdata!", $strLink,$temlp);
    echo $result;
    }elseif($mypage404){
    header("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    echo <<<END
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Страница не найдена!</title>
    </head>
    <body>
    <h1>Страница не найдена! 404 ошибка.</h1>
    <br><br>
    Вернитесь на главную страницу сайта или воспользуйтесь поиском!
    </body></html>
    END;
    }else{
    echo <<<END
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Партнерские ссылки</title>
    </head>
    <body>
    END;
    echo $strLink;
    echo '</body></html>';
    }

    ?>


    суть такова, скрипт вытаскивает с txt файла ссылку каталога на скормку роботу, и так происходит благодаря переменной /links.php?id=%host_reg% путь ссылки на обратку указывать нужно типатак
    http://mysite.ru/php/links.php?id=%host_reg%

    Я загружаю скрипт + 3 файла
    иду по ссылке http://mysite.ru/php/links.php и получаю ({"SCRIPTDATA":"\r\n\r\n\r\n
    по идеи должно в титле писать "партнеры" но такого нет!

    Сообщение отредактировал Pupsik - Воскресенье, 17 Апр 2011, 13:34:21
    White_wind
    Сообщений: 17
    Репутация: 0

    Сообщение # 129 | 14:01:52
    Код вроде бы верный. Как мне кажется, это какая-то трабла с обработкой сценария Юкозом. Однако, это только предположение.
    HakerGTR
    Сообщений: 1
    Репутация: 15

    Сообщение # 130 | 15:30:29
    Pupsik, в начало скрипта, после <?PHP вставьте такую строчку
    Code
    $___notjson=1;

    White_wind, С помощью php нельзя изменять базу данных юкоза. Можно только читать. Так что у вас только один выход

    Добавлено (17-Апр-2011, 15:30:29)
    ---------------------------------------------
    Ferro7, А дублировать никто не собирается smile


    Да, я такой
    Сообщение отредактировал HakerGTR - Воскресенье, 17 Апр 2011, 15:29:38
    Pupsik
    Сообщений: 8
    Репутация: 5

    Сообщение # 131 | 15:47:04
    HakerGTR
    Супер )) гениально, благодарю Вас )))) заработало.
    Ferro7
    Сообщений: 285
    Репутация: 230

    Сообщение # 132 | 01:42:50
    Quote (White_wind)
    Поясню, что я хочу сделать. На странице раздела shop есть кнопка "Сделать заказ", по нажатии которой в БД добавляется запись о новом заказе. Я хотел добавить в таблицу БД два столбца - секретный код и статус заказа (подтверждён/не подтверждён), чтобы после нажатия кнопки "Сделать заказ" на мыло юзеру приходила ссылка с секретным кодом на php-скрипт. Если код сходится с записью бд - в таблице меняем статус заказа на активный.

    uCoz, конечно же, врядли в обозримом будущем позволит пользователям модифицировать саму базу. Возможно, только если доработает API для изменения значений уже существующих полей, но будет это не раньше, чем через XXX дней.. Если готовы ждать - ждите )))

    Quote (White_wind)
    Реализовать такое с помощью текстовых файлов не резон: что, если заказов будет 1000 или 10000?

    Рядом с тем же php-скриптом можно без проблем положить и текстовой файл. Достаточно иметь только 1 файл. Плодить их под каждый заказ не нужно. А хранить всё в массиве, вида:

    Code
    Array(
    'id_заказа1' => array('секретный код заказа', '0 (не подтверждён)'),
    'id_заказа2' => array('секретный код заказа', '1 (подтверждён)'),
    ...
    )

    позже выполненные заказы можно удалять из файла. Или у вас 1000 заказов в секунду? ))


    Вы полюбили меня. Здесь я. (с)
    Сообщение отредактировал Ferro7 - Понедельник, 18 Апр 2011, 01:44:03
    RadvanCor
    Сообщений: 8
    Репутация: 3

    Сообщение # 133 | 02:32:29
    Ребятки скажите, вот подключил услугу PHP, установил ряд скриптов, всё работает....
    Но что будет если я к примеру не успею проблить эту услугу? Что будет с моими скриптами?
    Они перестанут работать да?
    И если потом я всё же проблю услугу, все скрипты что были на в дериктории /script они останутся или сотрутся?

    http://procj.com
    joncofe
    Гуру
    Сообщений: 110
    Репутация: 46

    Сообщение # 134 | 14:31:41
    Quote (RadvanCor)
    И если потом я всё же проблю услугу, все скрипты что были на в дериктории /script они останутся или сотрутся?

    Перестанете оплачивать услугу, работать скрипты не будут. Оплатите снова - заработают.Если не будете платить более 6 месяцев, то скорее всего удаляться.
    RadvanCor
    Сообщений: 8
    Репутация: 3

    Сообщение # 135 | 15:25:12
    joncofe, спасибо.

    http://procj.com
    Сообщество uCoz » Архивариус » Архив » PHP на uCoz (Описание темы)
    Поиск: