# a problem http POST params

**URL:** <https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453>\
**Category:** rubyonrails-talk\
**Created:** [May 12, 2009, 3:18pm UTC](https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453 "2009-05-12T15:18:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Learning](https://avatars.discourse-cdn.com/v4/letter/l/5daacb/32.png) [@Learning](https://discuss.rubyonrails.org/u/Learning)\
**Post date:** [May 12, 2009, 3:18pm UTC](https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453/1 "2009-05-12T15:18:28Z")

</div>

this is my HTML: \<form method = "post" action = "form/index"\> \<input type = "text" name = "username" /\> \</form\>

and the form\_controller: class FormController \< ApplicationController &nbsp;&nbsp;def index &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@username=params[:username] &nbsp;&nbsp;end end

what's wrong about this? it works with GET method. but the API shows that params() Returns both GET and POST \parameters in a single hash. there's the error message below

ActionController::InvalidAuthenticityToken in FormController#index

ActionController::InvalidAuthenticityToken

RAILS\_ROOT: /home/Learning/workspace/myapp Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ request\_forgery\_protection.rb:79:in `verify_authenticity_token' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:178:in `send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/ callbacks.rb:178:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:166:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:225:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:629:in `run\_before\_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:615:in `call_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:610:in `perform\_action\_without\_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rescue.rb:160:in `perform\_action\_without\_flash' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ flash.rb:141:in `perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:523:in `send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:523:in `process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:606:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:391:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:386:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ routing/route\_set.rb:433:in `call'

/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ request\_forgery\_protection.rb:79:in `verify_authenticity_token' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:178:in `send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/ callbacks.rb:178:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:166:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:225:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:629:in `run\_before\_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:615:in `call_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:610:in `perform\_action\_without\_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rescue.rb:160:in `perform\_action\_without\_flash' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ flash.rb:141:in `perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:523:in `send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:523:in `process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:606:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:391:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:386:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ routing/route\_set.rb:433:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:88:in `dispatch' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ dispatcher.rb:111:in `_call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:82:in `initialize' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ query\_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ connection\_adapters/abstract/query\_cache.rb:34:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:9:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ query\_cache.rb:28:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ connection_adapters/abstract/connection_pool.rb:361:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/head.rb:9:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/methodoverride.rb:24:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ params\_parser.rb:15:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rewindable_input.rb:25:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ session/cookie\_store.rb:93:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ reloader.rb:9:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ failsafe.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/lock.rb:11:in `synchronize' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ dispatcher.rb:106:in `call' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/urlmap.rb:46:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in `each' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in `call' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb: 17:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/content\_length.rb:13:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `gem\_original\_require' /usr/lib/ruby/vendor\_ruby/1.8/rubygems/custom\_require.rb:31:in `require' script/server:3

/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ request\_forgery\_protection.rb:79:in `verify_authenticity_token' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:178:in `send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/ callbacks.rb:178:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ callbacks.rb:166:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:225:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:629:in `run\_before\_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ filters.rb:615:in `call_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:610:in `perform\_action\_without\_benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in `ms' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ benchmarking.rb:68:in `perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rescue.rb:160:in `perform\_action\_without\_flash' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ flash.rb:141:in `perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:523:in `send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:523:in `process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:606:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ base.rb:391:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:386:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ routing/route\_set.rb:433:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:88:in `dispatch' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ dispatcher.rb:111:in `_call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:82:in `initialize' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ query\_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:29:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ connection\_adapters/abstract/query\_cache.rb:34:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:9:in `cache' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/ query\_cache.rb:28:in `call' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ connection_adapters/abstract/connection_pool.rb:361:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/head.rb:9:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/methodoverride.rb:24:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ params\_parser.rb:15:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rewindable_input.rb:25:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ session/cookie\_store.rb:93:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ reloader.rb:9:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ failsafe.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/lock.rb:11:in `synchronize' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ dispatcher.rb:106:in `call' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/urlmap.rb:46:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in `each' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in `call' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb: 17:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/content\_length.rb:13:in `call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/ vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `gem\_original\_require' /usr/lib/ruby/vendor\_ruby/1.8/rubygems/custom\_require.rb:31:in `require' script/server:3 -e:2:in `load' -e:2

Request

Parameters:

{"username"=\>"123"}

Show session dump

---

<div class="post-metadata">

**Author:** ![Tom\_Z\_Meinlschmidt](https://avatars.discourse-cdn.com/v4/letter/t/2acd7d/32.png) [@Tom\_Z\_Meinlschmidt](https://discuss.rubyonrails.org/u/Tom_Z_Meinlschmidt)\
**Post date:** [May 12, 2009, 4:02pm UTC](https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453/2 "2009-05-12T16:02:00Z")

</div>

because of security ...

you need to specify 'removal' from token protection in your controller, eg class FormController \<\< ApplicationController &nbsp;&nbsp;&nbsp;protect\_from\_forgery :only =\> [:create, :update, :destroy]

&nbsp;&nbsp;&nbsp;def index &nbsp;&nbsp;&nbsp;... &nbsp;&nbsp;&nbsp;end end

Learning wrote:

---

<div class="post-metadata">

**Author:** ![Learning](https://avatars.discourse-cdn.com/v4/letter/l/5daacb/32.png) [@Learning](https://discuss.rubyonrails.org/u/Learning)\
**Post date:** [May 13, 2009, 5:12am UTC](https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453/3 "2009-05-13T05:12:05Z")

</div>

Does RoR has an easy way to tell different about GET and POST params just like $\_GET and $\_POST in PHP?

---

<div class="post-metadata">

**Author:** ![Matthew\_MacLeod1](https://avatars.discourse-cdn.com/v4/letter/m/77aa72/32.png) [@Matthew\_MacLeod1](https://discuss.rubyonrails.org/u/Matthew_MacLeod1)\
**Post date:** [May 13, 2009, 9:05am UTC](https://discuss.rubyonrails.org/t/a-problem-http-post-params/42453/4 "2009-05-13T09:05:29Z")

</div>

You can use the request object:

case request.method when :get &nbsp;&nbsp;#Do stuff for GET method &nbsp;&nbsp;return when :post &nbsp;&nbsp;#Do stuff for POST method &nbsp;&nbsp;return end
