Mercurial > hgrepos > hgweb.cgi > skipweb
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>"