Re: [cgi-devel] truncated post variable
Status: Beta
Brought to you by:
drrngrvy
From: Darren G. <lis...@go...> - 2011-09-06 00:55:16
|
Hi JC, On 6 September 2011 00:18, <jc...@ol...> wrote: > Hello Darren, > > I am struggling with the following issue. On a linux box with nginx as the > webserver > > on the client's side, I am making the following jquery call: > > function sign_up() > { > $("#sign_up_feedback").html('').hide(); > $.post > ( "/", > { task: 'sign_up', > member_username: > $('#member_username').val(), > member_password: > $('#member_password').val(), > member_password_repeat: > $('#member_password_repeat').val(), > member_first_name: > $('#member_first_name').val(), > member_last_name: > $('#member_last_name').val(), > member_phone: $('#member_phone').val(), > member_email: $('#member_email').val(), > member_corporation_id: > $('#member_corporation_id').val(), > member_unit: $('#member_unit').val(), > member_card_number: > $('#member_card_number').val(), > member_card_expiration: > $('#member_card_expiration').val() > }, > function(data) > { > $("#sign_up_feedback").html(data).show(); > } > ); > } > Look fine. > I have used similar functions, thousands of times but, this time,when I > read the post values server side > using > print_variables_(req.post, "POST"); > with > template<typename Map> > void > print_variables_(Map& m, std::string title) > { > std::ostringstream os; > os << title << "\n"; > if (m.empty()) > { > os << "NONE\n"; > } > else > { > for(typename Map::const_iterator i = m.begin(); i != m.end(); ++i) > { > os << i->first << " = " << i->second << "\n"; > } > } > os << "\n"; > write_to_file("~/log_requests", os.str()); > } > Ok. > member_card_number is truncated to member_card! I looked at the http > headers and the nginx logs and member_card_number is not truncated. > That's odd. Is it just member_card_number that is truncated? Are all of the other parameters ok? > I am very puzzled here as this has never really happened to me. > Where in the source code of the CGI library could I see where the parsing > of the http header is done? > These functions live in: http://svn.boost.org/svn/boost/sandbox/SOC/2007/cgi/trunk/boost/cgi/detail/extract_params.hpp http://svn.boost.org/svn/boost/sandbox/SOC/2007/cgi/trunk/boost/cgi/detail/url_decode.ipp There's also parse_url_encoded_form() in: http://svn.boost.org/svn/boost/sandbox/SOC/2007/cgi/trunk/boost/cgi/impl/form_parser.ipp which will get called for POST params.* Although I can't imagine how you're ending up seeing what you're seeing. Could you provide a minimal compilable file I can try? Cheers, Darren * wow I really need to commit this newer code, trunk isn't looking it's best I'm afraid. :( |