Pertanyaan Login ke admin OpenCart dengan curl PHP


Saya ingin login ke OpenCart CMS dengan curl otomatis dan menambahkan hal-hal ke otomatis juga
tetapi saya tidak bisa masuk ke sana. Saya mencari dan menemukan beberapa hasil tetapi tidak dapat membantu saya dan saya tidak mendapatkan hasil apa pun. Ini adalah kode saya:

<?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;
}
?> 

Dalam kode ini, pertama saya menginisialisasi username dan password dan URL tautan saya
 untuk admin situs web saya maka saya gunakan CURLOPT_POST permintaan dan CURLOPT_POSTFIELDS 
 dan kemudian jalankan $ch tapi sekarang saya tidak punya hasil cookie.txt dan tidak
 login ke admin situs web.


5
2017-09-03 06:49


asal


Jawaban:


Aku menatap http://demo.opencart.com/admin/ dan melihat bahwa url aksi dalam bentuk tidak hanya / admin. Coba yang ini:

<?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;
}
?>

Saya tidak menguji apakah url tindakan tergantung pada versi tertentu, jadi periksa saja formulir dengan alat pengembang browser Anda


1
2017-09-03 14:55