Как php заставить нажать submit формы?

zek24

Мой дом здесь!
Команда форума
Модератор
Регистрация
14 Ноя 2009
Сообщения
811
Реакции
310
  • Автор темы
  • Модер.
  • #1
Привет,
есть сайт с формой отправки данных обработчику.
Форма доступна только после авторизации.
Требуется скрипт, который будет запускаться cronom и отправлять данные от формы обработчику. (в форме я уже вставил значения по умолчанию)
Написал на curl скриптик авторизации, который переходит на страницу с формой, но вот нажать кнопку отправки данных не получается.
PHP:
<script type="text/javascript">
    document.forms['form_import'].submit();
</script>
не помогает, так понимаю, что нужно физическое открытие браузером. Сымитировать не получается. Хотя headerы отправлял...
Подскажите, плиз, куда копать.
 
Написал на curl скриптик авторизации, который переходит на страницу с формой, но вот нажать кнопку отправки данных не получается.
PHP:
<script type="text/javascript">
    document.forms['form_import'].submit();
</script>
не помогает, так понимаю, что нужно физическое открытие браузером. Сымитировать не получается. Хотя headerы отправлял...
Подскажите, плиз, куда копать.

Сама форма, скорее всего, не потребуется. CURLом сделать POST (или GET, смотря что стоит в атрибуте method тэга form) запрос на адрес, который указан в action, и передать нужные переменные формы (CURLOPT_POSTFIELDS). При этом, если потребуются дальнейшие действия указать в опциях CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE файл (для сохранения информации между запросами, работает аналогично кукам в браузере).

За основу можно взять пример из мануала (Для просмотра ссылки Войди или Зарегистрируйся + Для просмотра ссылки Войди или Зарегистрируйся например)
 
  • Автор темы
  • Модер.
  • #3
Сама форма, скорее всего, не потребуется. CURLом сделать POST (или GET, смотря что стоит в атрибуте method тэга form) запрос на адрес, который указан в action, и передать нужные переменные формы (CURLOPT_POSTFIELDS). За основу можно взять пример из мануала (Для просмотра ссылки Войди или Зарегистрируйся, например)
там несколько редиректов, в курле не силен, рад что это написал))
Хотел уточнить, там не сабмит, а
HTML:
<a class="n_button" onclick="$('#form_import').submit();"><?php echo $button_import; ?></a>
Нужно при открытии курлом страницы отправить данные по умолчанию в форме
 
Нужно при открытии курлом страницы отправить данные по умолчанию в форме
1. получить страницу (видимо, уже сделано)
2. распарсить/получить данные из формы
3. отправить CURL-запросом (см выше)

Пример по ссылке Для просмотра ссылки Войди или Зарегистрируйся
Может быть полезен для понимания.
 
  • Автор темы
  • Модер.
  • #5
Зачем парсить? Все пары значений у меня уже есть.
Нужно curl заставить "клацнуть" по ссылке-сабмиту.
 
:confused:
zek24, выше уже сказали... не надо там ничего нажимать, просто отправить POST-запрос.
Но! Вполне вероятно, что на javascript идет либо подмена каких-то значений, либо дополнение формы новыми значениями, либо подмена action формы.
Надо изучать исходный код.
 
  • Автор темы
  • Модер.
  • #7
Это связка opencart и модуль Для просмотра ссылки Войди или Зарегистрируйся
1С формирует и выгружает файл csv в указанную директорию,
запускает скрипт php (который пытаюсь написать) или CRONом
скрипт авторизируется в админке и запускает модуль
модуль подхватывает файл csv (данные в форме уже заполнены) и заливает в БД

С курлом только недавно познакомился - хватило знаний на авторизацию и переход на страницу с формой.

Не могу понять, какие данные нужно давать обработчику (ООП не знаю)
Так бы в обход формы можно сразу было бы отправлять POST обработчику.
 
Не могу понять, какие данные нужно давать обработчику (ООП не знаю)
В F12 файрбаге или в хроме средства разработчика.. вкладка Network - там можно увидеть, какой запрос (в т.ч. какие данные формы) уходит на сервер. Вот их и задать в CURLOPT_POSTFIELDS
Mgwta.png
 
Можно ли увидеть пример скрипта?
Думаю можно сделать еще проще просто заставить curl переходить по ссылке например Для просмотра ссылки Войди или Зарегистрируйся
Конечно тоже с curl не знаком пока)
 
О боже мой... Простите но формулеровка я незнаю и только начал и не получается и все что вы говорите тоже не то.........
Ни надо вам ни каких ООП...
Чистый голый код. Авторизовывайтесь и шлите файл куда надо. Другое дело что у вас понятие о работе самой сути нет. Как минимум постийте как работает http протокол, вы работаете имеено через него. Никаких нажатий кнопок нет это для двуногих придумано.

А вообще мой вам совет отдайте 10$ и забейте, на лансе вам накидают за пару часов.

Если все же интересно.

curl отпрака файлов
curl авторизация
proxomitron

Прогуглите эти строки - поможет.
Про http протокол пока можете не заморачиваться....
 
Назад
Сверху