2017-08-24 39 views
0

我必须创建一个登录到drupal 7用户并上传内容的脚本(没有管理员或数据库访问)。我已经使用cURL并成功登录在还保存会话ID cooky.Afterwards我可以访问的内容类型的表单页面,successfuly(表明点心存储),但从未形式提交successfully.Here是我的代码不能让curl在drupal-7中提交一个简单的内容类型

$crl = curl_init(); 
$url = "http://example.com/drupal/content/node/add/simple"; 
curl_setopt($crl, CURLOPT_URL, $url); 
curl_setopt($crl, CURLOPT_HEADER, true); 
curl_setopt($crl, CURLOPT_HTTPHEADER, $http_headers); 
curl_setopt($crl, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($crl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); 
curl_setopt ($crl, CURLOPT_COOKIEJAR, "/tmp/cookie.txt"); 
curl_setopt($crl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($crl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"); 
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($crl, CURLOPT_POST, 1); 
$postdata = array(
"title"=>"dokimastiki anartisi", 
"form_id"=>"simple_node_form", 
"name"=>"dimitris", 
"body[und][0][format]"=>"filtered_html", 
"name"=>"dimitris", 
"form_id"=>"simple_node_form", 
"op"=>"Send message",); 
curl_setopt ($crl, CURLOPT_POSTFIELDS, $postdata); 
$result=curl_exec($crl); 
$headers = curl_getinfo($crl); 
echo curl_exec($crl); 
session_write_close(); 
curl_close($crl); 

我一直在strugling到使这项工作2天。我已经尝试添加每个表单元素的名称和默认值。任何人都可以看到我犯的任何明显的错误?谢谢

+0

如果你对自己的卷曲有困难,你是否想过尝试[Guzzle](http://docs.guzzlephp.org/en/stable/)?可能会更容易,更清洁。 – Peon

+0

谢谢您的建议。如果没有其他作品,我会对其进行调查 –

回答

0

我想drupal会自动创建CSRF保护标记,您必须添加到每个POST请求中?你没有提供代码来发布之前获取csrf令牌,我敢打赌,这是你的问题。请求在浏览器中看起来如何?

+0

在浏览器中,我看到添加/内容页面中包含我在代码中指定的字段以及错误消息,说“表单已过时。下面的表单中的任何未保存的工作,然后重新加载此页面。“ –

+0

@DimitrisPolitis和请求是什么样的?所有发布数据参数的名称是什么? – hanshenrik

+0

这里 “: ”标题“=>” 标题 “ ”改成“=> ”“, ”form_build_id“=> ”XXX“, ”form_token“=> ”XXX“, ”form_id“=>” simple_node_form “, ”comment“=>”2“, ”path [pathauto]“=>” “body [und] [0] [summary]”=>“”, “revision”=>“1” 1“, ”path [alias]“=>”“, ”name“=>”dimitris“, ”date“=>”“, ”status“=>”“, ”promote“=> 1“, ”sticky“=>”1“, ”status“=>”1“, ”additional_settings__active_tab“=>”“, ”additional_settings__active_tab“=>”“, “body [und] [0] [summary]”=> “body [und] [0] [format]”=> “op”=> –

相关问题