Drupal 6 анализирует входящие данные POST - PullRequest
2 голосов
/ 17 сентября 2009

У меня есть файл Excel, из которого мне нужно отправить данные в мою базу данных Drupal MySql. Для этого я использую HTTP POST из VBA моего листа Excel следующим образом:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
        URL = "http://localhost:8082/acquia-drupal/node/2"
        objHTTP.Open "POST", URL, False
        objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
        objHTTP.send ("string=testdata")

Я хочу использовать страницу Drupal, которая будет анализировать данные POST и записывать их в таблицу в базе данных Drupal MySql.

Вот то, с чего я начал,

<?php
if (isset($_POST['string']))
{
  $trans = $_POST['string'];
  db_query("INSERT INTO {excel} (ExcelData) VALUES (%d')",
  $trans);
}

Это правильное направление? Кроме того, может ли кто-нибудь предоставить некоторые фрагменты кода для правильного анализа данных POST?

Ответы [ 2 ]

5 голосов
/ 18 сентября 2009

Обработка входящих данных $ _POST так, как вы обрисовываете, немного напоминает раскрутку вашего собственного веб-сервиса. Это не плохо, обязательно, а иногда это лучший способ поговорить друг с другом.

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

Кроме того, как отмечено в комментарии Элая, кажется, что вы можете поместить это в узел. Это относительно опасный способ сделать это, поскольку любой может легко открыть этот узел и начать использовать данные $ _POST в вашей базе данных. Создание модуля, использование hook_menu () для определения пути URL для вашего кода импорта и наложение некоторых ограничений контроля доступа на этот конкретный URL сделают вещи немного более безопасными.

1 голос
/ 18 сентября 2009

В данный момент выглядит так, будто вы просто пишете этот код на странице с включенным PHP-фильтром.

Если это действительно так, то это не очень хорошая идея. По крайней мере, напишите собственный модуль, возможно, с некоторым кодом синтаксического анализа POST в hook_view (или просто простой настраиваемой функцией) и с hook_menu для установки адреса страницы.

Что касается синтаксического анализа POST, это массив ключей PHP => value ... Я не нашел способа использования Drupal-ish, и некоторые популярные модули, безусловно, используют его как есть.

...