Drupal geralmente são assuntos de duas etapas que requerem um estágio de pré-visualização / aprovação. O formulário que você está vendo é idêntico e pré-preenchido com os valores que você enviou do primeiro, mas também haverá uma prévia da ação na página e um campo de formulário oculto que indica que o próximo envio do formulário está sendo enviado da pré-visualização, para que os dados sejam realmente salvos.
A diferença é tipicamente o nome do botão de envio. Nos formulários que exigem pré-visualização, o botão enviar passará a operação como op=Preview
e, no formulário da página de pré-visualização, enviará op=Save
. A boa notícia é que, na verdade, ele não rastreia esse estágio de visualização no lado do servidor, ele apenas usa dicas do formulário para saber em que etapa você está. Ao enviar com uma forma automatizada como você está tentando fazer como curl
, você pode pular direto para a economia real, incluindo o envio de op=Save
em vez de usar o valor do formulário inicial.
Além disso, os formulários Drupal geralmente são rastreados usando um identificador ou token exclusivo. Para enviar esses formulários automaticamente, você precisará fazer o download da página com curl
, analisá-la para o campo de formulário que contém o token exclusivo (chamado form_token
em DP7 ) e incluir isso par chave / valor no seu POST.
Pelo menos em Drupal 7 você não deve ter problemas combinando estas técnicas. O token do formulário não é alterado da visualização para a final, portanto, depois de buscar o token, você pode pular direto para o POST final de salvamento.