본문으로 바로가기

[코드스터디] 3주차

category 잡동사니 2015. 6. 25. 00:05

1번수업은 듣기만 함 - 로그인 폼 / 세션 / 변수 넘겨주기 


쿠키 /  세션

보안상 신경 안 써도 되는 것 - 쿠키 사용. ex)장바구니. 하지만 요즘은 잘 안 쓰는 추세.



 @email_name = session[:email]

  if @u_email == "asdf@asdf.com"
    if @u_password == "1234"
      @comment = "로그인성공"
      session[:email] = 'asdf@asdf.com'


  <% if !session[:email].nil? %> ->nil = null / 물음표는 질문 unless로 사용해도된다.
  <%= @email_name %>님이 로그인하셨습니다.
  <a href="/logout">로그아웃</a>
  <% end %>


redirect 명령어 -> 로그인 누르면 메인페이지에 로그인된채로 나온다.

redirect '/list_posts'


DB Server - 호예(Sinatra) - 회원


Sinatra - DBserver간의 연결을 도와줌 -> Datamapper를 사용.

sqlite3 / sinatra / datamapper 사용



require 'data_mapper'

추가

DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/blog.db")

class Post
  include DataMapper::Resource
  property :id, Serial  // sqlite에서 쓰이는 id이므로 유저 아이디는 id로 쓰면 안 된다.
  property :user_name, String
  property :user_password, String
  property :created_at, DateTime
end

DataMapper.finalize

string = 문자열
text = 긴문자열
datetime = 시간

Hotel.auto_upgrade! -> DB로 전송.

페이지에서 post로 날려준 변수 -> 홈파일에서 params[:변수명]으로 받는다.

데이터 베이스 서버 = params[:변수명]을 처리해 주어야한다.


 n_user = User.new -> 새로운 빈깡통 유저를 만든다.
  n_user.user_email = params[:user_email] -> 크롬에서 날아온 오른쪽내용을 왼쪽에 저장한다. 
  n_user.user_password = params[:user_password]
  n_user.save

양쪽 이름이 같을 이유는 없지만, 앞에 있는 user_password와 홈파일 맨위에서 만든 property 이름은 반드시 같아야 한다.

  database_user = User.first(:user_email => params[:user_email]) -> 데이터베이스에서 유저를 뽑아내고 임시적으로 저장(왼쪽 변수), 대소문자 구별 필수, params -> 크롬에서 날아온 데이터, first다음 user_email는 property.과 같은 이름을 처음으로 뽑아내는 데이터베이스에 만들어진 이메일 (=> 루비문법.) 과 같은 첫번째 유저를 왼쪽 변수에 담는다.  

  if !database_user.nil?
    if database_user.user_password == params[:user_password]
      session[:email] = params[:user_email]
    end
  end

중요. 


'잡동사니' 카테고리의 다른 글

[코드스터디] 5주차  (0) 2015.06.25
[코드스터디] 4주차  (0) 2015.06.25
[코드스터디] 2주차  (0) 2015.06.25
[코드스터디] 1주차  (0) 2015.06.25
Linux 기초 2  (0) 2015.06.24