Необходимо реализовать возможность создания ноды со страницы другого сайта (передаются параметры Заголовок и Содержание).
Тело формы
<input type="hidden" name="form_id" id="edit-page-node-form" value="page_node_form">
<input type="hidden" name="form_token" id="edit-page-node-form-form-token" value="61d21a587b96639c7750ec2e1fa1152a">
<input type="text" name="title" id="edit-title" size="60">
<textarea cols="60" rows="20" name="body" id="edit-body" ></textarea>
<button type="submit" name="op" id="edit-submit" value="Сохранить">
</form>
В ответы выходит сообщение: Ошибка при проверке значения, пожалуйста повторите. Если ошибка повторится, сообщите администратору сайта.
Вопрос в поле
Если подставить значение с ноды сформированной на сайте, то запрос принимается. Потом опять нет.
Можно ли сгенерировать значения этого поля на стороне внешней формы или отключить проверку этого значения?
Комментарии
Может проще node_factory + свой обработчик запроса?
курите XMLRPC
Все оказалось просто
в includes\form.inc
экранируем проверку form_token
<?php
// If the session token was set by drupal_prepare_form(), ensure that it
// matches the current user's session.
// if (isset($form['#token'])) {
// if (!drupal_valid_token($form_state['values']['form_token'], $form['#token'])) {
// // Setting this error will cause the form to fail validation.
// form_set_error('form_token', t('Validation error, please try again. If this error persists, please contact the site administrator.'));
// }
// }
?>
Ужоснах..
1) Хакнули ядро без причины
2) Создали уязвимость в движке
Просто - возможно, но неправильно - вы вмешались в код ядра друпал, и вам придётся как минимум при каждом обновлении это учитывать. Так что лучше выбрать более правильные средства решения задачи.
Ужасное решение. сами поймете почему, после того как активно будете использовать.