Mercurial > hgrepos > hgweb.cgi > skipweb
changeset 3379:c450bb1162ce
pro2
author | KASHIWAGURA Aya <c115046@?.koeki-u.ac.jp> |
---|---|
date | Wed, 26 Jul 2017 18:54:15 +0900 |
parents | 768da5008d6d |
children | 40c9e5c5824a |
files | event/oasis2017/idol/pro.rb |
diffstat | 1 files changed, 115 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/event/oasis2017/idol/pro.rb Wed Jul 26 18:41:00 2017 +0900 +++ b/event/oasis2017/idol/pro.rb Wed Jul 26 18:54:15 2017 +0900 @@ -1,10 +1,93 @@ #!/usr/bin/env ruby -# coding: utf-8 - -# tail -f /usr/local/apache2/logs/error_log +# -*- coding: utf-8 -*- +require 'sqlite3' +file = "db/point.sq3" require 'cgi' -c = CGI.new(:accept_charset => 'utf-8') +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> +</form></body></html> +EOF + title, hello, input,) + + +#導入画面 + +#require 'cgi' +#c = CGI.new(:accept_charset => 'utf-8') page = Hash.new n = 0 @@ -56,19 +139,18 @@ # ページ番号による切り替え処理 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" @@ -87,7 +169,8 @@ print(<<-"EOF") <p><br> -<label><input type="radio" name="adm" value="red">中央(日和あかね)</label><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 @@ -97,7 +180,9 @@ when "red" print(<<-"EOF") <img src="red1.png"align="left"valign="middle"> - <p>「初めまして、日和あかね(ひより あかね)だよ!<br>好きなのは歌とダンス!<br>!夢は大きなステージでライブをすることでっす!<br>たっくさん努力するから応援よろしくね</p> + <p>「初めまして、日和山あかね(ひよりやま あかね)だよ!<br>好きなのは歌とダンス!<b\ +r>!夢は大きなステージでライブをすることでっす!<br>たっくさん努力するから応援よろし\\ +くね</p> この子にする<br> <br><INPUT type="button" onclick="history.back()" value="NO"> @@ -108,7 +193,8 @@ when "white" print(<<-"EOF") <img src="white1.png"align="left"valign="middle"> - <p>初めまして白鳥ゆき(しらとり ゆき)です。<br>他の娘たちみたいな輝くもののない普通の子ですが、<br>精一杯頑張りますのでよろしくお願いします。」</p> + <p>初めまして白鳥ゆき(しらとり ゆき)です。<br>他の娘たちみたいな輝くもののない普通\ +の子ですが、<br>精一杯頑張りますのでよろしくお願いします。」</p> この子にする?<br> <br><INPUT type="button" onclick="history.back()" value="NO"> <input type="submit" value="YES"> @@ -118,8 +204,10 @@ when "blue" print(<<-"EOF") - <img src="blue1.png"align="left"valign="middle"> - <p>「は、初めまして。えっと、鳥海あおい(とりみ あおい)と申します。<br>人前に立つのは苦手で、少しでもこんな自分を変えられたらって思ったんですけど。<br>やっぱり私、向いてないですよね…?」</p> + <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"> @@ -135,6 +223,7 @@ + if p =="9" printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin) printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage) @@ -151,7 +240,18 @@ puts('<input type="submit" value="次へ">') end +else # プレイ名設定済みならホーム画面へ + print('<form action="home.rb" method="POST">') + print('<input type="hidden" name="playname" value="id" >') -puts "</form> -</body> -</html>" +end + +db.close + + + +print(<<-EOF) + + +</form></body></html> +EOF