Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
登录Opencart';用PHP的curl实现s-admin_Php_Curl_Opencart_Simple Html Dom - Fatal编程技术网

登录Opencart';用PHP的curl实现s-admin

登录Opencart';用PHP的curl实现s-admin,php,curl,opencart,simple-html-dom,Php,Curl,Opencart,Simple Html Dom,我想用curl自动登录OpenCart CMS,并自动添加内容但我无法登录。我搜索并找到了一些结果,但无法帮助我,也没有得到任何结果。这是我的代码: <?php include_once "simple_html_dom.php"; $username = 'active'; $password = '123active'; $loginUrl = 'http://localhost:100/mywebsite/admin/'; $ch = curl_init(); curl_seto

我想用curl自动登录OpenCart CMS,并自动添加内容
但我无法登录。我搜索并找到了一些结果,但无法帮助我,也没有得到任何结果。这是我的代码:

<?php
include_once "simple_html_dom.php";
$username = 'active';
$password = '123active';
$loginUrl = 'http://localhost:100/mywebsite/admin/';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $loginUrl);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$store = curl_exec($ch);
$html=new simple_html_dom();
$html->load($store);
foreach($html->find("li#dashboard") as $dash){
    echo $dash->innertext;
}
?> 

在这段代码中,我首先初始化
用户名
密码
以及链接到
的URL到我网站的管理员,然后使用
CURLOPT_POST
请求和
CURLOPT_POSTFIELDS

执行
$ch
,但现在我在
cookie.txt
上没有任何结果,也没有登录到
网站的管理员

我查看并看到表单中的操作url不仅仅是/admin。试试这个:

<?php
include_once "simple_html_dom.php";
$username = 'active';

$password = '123active';
//$loginUrl = 'http://localhost:100/mywebsite/admin/';
//new url
$loginUrl = 'http://localhost:100/mywebsite/admin/index.php?route=common/login';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $loginUrl);

curl_setopt($ch, CURLOPT_POST, true );

// follows a location header redirect
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );

curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$store = curl_exec($ch);
$html=new simple_html_dom();
$html->load($store);
foreach($html->find("li#dashboard") as $dash){
    echo $dash->innertext;
}
?>


我没有测试操作url是否取决于特定版本,因此只需使用浏览器开发工具检查表单

是否存在
&autologin=1&userlogi=login
?我测试!但是没有得到结果我想把产品自动从文本添加到OpenCart你有什么建议吗?我的建议是,寻找一个OpenCart API,我并不真正喜欢OpenCart,但我认为有一些API扩展,也许有一个内置的API。也许这会有帮助:()我想知道cookie.txt有什么问题,但我无法填充它!我做了一些搜索,但没有得到任何结果。我想知道为什么我在这个文件中没有得到任何结果?我可能对cookie有问题吗?请阅读cookie部分的代码这似乎是一个权限问题,如果你尝试这个
curl_setopt($ch,CURLOPT_COOKIEJAR,/tmp/cookie.txt'),你可以检查它$store=curl\u exec($ch)$cookieContent=file_get_contents(dirname(_file__)。'/tmp/cookie.txt');变量转储($cookieContent)…顺便说一下/tmp/不是保存cookie的地方;)问题是,出于安全原因,OpenCard使用令牌,因此我建议您使用OpenCart API,或者如果您真的想编写自己的API,那么只使用curl而不使用OpenCart上下文是没有意义的。