<%= password_field_tag :pin %>
<%= submit_tag "Complete sale" %>
daje w url wartości params widocznym wpisanym pinem
localhost:8000/static/index?utf8=✓&pin=1234&commit=Complete+sale
czy tą wartość params w url mozna ukryć?
<%= password_field_tag :pin %>
<%= submit_tag "Complete sale" %>
daje w url wartości params widocznym wpisanym pinem
localhost:8000/static/index?utf8=✓&pin=1234&commit=Complete+sale
czy tą wartość params w url mozna ukryć?
tak – wysyłając formularz postem, nie getem.
Swoją drogą,kod wygląda bardzo źle – czy nie masz modelu, który ma pole z pinem? Czemu korzystasz z password_field_tag zamiast z password_field?
Nie, nie mam modelu ponieważ apka nie trzyma informacji o userach a uwierzytelniac ma ich z ldap.
Potrzebuje tu jedynie pobrać string z hasłem i zapisać go do zmiennej dla NetLDAP
post nie get?
tak działa
<h1>Static#index</h1>
<%= form_tag("/static/index", :method => "get") do %>
<%= text_field_tag :user %>
<%= password_field_tag :pass %>
<%= submit_tag "Zaloguj" %>
<% @user=params[:user].to_s %>
<% @pass=params[:pass].to_s %>
<% ldap %>
<% end %>
tak nie, wyrzuca brak strony, post prubuje dodac nowy wpis do nieistniejącej bazy?
<h1>Static#index</h1>
<%= form_tag("/static/index", :method => "post") do %>
<%= text_field_tag :user %>
<%= password_field_tag :pass %>
<%= submit_tag "Zaloguj" %>
<% @user=params[:user].to_s %>
<% @pass=params[:pass].to_s %>
<% ldap %>
<% end %>
Cześć,
bez konkretnego błędu ciężko stwierdzić, ale prawdopodobnie nie masz routingu, który pozwalałby na wysyłanie rządań metodą POST do Static#index.
Zainteresuj się opcją “:via” w routes.rb.
Maciek
Nic nie szkodzi – to popularny błąd początkujących, którzy myślą, że model == coś, co trzymam w bazie danych. Poczytaj o ActiveModel (lub obejrzyj railscasta), i zobacz, że da się i z Twojego przypadku zrobić model
tak jak przedmówca wspomniał – nie masz zdefiniowanej ścieżki z postem do akcji index (zresztą, nie powinnaś robić tego do indexu…)
Czy z
<%= form_tag("/static/index", :method => "get") do %>
<%= text_field_tag :user %>
<%= submit_tag "Zaloguj" %>
<% end %>
można przekazać value inaczej do zmiennej globalnej niz przez params
<% @user=params[:user]. %>
a) @user to zmienna instancji, $user to byłaby zmienna globalna.
b) A co właściwie konkretnie chcesz zrobić?
Zrobiłam model według tego casta i teraz od dłuzszego czasu główkuje gdzie i czy program zapisuje dane wysyłane z formularza
A gdzie chcesz zapisać dane z formularza? Wcześniej pisałaś, że nie chcesz zapisywać danych do bazy. Dasz jakiś konkret co chcesz zrobić? Łatwiej będzie znaleźć odpowiednie rozwiązanie.
Mój działający kod
<h1>Static#index</h1>
<%= form_tag("/static/index", :method => "get") do %>
<%= text_field_tag :user %>
<%= password_field_tag :pass %>
<%= submit_tag "Zaloguj" %>
<% ldap %>
<% end %>
module StaticHelper
def ldap
if @logged == false
@user = params[:user].to_s
@pass = params[:pass].to_s
p = Net::LDAP.new
p.host = "10.9.95.1"
p.auth @user, @pass
if (p.bind && @user!='')
@logged= true
end
end
end
end
Nie chce przekazywać wartości wprowadzanych przez formularz przez params
Nie jestem jakimś super specjalistą, ale chyba bez params się nie da odebrać danych z formularza. Z wcześniejszych twoich wypowiedzi wnioskuję, że chodzi ci o przekazanie danej z formularza, ale nie umieszczając jej w adresie. Reasumując chodzi ci o przekazanie danych poprzez metodę POST.
Dzięki metodzie POST dane z formularza nie zostaną wyświetlone w adresie URL.
Dlaczego?
A można inaczej? Pytam z ciekawości.
Nie Dlatego pytam czego alicja chce uniknąć.
tego co napisałam na początku postu, widoczności hasła/pinu w url
To nie ma nic wspólnego z params. Co więcej, dostałaś już odpowiedź (2x) co zrobić, aby hasło nie pojawiało się w pasku adresu…
wiem, dziekuje Ci za info odnosnie :via, zadziałało teraz ciekawi mnie jak odczytywać/przekazywać dane przy uzyciu modelu tableless jeżeli dane nie zrzuca do bazy “meła kulpa” , że pytam, nie pisze komercyjnego projektu staram sie uczyć i zrozumieć wszystkie rozwiazania jakie podajecie