Re: [Cppcms-users] query string
Brought to you by:
artyom-beilis
From: kpeo <sla...@ya...> - 2015-09-30 09:02:32
|
<div><blockquote type="cite">So, is there no load for context if i use GET method?</blockquote><p>GET is tiny bit "harder" to get because of parse from QUERY_STRING.<br />And GET is less secure than POST, because it exposes the information via the URL.</p><blockquote type="cite"><div>The next, some time I use identifier / name of field using query string &data[x][name]=value</div><div> </div><div>Is it convert to array like PHP post method, or we must loop manually using request().get("data[x][name]")?</div></blockquote><p>It's clear from the source http_request.cpp/h:</p><p>form_type post_;<br /><br />std::string request::post(std::string const &name)<br />{<br /> std::pair<form_type::iterator,form_type::iterator> pair = post_.equal_range(name);<br /> form_type::iterator p = pair.first;<br /> if(pair.first == pair.second || ++pair.first != pair.second)<br /> return std::string();<br /> return p->second;<br />}</p><p>request::form_type const &request::post()<br />{<br /> return post_;<br />}<br /><br />Best regards,<br />kpeo</p><p>30.09.2015, 11:31, "mawan sugiyanto" <ma...@gm...>:</p></div><blockquote type="cite"><div>Thanks Kpeo <div> </div><div>So, is there no load for context if i use GET method?</div><div> </div><div>The next, some time I use identifier / name of field using query string &data[x][name]=value</div><div> </div><div>Is it convert to array like PHP post method, or we must loop manually using request().get("data[x][name]")?</div><div> </div><div>Thank you </div><div> </div><div> </div></div><div><br /><div>On Wed, Sep 30, 2015 at 3:23 PM, kpeo <span><<a href="mailto:sla...@ya..." target="_blank">sla...@ya...</a>></span> wrote:<br /><blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><span><span>You can use req.get("name") instead req.post("name") and "</span></span>if (req.request_method()=="GET") {"<br /><span><span><span><br />There is no </span></span></span>raw_post_data() member in request class, but you can use <br /><a href="http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html#af80022c2dddaf68330eb7f3f23ec84fc" target="_blank">form_type</a> const& <a href="http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html#a0d9ff833540a1a78c5f290aec99cdd90" target="_blank">cppcms::http::request::post_or_get</a>()<br /><span>(form_type represents form-data key-value pairs)<br /></span>See: <a href="http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html#a0d9ff833540a1a78c5f290aec99cdd90" target="_blank">http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html#a0d9ff833540a1a78c5f290aec99cdd90</a><br /><span><br />Best regards,<br />kpeo<br /><br />And also it's good point to read this article: <a href="http://cppcms.com/wikipp/en/page/secure_programming" target="_blank">http://cppcms.com/wikipp/en/page/secure_programming<br /></a></span></div><div> </div><div>30.09.2015, 10:55, "mawan sugiyanto" <<a href="mailto:ma...@gm..." target="_blank">ma...@gm...</a>>:</div><div><div><blockquote type="cite"><div>How good practice about to get paramters from query string (GET method , and not from POST method)?<div> </div><div>Thanks </div></div><div><br /><div>On Wed, Sep 30, 2015 at 2:42 PM, kpeo <span><<a href="mailto:sla...@ya..." target="_blank">sla...@ya...</a>></span> wrote:<br /><blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>Hi!<br /><br />You can get raw post data from request (let's assume cppcms::application& app_;) in your application (below).<br />(see: <a href="http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html" target="_blank">http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html</a>)<a href="http://cppcms.com/cppcms_ref/latest/classcppcms_1_1http_1_1request.html" target="_blank"></a><br /><div><p>But it's not seems like a good practice, because CppCMS have built-in forms/widgets classes - see: <a href="http://cppcms.com/wikipp/en/page/cppcms_1x_forms" target="_blank">http://cppcms.com/wikipp/en/page/cppcms_1x_forms</a><a href="http://cppcms.com/wikipp/en/page/ref_cppcms_forms" target="_blank"><br /></a><a href="http://cppcms.com/wikipp/en/page/ref_cppcms_forms" target="_blank">http://cppcms.com/wikipp/en/page/ref_cppcms_forms<br /></a></p></div><div>AFAIK values are the same, but by using CppCMS classes you have additional compile-time type checking, usefull functional, etc.<br /><br />virtual void post(content::my_content& c)</div><p>{<br /> cppcms::http::request& req = app_.request();<br /> if (req.request_method()=="POST") {<br /> std::pair<void *,size_t> post_data = req.raw_post_data();<br /> std::istringstream ss(std::string(reinterpret_cast<char const *>(post_data.first),post_data.second));<br /> //BOOSTER_LOG(debug,__FUNCTION__) << "raw post data: " << ss.str();<br /><br />// Get some submitted values</p><p> if(!req.post("check").empty()) //get some hidden input value for form with name "check"<br /> {<br /> std::string name = req.post("name"); //get value of input with name "name"</p><p>// Some handler</p><p> }<br />}<br /><br /></p><p>Best regards,<br />kpeo</p></div><div>30.09.2015, 10:06, "mawan sugiyanto" <<a href="mailto:ma...@gm..." target="_blank">ma...@gm...</a>>:</div><blockquote type="cite"><div><div><div>Dear All <div> </div><div>is there any method from request object to get querystring value?</div><div>is it similar with value from form (using load content)?</div><div> </div><div>Thanks</div></div></div></div>,<p>------------------------------------------------------------------------------</p>,<p>_______________________________________________<br />Cppcms-users mailing list<br /><a href="mailto:Cpp...@li..." target="_blank">Cpp...@li...</a><br /><a href="https://lists.sourceforge.net/lists/listinfo/cppcms-users" target="_blank">https://lists.sourceforge.net/lists/listinfo/cppcms-users</a></p></blockquote><br />------------------------------------------------------------------------------<br /> <br />_______________________________________________<br /> Cppcms-users mailing list<br /> <a href="mailto:Cpp...@li..." target="_blank">Cpp...@li...</a><br /> <a href="https://lists.sourceforge.net/lists/listinfo/cppcms-users" target="_blank">https://lists.sourceforge.net/lists/listinfo/cppcms-users</a></blockquote></div></div>,<p>------------------------------------------------------------------------------</p>,<p>_______________________________________________<br />Cppcms-users mailing list<br /><a href="mailto:Cpp...@li..." target="_blank">Cpp...@li...</a><br /><a href="https://lists.sourceforge.net/lists/listinfo/cppcms-users" target="_blank">https://lists.sourceforge.net/lists/listinfo/cppcms-users</a></p></blockquote></div></div><br />------------------------------------------------------------------------------<br /> <br />_______________________________________________<br /> Cppcms-users mailing list<br /> <a href="mailto:Cpp...@li...">Cpp...@li...</a><br /> <a href="https://lists.sourceforge.net/lists/listinfo/cppcms-users" target="_blank">https://lists.sourceforge.net/lists/listinfo/cppcms-users</a><br /> </blockquote></div></div>,<p>------------------------------------------------------------------------------</p>,<p>_______________________________________________<br />Cppcms-users mailing list<br /><a href="mailto:Cpp...@li...">Cpp...@li...</a><br /><a href="https://lists.sourceforge.net/lists/listinfo/cppcms-users">https://lists.sourceforge.net/lists/listinfo/cppcms-users</a></p></blockquote> |