Newer
Older
skip-web / event / oasis2017 / idol / name.rb
@OOTANI Hiroyuki OOTANI Hiroyuki on 29 Sep 2017 6 KB db 変更
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'sqlite3'
file = "../db/point.sq3"
#########
###SQLの場所変え
########
require 'cgi'
c = CGI.new(:accept_charset => "UTF-8")

# 前回のアクセスで既にcookieが定義されていたら取得
# ブラウザからのcookieは、c.cookies[変数名][0] で受け取る
cookie_id=c.cookies["id"][0]

# 前回のアクセスで入力された値を取得
form_name=c["playname"]        # nameをフォームから取得(もしあれば)
form_kwd=c["keyword"]          # keywordも取得(もしあれば)
form_clr=c["clear"]            # クリアボタン

if cookie_id == nil             # (1)もしcookieからのidがなければ新規生成
  # 新規idは、現在時刻を秒(to_i)にした文字列(to_s)と乱数の組み合わせ
  newid = Time.now.to_i.to_s + "/" + rand(99999).to_s
  id=newid                      # 新規idをidとする
else                            # (2)cookieからのidがあればそれをidとする
  id=cookie_id
end

# idをすぐcookieで相手ブラウザに送る
# 変数の期限を24時間に設定し、expire変数に入れる
expire = (Time.now+24*3600).gmtime.strftime("%a, %d %b %Y %H:%M:%S GMT")

printf("Content-type: text/html; charset=UTF-8\n")
printf("Set-Cookie: id=%s; expires=%s\n\n", id, expire)

db = SQLite3::Database.new("../db/users.sq3")
db.execute("PRAGMA foreign_keys=on")
db.execute("CREATE TABLE IF NOT EXISTS " +
           "users(id text primary key, name text, creation text)")
db.execute("CREATE TABLE IF NOT EXISTS " +
           "point(id, keyword text, FOREIGN KEY(id) REFERENCES users(id))")

if form_clr > "" && id > ''# クリアボタンが押されていたら
  db.execute("DELETE FROM point WHERE id=?", id)
end
if form_name > ""             # formからの名前設定がもしあれば
  db.execute("REPLACE INTO users VALUES(?, ?, ?)", id, form_name, Time.now.to_s)
end
point = 0# 開始直後は0点
# SELECTの検索結果に値があるかは [0] が nil かどうかで判定できる
name = db.execute("SELECT name FROM users WHERE id=?", id)[0]

print(<<-EOF)


<!DOCTYPE html>
<html lang="ja">
<head><title>アイキス、しよ?</title>
<link rel="stylesheet" type="text/css" href="ema3.css" >
<meta name="viewport" content="width=device-width">
</head>
<body>

EOF


if !name      # もしユーザのプレイ名が未設定なら
  title = "アイドルを育成しよう!"
  hello = "プレイ名を入力してね"
  input = '<input name="playname">'
  
  print('<form action="name.rb" method="POST">')
  printf(<<-EOF,

<h1>%s</h1>
<p>%s</p>

<p>%s<br>
<label><input type="checkbox" name="clear">クリアする</label><br>
<input type="submit" value="送信">
<input type="reset" value="リセット">
<input type="hidden" name="playname" value="id" >


</p>

EOF
         title, hello, input,)

#else
  #導入画面

  #require 'cgi'
  #c = CGI.new(:accept_charset => 'utf-8')

  page = Hash.new
  n = 0
  img = ""


  open("aikiss-p.txt","r:utf-8") do |cat|

    while line = cat.gets
      if /(\d+)\s+(\S+)\s+/ =~line
        page[$1] = $2
      end
    end
  end


  p = c["page"]
  gin = c["adm"]
  x = c["sam"]

  if p==""
    p="1"# page変数指定がなければ "1" とする
  end
  name = c["name"]




  if p =="9"
    print(<<-"EOF")
<form method="POST" action="home.rb">
EOF

  else
    print(<<-"EOF")
  <form method=\"POST\" action=\"pro.rb\">
EOF

  end

  # ページ番号による切り替え処理

  printf("<p>%s</p>\n",page[p])
  case p
  when "1"
    img = "1.jpg"
    nextpage = "2"

  when "2"
    nextpage = "3"

  when "3"
    nextpage = "4"
    img = "blue1.png"

  when "4"
    nextpage = "5"
    img = "white1.png"
  when "5"
    nextpage = "6"
    img = "red1.png"
  when "6"
    nextpage = "7"
  when "7"
    nextpage = "8"

  when "8"

    puts('<img src="shugo2.png">')
    nextpage = "9"

    print(<<-"EOF")
<p><br>

<label><input type="radio" name="adm" value="red">中央(日和山あかね)</label><br>
<label><input type="radio" name="adm" value="white">画面左(白鳥ゆき)</label><br>
<label><input type="radio" name="adm" value="blue">画面右(鳥海あおい)</label></p>
 EOF

  when "9"
    case gin
    when "red"
      print(<<-"EOF")
   <img src="red1.png"align="left"valign="middle">
   <p>「初めまして、日和山あかね(ひよりやま あかね)だよ!<br>好きなのは歌とダンス!<b\
r>!夢は大きなステージでライブをすることでっす!<br>たっくさん努力するから応援よろし\\
くね</p>
    この子にする<br>

  <br><INPUT type="button" onclick="history.back()" value="NO">
   <input type="submit"    value="YES">
EOF


    when "white"
      print(<<-"EOF")
   <img src="white1.png"align="left"valign="middle">
 <p>初めまして白鳥ゆき(しらとり ゆき)です。<br>他の娘たちみたいな輝くもののない普通\
の子ですが、<br>精一杯頑張りますのでよろしくお願いします。」</p>
    この子にする?<br>
  <br><INPUT type="button" onclick="history.back()" value="NO">
 <input type="submit"    value="YES">
EOF



    when "blue"
      print(<<-"EOF")
   <img src="blue1.png"align="left"valign="middle">
  <p>「は、初めまして。えっと、鳥海あおい(とりみ あおい)と申します。<br>人前に立つ\\
のは苦手で、少しでもこんな自分を変えられたらって思ったんですけど。<br>やっぱり私、向\\
いてないですよね…?」</p>
    この子にする?
  <br><INPUT type="button" onclick="history.back()" value="NO">
<input type="submit"   value="YES">
EOF


    end
    nextpage =nil

  end






  if p =="9"
    printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin)
    printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)

    #elsif p =="10"
    # printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin)

    #printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
  elsif nextpage

    printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
    printf("<img src=\"%s\">\n",img)
    puts('<br><INPUT type="button" onclick="history.back()" value="前へ">')
    puts('<input type="submit"   value="次へ">')

  end
else                          # プレイ名設定済みならホーム画面へ
  print('<form action="home.rb" method="POST">')
  print('<input type="hidden" name="playname" value="id" >')

end

db.close



print(<<-EOF)


</form></body></html>
EOF