Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

nikkiプログラム

コミット
  • Loading branch information...
commit 1f21fc22d54e65cff152389840fbdce71a86f2fa 1 parent e5f52a4
@nontan nontan authored
View
26 401.html
@@ -0,0 +1,26 @@
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+<title>401error - nikki</title>
+</head>
+<center>
+<img src="images/401.gif" />
+<br>
+<a href="index.php">もどる</a>
+</div>
+</center>
+</body>
+</html>
View
26 403.html
@@ -0,0 +1,26 @@
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+<title>404 error - nikki</title>
+</head>
+<center>
+<img src="images/403.gif" />
+<br>
+<a href="index.php">もどる</a>
+</div>
+</center>
+</body>
+</html>
View
26 404.html
@@ -0,0 +1,26 @@
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+<title>404 error - nikki</title>
+</head>
+<center>
+<img src="images/404.gif" />
+<br>
+<a href="index.cgi">もどる</a>
+</div>
+</center>
+</body>
+</html>
View
26 500.html
@@ -0,0 +1,26 @@
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+<title>404 error - nikki</title>
+</head>
+<center>
+<img src="images/500.gif" />
+<br>
+<a href="index.cgi">もどる</a>
+</div>
+</center>
+</body>
+</html>
View
58 admin.cgi
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+use utf8;
+print "Content-type: text/html\n\n";
+print << "END_OF_HTML";
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+
+</head>
+<html>
+<body>
+<div id="contents">
+
+<div id ="wrapper">
+<img src="images/admin.gif" /><br>
+<img src="images/line.gif" /><br>
+
+<div id="information">
+
+登録情報<br>
+ログイン名:<br>
+URL:<br>
+</div>
+日記投稿<br>
+<br>
+<form action="post2.cgi" method="post">
+<input type="hidden" name="login_id" value="1">
+題名<br>
+<input type="text" name="entry_title" value="$entry_title" size="20"></td>
+記事<br>
+<textarea name="entry_text" value="$entry_text" id="entry_text_form" /></textarea>
+<br>
+<input type="submit" value="投稿">
+END_OF_HTML
+
+
+print << "END_OF_HTML";
+</form>
+</div>
+
+</div>
+</body>
+</html>
+END_OF_HTML
+exit;
View
253 common.pl
@@ -0,0 +1,253 @@
+package Common;
+use DBI;
+
+# ★これは一体何だろう。
+
+# ------------------------------------------------------------------
+# 関数 : ConnectDB
+# 概要 : データベース接続処理
+# 引数 : なし
+# 戻値 : データベースコネクション
+# ------------------------------------------------------------------
+
+sub ConnectDB
+{
+my $dbn = "******";
+my $user = "******";
+my $pswd = "*******";
+
+# sub ConnectDBっていうのは決まっているもの?
+# パスワードが平文?だけど、いいのかな。
+
+# データベース接続
+my $conn = DBI->connect('DBI:mysql:' . $dbn . ':mysql577.phy.lolipop.jp', $user, $pswd);
+if(!$conn)
+{
+DspMsg("データベースの接続に失敗しました");
+exit;
+}
+return $conn;
+}
+
+# returnってなんだ…
+
+#------------------------------------------------------------------
+# 関数 : CloseDB
+# 概要 : データベース切断
+# 引数 : データベースコネクション
+# 戻値 : なし
+#------------------------------------------------------------------
+sub CloseDB()
+{
+my($conn) = @_[0];
+$conn->disconnect;
+}
+
+# 自分では書けなさそう
+
+#------------------------------------------------------------------
+# 関数 : CheckCookie
+# 説明 : クッキーによるログイン認証
+# 引数 : データベースコネクション
+# 戻値 : 1:認証成功、それ以外:認証失敗(エラー画面を表示して終了)
+#------------------------------------------------------------------
+sub CheckCookie
+{
+my($conn) = @_[0];
+
+# クッキー取得
+my %cook = GetCookie();
+return CheckLogin($conn, $cook{"login_name"}, $cook{"password"});
+}
+
+#------------------------------------------------------------------
+# 関数 : CheckLogin
+# 説明 : ログイン認証
+# 引数 : データベースコネクション、ログイン名、パスワード
+# 戻値 : 1:認証成功、それ以外:認証失敗(エラー画面を表示して終了)
+#------------------------------------------------------------------
+sub CheckLogin
+{
+my($conn) = @_[0];
+my $login_name = @_[1];
+my $password = @_[2];
+
+# データベース読み込み
+my $sql = "
+select
+count(*) as cnt,
+login_id
+from
+login_user
+where
+login_name = " . EscapeSQL($login_name) . "
+and
+password = " . EscapeSQL($password) . "
+";
+my $select = $conn->prepare($sql);
+my $rec = $select->execute;
+if(!$rec)
+{
+DspMsg("データベースエラー : " . $sql);
+exit;
+}
+
+my @data = $select->fetchrow;
+if ($data[0] > 0) {
+return $data[1];
+}
+
+DspMsg("ログインに失敗しました。<br>\n<br>\n<br>\n<a href=\"index.cgi\">ログイン画面へ</a>");
+
+exit;
+}
+
+#------------------------------------------------------------------
+# 関数 : DspMsg
+# 概要 : メッセージ表示
+# 引数 : メッセージ文字列
+# 戻値 : なし
+#------------------------------------------------------------------
+sub DspMsg
+{
+my($msg) = @_[0];
+
+print << "END_OF_HTML";
+Content-type: text/html;
+
+<HTML>
+<HEAD>
+<TITLE>$title</TITLE>
+</HEAD>
+<BODY>
+<P><FONT style="font-size=9pt">$msg</FONT></P>
+</BODY>
+</HTML>
+END_OF_HTML
+
+return;
+}
+
+#------------------------------------------------------------------
+# 関数 : GetPara
+# 概要 : パラメータ取得
+# 引数 : なし
+# 戻値 : パラメータハッシュ配列
+#------------------------------------------------------------------
+sub GetPara
+{
+my $self = shift;
+my($query_string); #// エンコードされたパラメータ全体
+my(@a, $a); #// エンコードされたパラメータを分解したもの
+my($name, $value); #// デコードされたパラメータ
+my(%in);
+
+#// パラメータの読み込み
+if ($ENV{"REQUEST_METHOD"} eq "POST")
+{
+#// POSTなら標準入力から読み込む
+read(STDIN, $query_string, $ENV{"CONTENT_LENGTH"});
+}
+else
+{
+#// GETなら環境変数から読み込む
+$query_string = $ENV{"QUERY_STRING"};
+}
+
+#// 「変数名1=値1&変数名2=値2」の形式をアンパサンド(&)で分解
+@a = split(/&/, $query_string);
+
+# パラメータの取得
+foreach $a(@a)
+{
+#// =(イコール)で分解
+($name, $value) = split(/=/, $a);
+#// + や %8A などのデコード
+$value =~ tr/+/ /;
+$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex( $1 ))/eg;
+#// 後で使用するため,$in{'パラメータ名'} に代入しておく
+$in{$name} = $value;
+}
+
+return %in;
+}
+
+#------------------------------------------------------------------
+# 関数 : SetCookie
+# 説明 : クッキー設定
+# 引数 : 保存する文字列
+# : クッキーの有効時間(秒)
+# 戻値 : なし
+#------------------------------------------------------------------
+sub SetCookie
+{
+my($data, %data, $str_cookie, $cookie_time);
+my($sec, $min, $hour, $mday, $mon, $year, $wday);
+my(@mons, @week, $dt);
+
+$str_cookie = @_[0];
+$cookie_time = @_[1];
+
+#// 文字列のエスケープ
+$str_cookie =~ s/\,/%2C/g;
+$str_cookie =~ s/;//g;
+$str_cookie =~ s/([^\w\=\& ])/'%' . unpack("H2", $1)/eg;
+
+#// 有効期限設定
+($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time + $cookie_time);
+@mons = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
+@week = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
+$dt = sprintf("%s\, %02d-%s-%04d %02d:%02d:%02d GMT", $week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
+
+#// ヘッダ出力
+print "Set-Cookie: $str_cookie expires=$dt;\n";
+}
+
+#------------------------------------------------------------------
+# 関数 : GetCookie
+# 概要 : クッキー取得
+# 引数 : なし
+# 戻値 : クッキーの値
+#------------------------------------------------------------------
+sub GetCookie
+{
+my($cookie) = $ENV{'HTTP_COOKIE'};
+my($key, $val, %data);
+my(@cookie);
+
+#// クッキー取得
+@cookie = split(/ /, $cookie);
+foreach(@cookie)
+{
+($key, $val) = split(/=/);
+
+#// 文字列をデコードする
+$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
+$val =~ s/%2C/\,/g;
+$val =~ s/%20/ /g;
+$data{$key} = $val;
+}
+
+#// 戻り値セット
+return %data;
+}
+
+#------------------------------------------------------------------
+# 関数 : EscapeSQL
+# 概要 : SQLエスケープ処理
+# 引数 : 変換する文字列
+# 戻値 : エスケープ処理後の文字列
+#------------------------------------------------------------------
+sub EscapeSQL
+{
+my $str = @_[0];
+if ($str eq '')
+{
+return "null";
+}
+
+$str =~ s/'/''/g;
+return "'" . $str . "'";
+}
+
+1;
View
53 entry_post.cgi
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+
+require './common.pl';
+use strict;
+use DBI;
+
+# データベース接続
+my $conn = Common::ConnectDB();
+
+# 日記書き込み
+$sql = "
+insert into entry (
+entry_title,
+entry_text,
+) values (
+" . Common::EscapeSQL($login_title) . ",
+" . Common::EscapeSQL($text) . ",
+)";
+}
+
+# データベース書き込み
+$select = $conn->prepare($sql);
+$rec = $select->execute;
+if(!$rec)
+{
+Common::DspMsg("データベースエラー : " . $sql);
+exit;
+}
+
+# トランザクション終了
+$select = $conn->prepare("commit");
+$rec = $select->execute;
+if(!$rec)
+{
+Common::DspMsg("コミット処理に失敗しました");
+exit;
+}
+
+# データベースクローズ
+Common::CloseDB($conn);
+
+print "Content-type: text/html\n\n";
+
+# ユーザ一覧画面へ遷移させる
+print << "END_OF_HTML";
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url=admin.cgi">
+</head>
+</html>
+END_OF_HTML
+
+exit;
View
BIN  images/401.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/403.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/404.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/500.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/admin.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/line.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/logo.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/signup.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
59 index.cgi
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+use utf8;
+print "Content-type: text/html\n\n";
+print << "END_OF_HTML";
+<html>
+<body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+
+<!--viewportの指定-->
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
+<!--/viewportの指定-->
+<!--メディアクエリでPC用・スマホ用CSSを振り分け-->
+<link media="only screen and (min-device-width:481px)" href="style.css" type="text/css" rel="stylesheet" />
+<link media="only screen and (max-device-width:480px)" href="istyle.css" type="text/css" rel="stylesheet" />
+<!--/メディアクエリでPC用・スマホ用CSSを振り分け-->
+
+<link href="style.css" type="text/css" rel="stylesheet" />
+
+</head>
+<html>
+<body>
+<div id="contents">
+
+<div id ="wrapper">
+
+<img src="images/logo.gif" />
+
+<div id="login_form">
+
+<img src="images/line.gif" /><br><br>
+
+<form action="login.cgi" method="post">
+ログイン名 <input type="text" name="login_name"><br>
+パスワード <input type="password" name="password"><br>
+<br>
+<input type="submit" value="ログイン" class="form_button">
+</form>
+
+</div>
+
+<img src="images/line.gif" /><br><br>
+<a href="signup.cgi">新規登録はこちら</a>
+END_OF_HTML
+
+
+print << "END_OF_HTML";
+</form>
+
+</div>
+
+</div>
+
+</body>
+</html>
+END_OF_HTML
+exit;
Please sign in to comment.
Something went wrong with that request. Please try again.