• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wypelnianie formularzy na stronie za pomoca konsoli w C++

Object Storage Arubacloud
0 głosów
666 wizyt
pytanie zadane 28 listopada 2019 w C i C++ przez EteerYT Początkujący (480 p.)
Witam chce napisac program, który wyręczy mnie w wypelnianiu formularzy.

Mianowicie nie wiem jak napisac program który po uruchomieniu wypelni mi dane pola  np. pole z imieniem oraz nazwiskiem na stronie.

Program imie oraz nazwisko bierze od użytkownika w konsoli przy uruchomieniu programu i nie mam pojęcia jak owy program napisac.

 

Z góry dziekuje za pomoc :)
3
komentarz 28 listopada 2019 przez tkz Nałogowiec (42,000 p.)
Dlaczego c++? To nie jest narzędzie do tego. Użyj js, pythona.

1 odpowiedź

+3 głosów
odpowiedź 28 listopada 2019 przez Patrycjerz Mędrzec (192,320 p.)

Tak jak wspomniano w jednym z komentarzy, tego typu zadania lepiej zrobić w językach do tego wyspecjalizowanych. Jednak wykonanie tego w C++ nie powinno być bardzo skomplikowane.

Najpierw zacznijmy o wytłumaczenia, w jaki sposób działają formularze na stronach internetowych. Otóż w kodzie HTML istnieje znacznik form, który posiada atrybuty action​ oraz method. Pierwszy informuje, na jaki adres wysłać żądanie, a drugi definiuje metodę przesyłu danych. Metoda GET używa do tego adresu URL, natomiast POST ukrywa dane w nagłówku protokołu HTTP. Cały problem polega więc na tym, aby stworzyć odpowiednie żądania GET lub POST, wysłać je i odebrać odpowiedź. Można robić to ręcznie za pomocą stringów i socketów, ale istnieją gotowe rozwiązania. Przykładowe biblioteki open source znajdziesz tutaj.

komentarz 6 grudnia 2019 przez EteerYT Początkujący (480 p.)
#include <stdio.h>
#include <curl/curl.h>
#include <iostream>
using namespace std;

string https,strona;

int main(void)
{
	cout<<"Wprowadz nazwe strony: ";cin>>strona;
	https="https://www."+strona;
	cout<<endl;
  CURL *curl;
  CURLcode res;

  /* In windows, this will init the winsock stuff */ 
  curl_global_init(CURL_GLOBAL_ALL);

  /* get a curl handle */ 
  curl = curl_easy_init();
  if(curl) {
    /* First set the URL that is about to receive our POST. This URL can
       just as well be a https:// URL if that is what should receive the
       data. */ 
    curl_easy_setopt(curl, CURLOPT_URL, https.c_str());
    /* Now specify the POST data */ 
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "login=name&password=pass");
	   /* Perform the request, res will get the return code */ 
    //res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK){
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));
    }else{
    	cout<<"Dane poprawne";
    }
    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  curl_global_cleanup();
  return 0;
}

 

komentarz 6 grudnia 2019 przez Patrycjerz Mędrzec (192,320 p.)

Na początku sprawdź zachowanie strony, tzn. jaką odpowiedź otrzymujesz po wysłaniu poprawnych, jak i błędnych danych. Pomocne mogą być narzędzia deweloperskie wbudowane w przeglądarkę internetową, które umożliwią m.in. analizę nagłówka HTTP.

Spójrz na przykłady na stronie libcurl. Znajdziesz tam m.in. program parsujący kod HTML. Wzorując się na nim możesz wyłuskać odpowiedni komunikat powodzenia/błędu.

Co do twoje kodu, to nie ma w nim zbyt wiele, więc trudno się do niego odnieść.

Gdybyś miał jakieś problemy, to daj znać ;)

komentarz 15 grudnia 2019 przez EteerYT Początkujący (480 p.)
Ehh, no i stoję w kropce już od dłuższego czasu :/

Szukam, mecze się, próbuje ale nici z tego.

Niestety nie wiem jak to napisac, aby działało tak jak chciałem, dalej nie potrafię otrzymać wiadomości zwrotnej od serwera odnośnie poprawności wysłanego przezemnie formularza :/
komentarz 15 grudnia 2019 przez tkz Nałogowiec (42,000 p.)

https://www.youtube.com/watch?v=eRSJSKG4mDA

Niby w pythonie, ale curl do C(++) daje te same możliwości. 

komentarz 16 grudnia 2019 przez Patrycjerz Mędrzec (192,320 p.)
Napisz proszę, co udało ci się dotychczas zrobić (to, o czym poprzednio pisałem, czyli co zwraca serwer przy poprawnych i błędnych danych) i jaki masz aktualnie kod.

Podobne pytania

0 głosów
1 odpowiedź 488 wizyt
pytanie zadane 21 marca 2016 w JavaScript przez gab123 Mądrala (5,230 p.)
0 głosów
1 odpowiedź 113 wizyt
+1 głos
1 odpowiedź 179 wizyt
pytanie zadane 19 października 2022 w JavaScript przez Bartek030 Obywatel (1,460 p.)

92,626 zapytań

141,483 odpowiedzi

319,827 komentarzy

62,006 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...