I am trying to create a form that I can use remotely that will enable me to do what the company that owns the site won't do.... Allow me to post all our invoices in one batch, instead of one at a time...

So I created a login where I can enter all the invoices in a text area.

Example in Textarea Post:
123,02928,06/28/2004,9.50
124,02893,06/28/2004,20.00

That is in this order....
Invoice Number, Store Number, Date, Amount

Then I have this code to do the processing for me...
my $_invoices = param("invoices"); # Get the value of the text +area if ($_invoices && $_invoices =~ /\015\012/) { $_split_val = "\015\012"; } elsif ($_invoices && $_invoices =~ /\r\n/) { $_split_val = "\r\n"; } use HTTP::Cookies; $cookie_jar = HTTP::Cookies->new( 'file' => "/home/first/cook/lwp_cookies.dat", 'autosave' => 1, ); my $_post_url = 'http://www.eb2b.net/E2B_UMLogOn.process'; my $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); my $req = HTTP::Request->new(POST => "$_post_url"); $req->content_type('application/x-www-form-urlencoded'); $req->content("IWPEProcessFlow.submitted.sequenceID=&logonUser +name=myhiddenusername&logonPassword=myhidden_password&Logon=Login&hMs +gUserNotFound=User with this name was not found.&hMsgInvalidPassword= +Logon not valid.&fromHomePage=default_B2B.htm"); $req->referrer("http://www.eb2b.net/"); # Spoof their website. +.. my $res = $ua->request($req); if (!$res->is_success) { $_message = get_error_table("I could not login to the eb2b +.net website.... please check what is up with that..."); $in{view} = "start_form"; batch_features(); return; } my $_invoices_started = 0; my $_invoices_ended = 0; while($_invoices ne "") { $_invoices_started++; (my $_line_val, $_invoices) = split /$_split_val/, $_invoi +ces, 2; # Split $_invoices and shorten by $_line_val.... next if !$_line_val; # Does not contain anything go to the + next line.... ($_inv_num,$_store_number,$_inv_date,$_amount) = split /\, +/, $_line_val, 4; # Reset Page.... $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); $response = $ua->get('https://www.eb2b.net/E2B_OMInvoiceCr +editMgmt.process?RestartFlow=t'); # Start Template.... $_post_url = 'http://www.eb2b.net/E2B_SelectTemplate.proce +ss?restartFlow=t'; $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); $req = HTTP::Request->new(POST => "$_post_url"); $req->content_type('application/x-www-form-urlencoded'); $req->content("SelectTemplate=Use Template >"); $req->referrer("https://www.eb2b.net/E2B_OMInvoiceCreditMg +mt.process?RestartFlow=t"); $res = $ua->request($req); # Create Invoice from Template... $_post_url = 'http://www.eb2b.net/E2B_OMInvoiceCreditMgmt. +process?restartFlow=t&FromTemplate=t&Template_Id=522'; $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); $req = HTTP::Request->new(POST => "$_post_url"); $req->content_type('application/x-www-form-urlencoded'); $req->content("Relationship_Index=0&CInvoice=Create Invoic +e"); $req->referrer("https://www.eb2b.net/E2B_SelectTemplate.pr +ocess?restartFlow=t"); $res = $ua->request($req); # Post Invoice... $_post_url = 'http://www.eb2b.net/E2B_OMInvoiceCreditMgmt. +process'; $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); # Create content into form.... $_content = "E2B_OMInvoiceCreditForm.Purchase_Order_Number +=&Location_Number=" . $_store_number . "&VendorRelationshipIndex=0&E2 +B_OMInvoiceCreditForm.Invoice_Number=" . $_inv_num . "&Purchase_Order +_Date=&E2B_OMInvoiceCreditForm.Bill_Of_Lading_Number=&Invoice_Date=" +. $_inv_date . "&E2B_OMInvoiceCreditForm.Trailer_Number=&Ship_Date=" +. $_inv_date . "&E2B_OMInvoiceCreditForm.Fob_Code=CC&Total_Invoice_Ca +rtons=1&Carrier_Code=ZZZZ&E2B_OMInvoiceCreditForm.Sales_Division_Numb +er=6131195061&E2B_OMInvoiceCreditForm.Net_Invoice_Total=0&E2B_OMInvoi +ceCreditForm.EditPageMarker=&E2B_OMInvoiceCreditForm.LineItemVector[0 +].Line_Number=1&E2B_OMInvoiceCreditForm.LineItemVector[0].Vendor_Item +_Number=DD&E2B_OMInvoiceCreditForm.LineItemVector[0].Customer_Item_Nu +mber=&E2B_OMInvoiceCreditForm.LineItemVector[0].Upc_Code=&E2B_OMInvoi +ceCreditForm.LineItemVector[0].UPC_NDC_Indicator= &E2B_OMInvoiceCredi +tForm.LineItemVector[0].Item_Description=Maintenance&E2B_OMInvoiceCre +ditForm.LineItemVector[0].Quantity_Shipped=1&E2B_OMInvoiceCreditForm. +LineItemVector[0].Unit_Of_Measure=EA&E2B_OMInvoiceCreditForm.LineItem +Vector[0].Pack_Size=1&E2B_OMInvoiceCreditForm.LineItemVector[0].Unit_ +Price=" . $_amount . "&rcDirection=&selectedLine=&IWPEProcessFlow.sub +mitted.sequenceID=/E2B_OMInvoiceCreditMgmt.process|runProcessE2B_OMMa +nualInvoiceCredit|expandE2B_OMManualInvoiceCredit&Invoice_Complete_Fl +ag=0&E2B_OMInvoiceCreditTermsAllowancesDirection="; $req = HTTP::Request->new(POST => "$_post_url"); $req->content_type('application/x-www-form-urlencoded'); $req->content($_content); $req->referrer("https://www.eb2b.net/E2B_OMInvoiceCreditMg +mt.process?restartFlow=t&FromTemplate=t&Template_Id=522"); $res = $ua->request($req); # Ok, now take the invoice just created and add the "a +ccounting code" then send it to ekerdx $_post_url = 'http://www.eb2b.net/E2B_OMInvoiceCreditMgmt. +process'; $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); # Create content into form.... $_content = "E2B_OMInvoiceCreditTermsAllowancesDirection=& +selectedAllowanceCollection=&selectedLine=&IWPEProcessFlow.submitted. +sequenceID=/E2B_OMInvoiceCreditMgmt.process|runProcessE2B_OMInvoiceCr +editTermsAllowances|expandE2B_OMInvoiceCreditTermsAllowances&Bus_Unit +=00&Acct=664600&Cost_Dep_No=0000&RowSkip=&RowChunk=&TabChoice=&search +By=&E2B_OMInvoiceCreditTermsAllowancesDirection=Confirm"; $req = HTTP::Request->new(POST => "$_post_url"); $req->content_type('application/x-www-form-urlencoded'); $req->content($_content); $req->referrer("https://www.eb2b.net/E2B_OMInvoiceCreditMg +mt.process"); $res = $ua->request($req); # All Done.... $_invoices_ended++; } $_page_content .= qq~Ok, I have started $_invoices_started inv +oices and finished $_invoices_ended invoices!<br> <br>~;
This is not working, it is erroring out at my "cannot login" exit point.

Can someone please help me find out why this is not working?

Thank you!
Richard

In reply to Remote Login and Form Posting by powerhouse

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.