changeset 2190:887ceead6df3

nakamachi追加
author fuji <c111126@g.koeki-u.ac.jp>
date Thu, 06 Feb 2014 19:59:04 +0900
parents b1fadf1efbc6
children f2d259ad9319
files nakamachi/1111.html nakamachi/hoge.dat nakamachi/hoge.html nakamachi/hogege.dat nakamachi/mail.rb nakamachi/mailtest.rb nakamachi/memo.txt nakamachi/pass.dat nakamachi/qr1111.png nakamachi/qupon2.png nakamachi/retry.html nakamachi/retry.rb nakamachi/syobon.jpg nakamachi/test.rb
diffstat 13 files changed, 480 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/1111.html	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>まだ</title>
+</style>
+<link rel="stylesheet" type="text/css" href="ほげ.css">
+</head>
+
+<body>
+<h1>パスワード登録ページ予定</h1>
+<p>メール送ったりなんだりさせるつもり</p>
+
+<address>c111126@g.koeki-u.ac.jp</address>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/hoge.dat	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,50 @@
+1	106996	4	ふじ
+2	1165563	3	かわ
+3	1547608	0	a
+4	1637816	0	a
+5	1674821	0	a
+6	2146728	0	a
+7	2246529	0	a
+8	2404662	0	a
+9	2487941	0	a
+10	2579504	0	a
+11	2680544	0	a
+12	2904846	0	a
+13	3185616	0	a
+14	3266671	0	a
+15	3294276	0	a
+16	3613326	0	a
+17	4110511	0	a
+18	4728617	0	a
+19	5077710	0	a
+20	5110665	0	a
+21	511114	0	a
+22	5129960	0	a
+23	5521914	0	a
+24	5725029	0	a
+25	5750404	0	a
+26	5907193	0	a
+27	5933209	0	a
+28	5958001	0	a
+29	6097675	0	a
+30	6213023	0	a
+31	6285579	0	a
+32	652143	0	a
+33	6603997	0	a
+34	6820704	0	a
+35	690339	0	a
+36	710028	0	a
+37	7949720	0	a
+38	8471049	0	a
+39	8597726	0	a
+40	8641298	0	a
+41	8938859	0	a
+42	9086182	0	a
+43	9089721	0	a
+44	9172971	0	a
+45	9302599	0	a
+46	9418431	0	a
+47	9443378	0	a
+48	9467002	0	a
+49	9544566	0	a
+50	9757894	0	a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/hoge.html	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,37 @@
+<html>
+<head>
+<title>たいとる</title>
+<link rel="stylesheet" type="text/css" href="ほげ.css">
+</head>
+
+<body>
+<h1>てすと用</h1>
+<form method="POST" action="./mailtest.rb">
+<p>
+店舗コード<input type="textarea" name="store"><br>
+個人コード<input type="textarea" name="num">
+</p>
+<input type="submit" value="送信">
+<input type="reset" value="リセット">
+</form>
+<p>店舗コードは以下の対応表に基づいて半角数字で入力してください。</p>
+
+<table border=1>
+ <tr><th>店舗名</th><th>店舗番号</th></tr>
+ <tr><td>八月</td><td>1</td></tr>
+ <tr><td>食い道楽</td><td>2</td></tr>
+ <tr><td>翠宛</td><td>3</td></tr>
+ <tr><td>ルポットフー</td><td>4</td></tr>
+ <tr><td>RAVI</td><td>5</td></tr>
+ <tr><td>綾</td><td>6</td></tr>
+ <tr><td>井筒</td><td>7</td></tr>
+ <tr><td>MAR</td><td>8</td></tr>
+</table>
+
+<p>例:翠宛でほげ様→店舗コード:3 個人コード:ほげ</p>
+
+<p>再表示したい方は<a href="retry.html">こちら</a>へ</p>
+<address>c111126@g.koeki-u.ac.jp</address>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/hogege.dat	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,30 @@
+1	1111	0
+2	2222	0
+3	3333	0
+4	4444	0
+5	5555	0
+6	6666	0
+7	7777	0
+8	8888	0
+9	9999	0
+10	1010	0
+11	1111	0
+12	1212	0
+13	1313	0
+14	1414	0
+15	1515	0
+16	1616	0
+17	1717	0
+18	1818	0
+19	1919	0
+20	2020	0
+21	2121	0
+22	2222	0
+23	2323	0
+24	2424	0
+25	2525	0
+26	2626	0
+27	2727	0
+28	2828	0
+29	2929	0
+30	3030	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/mail.rb	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,67 @@
+#!/usr/bin/env ruby
+#coding: euc-jp
+
+require 'cgi'
+cgi = CGI.new(:accept_charset=>"EUC-JP")
+print("Content-type: text/html; charset=EUC-JP\n\n")
+
+store = cgi["store"].to_i
+pas1 = cgi["pas"]
+pas2 = cgi["pas2"]
+num = cgi["num"].to_i
+data = Hash.new
+#n = 0
+
+open("hoge.dat","r") do |hoge|
+  while line = hoge.gets
+    if /(\d+)\s+(\d+)\s+(\d+)\s+(\w+)/ =~ line
+      data[$1.to_i] = $2.to_i,$3.to_i,$4
+    end
+  end
+end
+
+if pas1 != pas2
+  #2個打ったパスワードが違う
+  printf(<<_EOS_,num,store)
+<html>
+<head>
+<title>ERROR</title>
+</head>
+<body>
+<h1>2回打って頂いたパスワードが違っています</h1>
+<p>確認してもう一度打ち直してください。</p>
+<form method="POST" action="./mail.rb">
+<p>
+<input type="hidden" name="num" value="%d">
+<input type="hidden" name="store" value="%d">
+パスワード<input type="textaria" name="pas"><br>
+パスワード2<input type="textaria" name="pas2"><br>
+</p>
+<input type="submit" value="再送信">
+</form>
+</body>
+</html>
+_EOS_
+else
+  data[num][2] = pas1
+  printf(<<_EOS_,data[num][0])
+<html>
+<head>
+<title>Complete</title>
+</head>
+<body>
+<h1>登録完了しました。</h1>
+<p>商工会議所へ行って以下のリンクをお見せください。</p>
+<p>パスワードは本人確認のため必要となるので、忘れないようにしてください。</p>
+<p><a href="%d.html">クーポン引換リンク</a></p>
+<p><a href="hoge.html">もどる</a></p>
+</body>
+</html>
+_EOS_
+end
+
+open("hoge.dat","w") do |write|
+  for x in ban do
+    write.printf("%d\t%d\t%d\t%s\n",x,data[x][0],data[x][1],data[x][2])
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/mailtest.rb	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,119 @@
+#!/usr/bin/env ruby
+# coding: euc-jp
+
+require 'nkf'
+require 'cgi'
+require 'kconv'
+require 'net/smtp'
+
+cgi = CGI.new(:accept_charset=>"EUC-JP")
+
+def sendmail(subject, body, sender, recipient)
+  mail = ''
+  # メールヘッダを作る
+  mail << 'To: ' + recipient + "\n"
+  mail << 'From: ' + sender + "\n"
+  mail << 'Subject: ' + "skipメール" + "\n"
+  mail << 'Date: ' + Time.now.strftime('%a, %d %b %Y %H:%M:%S %z') + "\n"
+  mail << "\n"
+  # メールの本文
+  mail << body
+  # 送信!
+  Net::SMTP.start('localhost',25){|smtp|
+    smtp.send_mail(mail, sender, recipient)
+  }
+end
+
+store = cgi["store"].to_i
+num = cgi["num"]
+
+data = Hash.new
+data.default = 0
+ban = Array.new
+n = 0
+
+name= ["","八月","食い道楽","翠宛","ルポットフー","RAVI","綾","井筒","MAR"]
+
+open("hoge.dat","r") do |hoge|
+  while line = hoge.gets
+    line = line.toeuc
+    if /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)/ =~ line
+      ban[n] = $1.to_i
+      data[$1.to_i] = $2.to_i,$3.to_i,$4
+      n += 1
+    end
+  end
+end
+
+s = 0
+while true
+  if data[ban[s]][1] == 0
+    break
+  end
+  s += 1
+end
+
+if num == "" || store < 1 || store > 8
+  #入力不備
+  text = "<html>\n
+<head>\n
+<title>Not find</title>\n
+</head>\n
+<body>\n
+<h1>入力されていない部分があるか、間違っている場合があります。</h1>\n
+<h1>正しく入力してやり直してください。</h1>\n
+<p>個人コードは入っていますか?</p>
+<p>店舗コードは1から8の間で選んでいますか?</p>
+<p><a href=\"hoge.html\">もどる</a></p>\n
+</body>\n
+</html>\n"
+elsif s >= 50
+  #もう50枚クーポンでました
+  text = "<html>\n
+<head>\n
+<title>Sorry</title>\n
+</head>\n
+<body>\n
+<h1>申し訳有りません。</h1>\n
+<p>もうクーポン50枚全て出てしまいました。<p>\n
+<p>またの機会に。<p>\n
+<p><a href=\"hoge.html\">もどる</a></p>\n
+</body>\n
+</html>\n"
+else
+  #使用済みにして処理します
+  data[ban[s]][1] = store
+  data[ban[s]][2] = num
+  output = ''
+  #output << "" + "\n"
+  output << "#{num}さんが#{name[store]}で#{s+1}番のクーポンを取得しました".gsub(/\n/, "\n ") + "\n"
+  
+  NKF.nkf('-j -m0', output)
+  
+  sendmail('skip mail', output,
+           'skip@koeki-u.ac.jp', 'c111126@g.koeki-u.ac.jp'){|body|
+    NKF.nkf('-e -m0', body)}
+  
+  text = "<html>\n
+<head>\n
+<title>Conglatulation</title>\n
+</head>\n
+<body>\n
+<h1>以下のQRコードを読み取るとクーポンが出てきます。</h1>\n
+<p><img src=\"/~c110128/mycgi/skip/web/coupon/image/#{data[ban[s]][0]}.png\" alt=\"クーポン表示QRコード\"></p>\n
+<p>個人コードとQRコードを読んで出てきたクーポンの番号を控えるようにしてください</p>\n
+<p>消してしまった際の再表示や実際に受け取る際に用います。</p>
+<p><a href=\"hoge.html\">もどる</a></p>\n
+</body>\n
+</html>\n"
+
+  open("hoge.dat","w") do |write|
+    for x in ban do
+      write.printf("%s\t%s\t%d\t%s\n",x,data[x][0],data[x][1],data[x][2])
+    end
+  end
+end
+
+cgi.out('type' => 'text/html', 'charset' => 'euc-jp') {
+  text
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/memo.txt	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,11 @@
+店舗番号と何らかのコードを受け取る
+正しい場合に50個あるうちのまだ使用可能な箇所を一つ使用不可にして
+正しいコードがとどいた旨をメールで送信。
+
+実際に交換する場所用の自分だけの秘密のパスワードを設定してもらい、
+そのパスワードを交換する場所で打ってもらうとクーポンがもらえるように。
+メールでパスワードを送る必要がある?
+
+もしも再送信が必要な場合は同じコードでまたできるように。
+
+をCGIで作るのです
Binary file nakamachi/qr1111.png has changed
Binary file nakamachi/qupon2.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/retry.html	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,21 @@
+<html>
+<head>
+<title>たいとる</title>
+</style>
+<link rel="stylesheet" type="text/css" href="ほげ.css">
+</head>
+
+<body>
+<h1>必要項目を入力して進むを押して下さい</h1>
+<form method="POST" action="./retry.rb">
+<p>
+店舗コード<input type="textaria" name="store"><br>
+個人コード<input type="textaria" name="num"><br>
+クーポン番号<input type="textaria" name="pon"><br>
+</p>
+<input type="submit" value="進む">
+</form>
+<p><a href="hoge.html">もどる</a></p>
+<address>c111126@g.koeki-u.ac.jp</address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/retry.rb	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,57 @@
+#!/usr/bin/env ruby
+#coding:euc-jp
+
+require 'cgi'
+require 'kconv'
+
+cgi = CGI.new(:accept_charset=>"EUC-JP")
+print "Content-type: text/html; charset=EUC-JP\n\n"
+
+pon = cgi["pon"].to_i
+store = cgi["store"].to_i
+num = cgi["num"].toeuc
+
+n = 0
+ban = Array.new
+data = Hash.new
+
+open("hoge.dat","r") do |hoge|
+  while line = hoge.gets
+    if /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)/ =~ line
+      ban[n] = $1.to_i
+      data[$1.to_i] = $2.to_i,$3.to_i,$4
+      n += 1
+    end
+  end
+end
+
+if data[ban[pon-1]][2].toeuc == num && data[ban[pon-1]][1] == store then
+  printf(<<_EOS_,data[ban[pon-1]][0])
+<html>
+<head>
+<title>OK</title>
+</head>
+<body>
+<h1>確認しました。</h1>
+<p>QRコードを再表示します</p>
+<p><img src=\"qr%d.png\" alt=\"クーポン表示QRコード\"></p>
+<p><a href=\"retry.html\">もどる</a></p>
+</body>
+</html>
+_EOS_
+  
+else
+#print(<<_EOS_)
+puts"<html>
+<head>
+<title>Not found</title>
+</head>
+<body>
+<h1>入力が正しくありません</h1>
+<p>正しく入力してやり直してください</p>
+<p><a href=\"retry.html\">もどる</a></p>
+</body>
+</html>
+"  
+
+end
Binary file nakamachi/syobon.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nakamachi/test.rb	Thu Feb 06 19:59:04 2014 +0900
@@ -0,0 +1,73 @@
+#!/usr/bin/env ruby
+#coding: euc-jp
+
+require 'cgi'
+cgi = CGI.new(:accept_charset=>"EUC-JP")
+print("Content-type: text/html; charset=EUC-JP\n\n")
+
+store = cgi["store"].to_i
+num = cgi["num"]
+
+data = Hash.new
+ban = Array.new
+n = 0
+
+name= ["店舗1","店舗2","店舗3","店舗4","店舗5","店舗6","店舗7","店舗8"]
+
+open("hoge.dat","r") do |hoge|
+  while line = hoge.gets
+    if /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)/ =~ line
+      ban[n] = $1.to_i
+      data[$1.to_i] = $2.to_i,$3.to_i,$4
+      n += 1
+    end
+  end
+end
+
+s = 0
+while true
+  if data[ban[s]][1] == 0
+    break
+  end
+  s += 1
+end
+
+if num == "" || store < 1 || store > 8
+  #入力不備
+printf(<<_EOS_)
+<html>
+<head>
+<title>Not find</title>
+</head>
+<body>
+<h1>入力に誤りがあります</h1>
+<p>入力されていない部分があるか、間違っている場合があります。</p>
+<p>正しく入力してやり直してください。</p>
+<p><a href="hoge.html">もどる</a></p>
+</body>
+</html>
+_EOS_
+else
+  #使用済みにして処理します
+  data[ban[s]][1] = store
+  data[ban[s]][2] = num
+  printf(<<_EOS_,data[ban[s]][0])
+<html>
+<head>
+<title>Conglatulation</title>
+</head>
+<body>
+<h1>以下のQRコードを読み取るとクーポンが出てきます。</h1>
+<p><img src="qr%d.png" alt="クーポン表示QRコード"></p>
+<p><a href="hoge.html">もどる</a></p>
+</body>
+</html>
+_EOS_
+
+  open("hoge.dat","w") do |write|
+    for x in ban do
+      write.printf("%d\t%s\t%d\t%s\n",x,data[x][0],data[x][1],data[x][2])
+    end
+  end
+end
+

yatex.org