Автоматически входить в osCommerce через PHP, используя cURL

Я работаю над приложением, которое позволяет клиенту входить на веб-сайт osCommerce для получения данных. Пока у меня есть этот скрипт, который отлично работает для нескольких других сайтов, таких как Wordpress, но не для osCommerce.

<?php
$ch = curl_init();
// Login here
curl_setopt($ch, CURLOPT_URL, 'http://demo.oscommerce.com/login.php');
curl_setopt ($ch, CURLOPT_POST, 1);
// Login/password
curl_setopt ($ch, CURLOPT_POSTFIELDS, '[email protected]&password=123456');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
// Get this file
curl_setopt($ch, CURLOPT_URL, 'http://demo.oscommerce.com/account.php');
$content = curl_exec ($ch);
curl_close ($ch); 
// Show the file
echo $content;
?>

Я не знаю, в чем может быть проблема, так как у меня недостаточно опыта в PHP, чтобы увидеть это. Что мне нужно изменить, чтобы этот скрипт заходил на сайт? Заранее спасибо!


person Cosmi    schedule 13.02.2012    source источник
comment
Запустил, работает. В чем твоя ошибка?   -  person random    schedule 15.02.2012
comment
Это просто дает мне пустую страницу. Если я повторяю страницу index.php, то она показывает мне страницу, но пользователь все равно не авторизовался.   -  person Cosmi    schedule 26.02.2012
comment
Вы используете действующую учетную запись, верно?   -  person random    schedule 27.02.2012


Ответы (2)


Насколько я знаю, oscommerce принимает «имя пользователя», а не «адрес электронной почты», если только вы не измените имя поля FORM. Попробуйте передать имя пользователя вместо адреса электронной почты.

person user769889    schedule 13.02.2012
comment
Спасибо за ваш ответ, но кажется, что у osCommerce есть email_address. Я дважды проверил поля. - person Cosmi; 13.02.2012

Вы должны отправить curl на http://demo.oscommerce.com/login.php?action=process вместо http://demo.oscommerce.com/login.php чтобы сразу перейти к проверке переменных

person Pablo Martinez    schedule 20.02.2012
comment
Без изменений. Это дает мне пустую страницу, так как пользователь не вошел в систему. Я видел, что есть скрытый ввод под названием formid, я поместил его среди имени пользователя и пароля, но все равно безрезультатно. - person Cosmi; 26.02.2012
comment
Я протестировал его в своей онлайн-коммерции, и он работает хорошо. - person Pablo Martinez; 27.02.2012
comment
возможно, ваш сервер имеет открытые внешние URL-адреса для false, если да, curl не может открыть demo.oscommerce .com/login.php?action=process - person Pablo Martinez; 27.02.2012
comment
Я понимаю, но я могу использовать этот скрипт для входа в Wordpress, и он работает хорошо! Кроме того, это то же самое на локальном хосте. Ах, я изменил адрес электронной почты только для демонстрационных целей. В моем тесте я использую действительный user&pass. Но все равно не могу понять, почему не работает? @Pablo, ты тестируешь код, который я написал в теме, без изменений, кроме user&pass? ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: В файле cookie.txt автоматически записывается следующее: # Файл cookie Netscape HTTP # curl.haxx .se/rfc/cookie_spec.html # Этот файл был сгенерирован libcurl! Редактируйте на свой страх и риск. demo.oscommerce.com ЛОЖЬ / ЛОЖЬ 0 osCsid 43p9tvul2iujjsof40cc327gc6 - person Cosmi; 27.02.2012
comment
Я тестирую код с http://‹myoscommercesite›/login.php?action=process и с действительным адресом электронной почты и паролем, и он работает. Вы пробовали на своем сервере? - person Pablo Martinez; 27.02.2012