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

yatex.org