view event/oasis2017/idol/red_1.rb @ 3944:e45173af0101 default tip master

chenge game link
author KOMATSU Kotaro <c118089@roy.e.koeki-u.ac.jp>
date Mon, 20 Jan 2020 18:13:48 +0900
parents 9a3e84e19a50
children
line wrap: on
line source

#!/usr/bin/env ruby
# coding: utf-8

# tail -f /usr/local/apache2/logs/error_log

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

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


require 'sqlite3'
file = "../db/point.sq3"

# 前回のアクセスで既に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(file)
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

pt = 0 # 開始直後は0点
# SELECTの検索結果に値があるかは [0] が nil かどうかで判定できる

name = db.execute("SELECT name FROM users WHERE id=?", id)[0]


open("red1a.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"]
if p==""
  p="1"# page変数指定がなければ "1" とする
end

ib = c["cv"]
gin = c["adm"]
name = c["name"]

puts "

<html>
<head><title>アイエキ、しよ?</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"ema3.css\" >
<meta name=\"viewport\" content=\"width=device-width\">

</head>
<body>

<form method=\"POST\" action=\"red_1.rb\">"

# ページ番号による切り替え処理
printf("<p>%s</p>\n", page[p]) # ページ番号に応じたメッセージ出力



case p
when "1"
  nextpage = "2"
  img = "redout.png"
when "2"
  nextpage = "3"
 img = "redout.png"
when "3"
  nextpage = "4"
  img = "redout2.png"
when "4"
  nextpage = "5"
  img = "redout.png"
when "5"
  nextpage = "6"
 img = "redout.png"
when "6"
 print(<<-"EOF")
<p><b><a href="home.rb">NEXT LIVE……</a></b><br>


</p>
EOF
  nextpage = nil

end

if 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
db.close
puts "</form>
</body>
</html>"

yatex.org