Note that there are some explanatory texts on larger screens.

plurals
  1. POShotgun gets new sessions every time, can't store data in sessions
    text
    copied!<p>This is an example from a book, a bit modified. It seems like sessions don't work. Every time I get a new session.</p> <pre><code>#reporter.rb require 'sinatra/base' class LoginScreen &lt; Sinatra::Base #configure(:development) { set :session_secret, "something" } enable :sessions get('/login') { erb :login } post('/login') do if params[:user][:login] == 'admin' &amp;&amp; params[:user][:password] == 'admin' session['user_name'] = params[:user][:login] redirect '/' else session[:notice] = "notice!" redirect '/login' end end end class Reporter &lt; Sinatra::Base # "прослойка" будет запущена перед фильтрами # enable :sessions # use Rack::Session::Pool, :expire_after =&gt; 2592000 #configure(:development) { set :session_secret, "something" } use LoginScreen before do unless session[:user_name] halt "Access denied, please &lt;a href='/login'&gt;login&lt;/a&gt;." end end get('/') { "Hello #{session['user_name']}." } end </code></pre> <hr> <h1>config.ru</h1> <pre><code>require './reporter' run Reporter </code></pre> <hr> <h1>login.erb</h1> <pre><code> &lt;h1&gt;Main User&lt;/h1&gt; &lt;h1&gt;Welccome to reporter&lt;/h1&gt; &lt;p&gt;You must log in with your credentials or as "newcomer" &lt;/p&gt; &lt;form action="/login" method="post" id="user"&gt; &lt;p&gt; &lt;label&gt;login:&lt;/label&gt;&lt;br /&gt; &lt;input type="text" name="user[login]" id="login" /&gt; &lt;/p&gt; &lt;p&gt; &lt;label&gt;Password:&lt;/label&gt;&lt;br /&gt; &lt;input type="text" name="user[password]" id="password" /&gt; &lt;/p&gt; &lt;p&gt; &lt;input type="submit" value="Log in"&gt; &lt;/p&gt; &lt;/form&gt; </code></pre> <p>I'm using</p> <ul> <li>ruby 1.9.2</li> <li>sinatra 1.3.2</li> <li><code>shotgun -s thin -p 4567</code> - how I start server</li> </ul> <p>I just can't understand why sessions don't save data?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload