Compare commits

...
This repository has been archived on 2024-08-19. You can view files and clone it, but cannot push or open issues or pull requests.

8 Commits

Author SHA1 Message Date
harukin
059ee6d792 test 2019-06-14 16:29:15 +09:00
harukin
51bdae7590 move position 2019-06-14 16:27:14 +09:00
harukin
68b692c233 continue? 2019-06-14 16:24:45 +09:00
harukin
2c80a07457 continue. 2019-06-14 16:19:03 +09:00
harukin
4e4d7fcc11 test事案 2019-06-14 16:17:08 +09:00
harukin
3ca637bec2 edit path 2019-06-14 16:15:16 +09:00
harukin
ce45eab3cc remove tpl edit 2019-06-14 16:13:14 +09:00
harukin
b9e77d6a49 recaptha test 2019-06-14 16:11:12 +09:00
32 changed files with 1033 additions and 0 deletions

View File

@ -0,0 +1,42 @@
<?php
$auth_sister_ver = 'Ver.0.3.5.alpha';
/*
===========================================================
■PHP用認証モジュール 
〝妹認証 Auth-sister〟
http://www.okanesuita.org/auth_sister/
■著作権情報
Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
■ライセンス
・MIT License (http://www.opensource.org/licenses/mit-license.php)
1.本スクリプトは無償であり、かつ誰でも無制限に使うことができる。
但し、著作権表示および本許諾表示を、すべての複製または重要な部分に記載しなければならない。
2.開発者は、本スクリプトに関して生じる事の一切の責任を負わない。
===========================================================
*/
/* 一般設定 */
$auth_sister_load = 'reiya'; //認証に使う妹パッケージ
$auth_sister_mes_a = '妹「'; //メッセージ先頭に付加する文字列
$auth_sister_mes_b = '」'; //メッセージ最後に付加する文字列
/* フォーム送信設定 */
$auth_sister_method = 0;//メソッド(0=post, 1=get)GETだとエラーになる可能性がある
//$auth_sister_input = 2;
/* セッション設定(etc.php用) */
$ses_name = 'auth_sister_alpha';
//$ses_dir = '';
/* セキュリティ関連設定 */
$auth_sister_len_min = 2; //最小文字数(回答文)
$auth_sister_len_max = 10; //最大文字数(回答文)
$auth_sister_outlen = "$auth_sister_len_min$auth_sister_len_max文字でいれてー";//文字数範囲外のエラー文
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
?>

View File

@ -0,0 +1,217 @@
<?php
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
//妹★関数-----------------------------------------------------------
//セッション初期化
function auth_session_start(){
require('auth_sister/config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
}
//妹ヘッダを挿入します
function auth_sister_header(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
echo $auth_sister_header;
}
//妹認証の初期化
function auth_sister_load(){
require('auth_sister/config.inc.php');
$loc = 'auth_sister/'.$auth_sister_load.'/words.txt';//辞書ファイル読み込み
//ファイル存在する場合は続行
if(file_exists($loc)){
$lines = file($loc, FILE_IGNORE_NEW_LINES);
$cnt = count($lines); //行数カウント
$cnt--;
$point = mt_rand(0, $cnt); //乱数発生
//質問文 正解メッセージ 不正解メッセージ 正解文 正解文の処理モード 逆処理スイッチ
//↓回答文の処理モード
//未指定・0:入力されたすべての文字列を含む
//1:正規表現による
//2:完全一致
list(
$_SESSION['auth_sister_question'],//質問文
$_SESSION['auth_sister_res_true'],//正解メッセージ
$_SESSION['auth_sister_res_false'],//不正解メッセージ
$_SESSION['auth_sister_answer'],//正解文
$_SESSION['auth_sister_anmode'],//正解文の処理モード
$_SESSION['auth_sister_rebirth']//逆処理スイッチ(0=OFF/1=ON)
)=explode("\t",$lines[$point]);//各変数に読み出し
$_SESSION['auth_sister_ticket'] = true; //画像読込権
$_SESSION['auth_sister_authID'] = uniqid(rand()); //AuthID発行
//以下マクロ処理だよ!
//乱数発生だよ!
$ran = rand(1,9999);
//乱数を平仮名にしちゃうよ!
$ranran = $ran;
$ranran = str_replace("0","れい" ,$ranran);
$ranran = str_replace("1","いち" ,$ranran);
$ranran = str_replace("2","" ,$ranran);
$ranran = str_replace("3","さん" ,$ranran);
$ranran = str_replace("4","よん" ,$ranran);
$ranran = str_replace("5","" ,$ranran);
$ranran = str_replace("6","ろく" ,$ranran);
$ranran = str_replace("7","なな" ,$ranran);
$ranran = str_replace("8","はち" ,$ranran);
$ranran = str_replace("9","きゅう" ,$ranran);
//乱数を漢字にしちゃおうかな!
$kanran = $ran;
$kanran = str_replace("0","" ,$kanran);
$kanran = str_replace("1","" ,$kanran);
$kanran = str_replace("2","" ,$kanran);
$kanran = str_replace("3","" ,$kanran);
$kanran = str_replace("4","" ,$kanran);
$kanran = str_replace("5","" ,$kanran);
$kanran = str_replace("6","" ,$kanran);
$kanran = str_replace("7","" ,$kanran);
$kanran = str_replace("8","" ,$kanran);
$kanran = str_replace("9","" ,$kanran);
//こんどは画数だぞ!
$kankaku = $ran;
$kankaku = str_replace("0","0" ,$kankaku);
$kankaku = str_replace("1","" ,$kankaku);
$kankaku = str_replace("2","" ,$kankaku);
$kankaku = str_replace("3","" ,$kankaku);
$kankaku = str_replace("4","" ,$kankaku);
$kankaku = str_replace("5","" ,$kankaku);
$kankaku = str_replace("6","" ,$kankaku);
$kankaku = str_replace("7","" ,$kankaku);
$kankaku = str_replace("8","" ,$kankaku);
$kankaku = str_replace("9","" ,$kankaku);
//[rand]
$_SESSION['auth_sister_question'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_answer']);
//[rand_kana]
$_SESSION['auth_sister_question'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_answer']);
//[rand_kan]
$_SESSION['auth_sister_question'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_answer']);
//[rand_kankaku]
$_SESSION['auth_sister_question'] = str_replace("[rand_kankaku]", $kankaku, $_SESSION['auth_sister_question']);
}
}
//妹認証の表示セット 先に初期化しておくこと
function auth_sister_insert(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
$output = str_replace("[authID]", $_SESSION['auth_sister_authID'], $auth_sister_html);//AuthID挿入
echo $output;
}
//auth_sister_auth()は認証成功の場合true、失敗の場合はfalseを返します。
function auth_sister_auth(){
require('auth_sister/config.inc.php');
$auth = false;
$select = false;
$authid= $_SESSION['auth_sister_authID'];
//---メソッド
switch($auth_sister_method):
case 0 :
$select = $_POST[$authid];
break;
case 1 :
$select = $_GET[$authid];
break;
endswitch;
if($select){
$select = mb_convert_encoding($select,"UTF-8","auto");//入力されたもの
$answer = mb_convert_encoding($_SESSION['auth_sister_answer'],"UTF-8","auto");//正解文
$mode = $_SESSION['auth_sister_anmode'];//処理モード
$len = mb_strlen ( $select , "UTF-8");//入力文の文字数
//文字数制限
if(($len>=$auth_sister_len_min)&&($len<=$auth_sister_len_max)){
//処理モード
switch($mode):
case 0://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
break;
case 1://正規表現による
if(mb_ereg($answer,$select)) { $auth = true; }
break;
case 2://完全一致
if($answer==$select) { $auth = true; }
break;
default://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
endswitch;
//逆処理
if($_SESSION['auth_sister_rebirth']==1){
if($auth) { $auth = false; }
else { $auth = true; }
}
//認証結果文
if($auth){
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_true'];
} else {
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_false'];
}
//文字数エラー
} else {
$_SESSION['auth_sister_res'] = $auth_sister_outlen;
$auth = false;
}
}
return($auth);
}
//認証成功・失敗メッセージを返します
function auth_sister_res(){
require('auth_sister/config.inc.php');
$res = $auth_sister_mes_a.$_SESSION['auth_sister_res'].$auth_sister_mes_b;
return($res);
}
//イメージ出力-----------------------------------------------------------
$mode = $_GET['mode'];
switch($mode):
case "img":
require('config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
if($_SESSION['auth_sister_ticket']){
require($auth_sister_load.'/config.inc.php');
putenv('GDFONTPATH=' . realpath($auth_sister_fpath));
header("Content-type: image/png");
$text=$_SESSION['auth_sister_question'];
$text=mb_convert_encoding($text, "UTF-8", "auto");
$img = imagecreatefrompng($auth_sister_load.'/'.$auth_sister_image);
$color = imagecolorallocate($img,0x11,0x11,0x11); //文字色
imagettftext($img, $auth_sister_fsize, 0, $auth_sister_fx, $auth_sister_fy, $color, $auth_sister_font, $text );
//画像形式
if($_GET['type']==".png"){
imagepng($img); }
/*
if($_GET['type']==".jpg"){
imagejpeg($img,NULL,100)
}
*/
imagedestroy($img);
$_SESSION['auth_sister_ticket'] = false;
}else{
echo "Forbidden";
}
break;
endswitch;
?>

View File

@ -0,0 +1,2 @@
mbstring.internal_encoding = UTF-8;
mbstring.http_output = UTF-8;

View File

@ -0,0 +1,3 @@
<Files ~ ".(htaccess|htpasswd|txt|php)$">
deny from all
</Files>

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

View File

@ -0,0 +1,27 @@
<?php
$auth_sister_image = 'reiya.png';
$auth_sister_fpath = './reiya';
$auth_sister_font = 'FONT_HERE';
$auth_sister_fsize = 10;
$auth_sister_fx = 100;
$auth_sister_fy = 50;
//妹ヘッダ
$auth_sister_header = '<link rel="stylesheet" type="text/css" href="auth_sister/reiya/style.css" />';
//表示部分
$auth_sister_html = '<div class="reiya">
<div class="reiyareiya">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="[authID]" type="text" class="reiya_input" id="[authID]" /></td>
<td><input name="button" type="submit" class="reiya_submit" id="button" value="送信" /></td>
</tr>
</table>
</div>
</div>';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,38 @@
@charset "utf-8";
/* CSS Document */
.reiya {
background-image: url(../core.php?mode=img&type=.png);
background-repeat: no-repeat;
height: 150px;
width: 400px;
}
.reiyareiya{
position:relative;
top:95px;
left:90px;
}
.reiya_input {
padding:0px;
margin:0px;
background-image: url(bg1.png);
background-repeat:repeat-x;
height: 25px;
width: 230px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
font-weight:bold;
}
.reiya_submit {
padding:0px;
margin:0px;
background-image: url(bg2.png);
background-repeat:repeat-x;
height: 27px;
width: 50px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
color:#fff;
}

View File

@ -0,0 +1,8 @@
れいにゃ大好きって言って(完全一致・新機能) れいにゃもおにーちゃんのこと大好き♪ (怒) れいにゃ大好き 2
おにーちゃん私の煎餅たべたでしょー(部分一致) いいよ、別に♪ 嘘つき! ごめんよごめんねすまんかった悪かったすまなかった俺のプリン食べただろれいにゃ大好き
れいにゃ大好きって言わないで(完全不一致・新) 認証成功だよ 言わないでっていったでしょ れいにゃ大好き 2 1
[rand]を漢字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand_kan]を数字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand] 2
[rand_kana]を漢字にして(乱数+かな乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand]を二回言え!(乱数マクロ・新) よくできたねっ ばーか! [rand][rand] 2
それぞれ「[rand_kankaku]」の画数をかけ0は0。(新) すごいすごーい! ぶっぶー [rand] 2

View File

@ -0,0 +1,42 @@
<?php
$auth_sister_ver = 'Ver.0.3.5.alpha';
/*
===========================================================
■PHP用認証モジュール 
〝妹認証 Auth-sister〟
http://www.okanesuita.org/auth_sister/
■著作権情報
Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
■ライセンス
・MIT License (http://www.opensource.org/licenses/mit-license.php)
1.本スクリプトは無償であり、かつ誰でも無制限に使うことができる。
但し、著作権表示および本許諾表示を、すべての複製または重要な部分に記載しなければならない。
2.開発者は、本スクリプトに関して生じる事の一切の責任を負わない。
===========================================================
*/
/* 一般設定 */
$auth_sister_load = 'reiya'; //認証に使う妹パッケージ
$auth_sister_mes_a = '妹「'; //メッセージ先頭に付加する文字列
$auth_sister_mes_b = '」'; //メッセージ最後に付加する文字列
/* フォーム送信設定 */
$auth_sister_method = 0;//メソッド(0=post, 1=get)GETだとエラーになる可能性がある
//$auth_sister_input = 2;
/* セッション設定(etc.php用) */
$ses_name = 'auth_sister_alpha';
//$ses_dir = '';
/* セキュリティ関連設定 */
$auth_sister_len_min = 2; //最小文字数(回答文)
$auth_sister_len_max = 10; //最大文字数(回答文)
$auth_sister_outlen = "$auth_sister_len_min$auth_sister_len_max文字でいれてー";//文字数範囲外のエラー文
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
?>

View File

@ -0,0 +1,217 @@
<?php
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
//妹★関数-----------------------------------------------------------
//セッション初期化
function auth_session_start(){
require('auth_sister/config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
}
//妹ヘッダを挿入します
function auth_sister_header(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
echo $auth_sister_header;
}
//妹認証の初期化
function auth_sister_load(){
require('auth_sister/config.inc.php');
$loc = 'auth_sister/'.$auth_sister_load.'/words.txt';//辞書ファイル読み込み
//ファイル存在する場合は続行
if(file_exists($loc)){
$lines = file($loc, FILE_IGNORE_NEW_LINES);
$cnt = count($lines); //行数カウント
$cnt--;
$point = mt_rand(0, $cnt); //乱数発生
//質問文 正解メッセージ 不正解メッセージ 正解文 正解文の処理モード 逆処理スイッチ
//↓回答文の処理モード
//未指定・0:入力されたすべての文字列を含む
//1:正規表現による
//2:完全一致
list(
$_SESSION['auth_sister_question'],//質問文
$_SESSION['auth_sister_res_true'],//正解メッセージ
$_SESSION['auth_sister_res_false'],//不正解メッセージ
$_SESSION['auth_sister_answer'],//正解文
$_SESSION['auth_sister_anmode'],//正解文の処理モード
$_SESSION['auth_sister_rebirth']//逆処理スイッチ(0=OFF/1=ON)
)=explode("\t",$lines[$point]);//各変数に読み出し
$_SESSION['auth_sister_ticket'] = true; //画像読込権
$_SESSION['auth_sister_authID'] = uniqid(rand()); //AuthID発行
//以下マクロ処理だよ!
//乱数発生だよ!
$ran = rand(1,9999);
//乱数を平仮名にしちゃうよ!
$ranran = $ran;
$ranran = str_replace("0","れい" ,$ranran);
$ranran = str_replace("1","いち" ,$ranran);
$ranran = str_replace("2","" ,$ranran);
$ranran = str_replace("3","さん" ,$ranran);
$ranran = str_replace("4","よん" ,$ranran);
$ranran = str_replace("5","" ,$ranran);
$ranran = str_replace("6","ろく" ,$ranran);
$ranran = str_replace("7","なな" ,$ranran);
$ranran = str_replace("8","はち" ,$ranran);
$ranran = str_replace("9","きゅう" ,$ranran);
//乱数を漢字にしちゃおうかな!
$kanran = $ran;
$kanran = str_replace("0","" ,$kanran);
$kanran = str_replace("1","" ,$kanran);
$kanran = str_replace("2","" ,$kanran);
$kanran = str_replace("3","" ,$kanran);
$kanran = str_replace("4","" ,$kanran);
$kanran = str_replace("5","" ,$kanran);
$kanran = str_replace("6","" ,$kanran);
$kanran = str_replace("7","" ,$kanran);
$kanran = str_replace("8","" ,$kanran);
$kanran = str_replace("9","" ,$kanran);
//こんどは画数だぞ!
$kankaku = $ran;
$kankaku = str_replace("0","0" ,$kankaku);
$kankaku = str_replace("1","" ,$kankaku);
$kankaku = str_replace("2","" ,$kankaku);
$kankaku = str_replace("3","" ,$kankaku);
$kankaku = str_replace("4","" ,$kankaku);
$kankaku = str_replace("5","" ,$kankaku);
$kankaku = str_replace("6","" ,$kankaku);
$kankaku = str_replace("7","" ,$kankaku);
$kankaku = str_replace("8","" ,$kankaku);
$kankaku = str_replace("9","" ,$kankaku);
//[rand]
$_SESSION['auth_sister_question'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_answer']);
//[rand_kana]
$_SESSION['auth_sister_question'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_answer']);
//[rand_kan]
$_SESSION['auth_sister_question'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_answer']);
//[rand_kankaku]
$_SESSION['auth_sister_question'] = str_replace("[rand_kankaku]", $kankaku, $_SESSION['auth_sister_question']);
}
}
//妹認証の表示セット 先に初期化しておくこと
function auth_sister_insert(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
$output = str_replace("[authID]", $_SESSION['auth_sister_authID'], $auth_sister_html);//AuthID挿入
echo $output;
}
//auth_sister_auth()は認証成功の場合true、失敗の場合はfalseを返します。
function auth_sister_auth(){
require('auth_sister/config.inc.php');
$auth = false;
$select = false;
$authid= $_SESSION['auth_sister_authID'];
//---メソッド
switch($auth_sister_method):
case 0 :
$select = $_POST[$authid];
break;
case 1 :
$select = $_GET[$authid];
break;
endswitch;
if($select){
$select = mb_convert_encoding($select,"UTF-8","auto");//入力されたもの
$answer = mb_convert_encoding($_SESSION['auth_sister_answer'],"UTF-8","auto");//正解文
$mode = $_SESSION['auth_sister_anmode'];//処理モード
$len = mb_strlen ( $select , "UTF-8");//入力文の文字数
//文字数制限
if(($len>=$auth_sister_len_min)&&($len<=$auth_sister_len_max)){
//処理モード
switch($mode):
case 0://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
break;
case 1://正規表現による
if(mb_ereg($answer,$select)) { $auth = true; }
break;
case 2://完全一致
if($answer==$select) { $auth = true; }
break;
default://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
endswitch;
//逆処理
if($_SESSION['auth_sister_rebirth']==1){
if($auth) { $auth = false; }
else { $auth = true; }
}
//認証結果文
if($auth){
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_true'];
} else {
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_false'];
}
//文字数エラー
} else {
$_SESSION['auth_sister_res'] = $auth_sister_outlen;
$auth = false;
}
}
return($auth);
}
//認証成功・失敗メッセージを返します
function auth_sister_res(){
require('auth_sister/config.inc.php');
$res = $auth_sister_mes_a.$_SESSION['auth_sister_res'].$auth_sister_mes_b;
return($res);
}
//イメージ出力-----------------------------------------------------------
$mode = $_GET['mode'];
switch($mode):
case "img":
require('config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
if($_SESSION['auth_sister_ticket']){
require($auth_sister_load.'/config.inc.php');
putenv('GDFONTPATH=' . realpath($auth_sister_fpath));
header("Content-type: image/png");
$text=$_SESSION['auth_sister_question'];
$text=mb_convert_encoding($text, "UTF-8", "auto");
$img = imagecreatefrompng($auth_sister_load.'/'.$auth_sister_image);
$color = imagecolorallocate($img,0x11,0x11,0x11); //文字色
imagettftext($img, $auth_sister_fsize, 0, $auth_sister_fx, $auth_sister_fy, $color, $auth_sister_font, $text );
//画像形式
if($_GET['type']==".png"){
imagepng($img); }
/*
if($_GET['type']==".jpg"){
imagejpeg($img,NULL,100)
}
*/
imagedestroy($img);
$_SESSION['auth_sister_ticket'] = false;
}else{
echo "Forbidden";
}
break;
endswitch;
?>

View File

@ -0,0 +1,2 @@
mbstring.internal_encoding = UTF-8;
mbstring.http_output = UTF-8;

View File

@ -0,0 +1,3 @@
<Files ~ ".(htaccess|htpasswd|txt|php)$">
deny from all
</Files>

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

View File

@ -0,0 +1,27 @@
<?php
$auth_sister_image = 'reiya.png';
$auth_sister_fpath = './reiya';
$auth_sister_font = 'FONT_HERE';
$auth_sister_fsize = 10;
$auth_sister_fx = 100;
$auth_sister_fy = 50;
//妹ヘッダ
$auth_sister_header = '<link rel="stylesheet" type="text/css" href="auth_sister/reiya/style.css" />';
//表示部分
$auth_sister_html = '<div class="reiya">
<div class="reiyareiya">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="[authID]" type="text" class="reiya_input" id="[authID]" /></td>
<td><input name="button" type="submit" class="reiya_submit" id="button" value="送信" /></td>
</tr>
</table>
</div>
</div>';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,38 @@
@charset "utf-8";
/* CSS Document */
.reiya {
background-image: url(../core.php?mode=img&type=.png);
background-repeat: no-repeat;
height: 150px;
width: 400px;
}
.reiyareiya{
position:relative;
top:95px;
left:90px;
}
.reiya_input {
padding:0px;
margin:0px;
background-image: url(bg1.png);
background-repeat:repeat-x;
height: 25px;
width: 230px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
font-weight:bold;
}
.reiya_submit {
padding:0px;
margin:0px;
background-image: url(bg2.png);
background-repeat:repeat-x;
height: 27px;
width: 50px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
color:#fff;
}

View File

@ -0,0 +1,8 @@
れいにゃ大好きって言って(完全一致・新機能) れいにゃもおにーちゃんのこと大好き♪ (怒) れいにゃ大好き 2
おにーちゃん私の煎餅たべたでしょー(部分一致) いいよ、別に♪ 嘘つき! ごめんよごめんねすまんかった悪かったすまなかった俺のプリン食べただろれいにゃ大好き
れいにゃ大好きって言わないで(完全不一致・新) 認証成功だよ 言わないでっていったでしょ れいにゃ大好き 2 1
[rand]を漢字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand_kan]を数字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand] 2
[rand_kana]を漢字にして(乱数+かな乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand]を二回言え!(乱数マクロ・新) よくできたねっ ばーか! [rand][rand] 2
それぞれ「[rand_kankaku]」の画数をかけ0は0。(新) すごいすごーい! ぶっぶー [rand] 2

View File

@ -0,0 +1,42 @@
<?php
$auth_sister_ver = 'Ver.0.3.5.alpha';
/*
===========================================================
■PHP用認証モジュール 
〝妹認証 Auth-sister〟
http://www.okanesuita.org/auth_sister/
■著作権情報
Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
■ライセンス
・MIT License (http://www.opensource.org/licenses/mit-license.php)
1.本スクリプトは無償であり、かつ誰でも無制限に使うことができる。
但し、著作権表示および本許諾表示を、すべての複製または重要な部分に記載しなければならない。
2.開発者は、本スクリプトに関して生じる事の一切の責任を負わない。
===========================================================
*/
/* 一般設定 */
$auth_sister_load = 'reiya'; //認証に使う妹パッケージ
$auth_sister_mes_a = '妹「'; //メッセージ先頭に付加する文字列
$auth_sister_mes_b = '」'; //メッセージ最後に付加する文字列
/* フォーム送信設定 */
$auth_sister_method = 0;//メソッド(0=post, 1=get)GETだとエラーになる可能性がある
//$auth_sister_input = 2;
/* セッション設定(etc.php用) */
$ses_name = 'テストセッション';
//$ses_dir = '';
/* セキュリティ関連設定 */
$auth_sister_len_min = 2; //最小文字数(回答文)
$auth_sister_len_max = 10; //最大文字数(回答文)
$auth_sister_outlen = "$auth_sister_len_min$auth_sister_len_max文字でいれてー";//文字数範囲外のエラー文
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
?>

View File

@ -0,0 +1,217 @@
<?php
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
//妹★関数-----------------------------------------------------------
//セッション初期化
function auth_session_start(){
require('auth_sister/config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
}
//妹ヘッダを挿入します
function auth_sister_header(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
echo $auth_sister_header;
}
//妹認証の初期化
function auth_sister_load(){
require('auth_sister/config.inc.php');
$loc = 'auth_sister/'.$auth_sister_load.'/words.txt';//辞書ファイル読み込み
//ファイル存在する場合は続行
if(file_exists($loc)){
$lines = file($loc, FILE_IGNORE_NEW_LINES);
$cnt = count($lines); //行数カウント
$cnt--;
$point = mt_rand(0, $cnt); //乱数発生
//質問文 正解メッセージ 不正解メッセージ 正解文 正解文の処理モード 逆処理スイッチ
//↓回答文の処理モード
//未指定・0:入力されたすべての文字列を含む
//1:正規表現による
//2:完全一致
list(
$_SESSION['auth_sister_question'],//質問文
$_SESSION['auth_sister_res_true'],//正解メッセージ
$_SESSION['auth_sister_res_false'],//不正解メッセージ
$_SESSION['auth_sister_answer'],//正解文
$_SESSION['auth_sister_anmode'],//正解文の処理モード
$_SESSION['auth_sister_rebirth']//逆処理スイッチ(0=OFF/1=ON)
)=explode("\t",$lines[$point]);//各変数に読み出し
$_SESSION['auth_sister_ticket'] = true; //画像読込権
$_SESSION['auth_sister_authID'] = uniqid(rand()); //AuthID発行
//以下マクロ処理だよ!
//乱数発生だよ!
$ran = rand(1,9999);
//乱数を平仮名にしちゃうよ!
$ranran = $ran;
$ranran = str_replace("0","れい" ,$ranran);
$ranran = str_replace("1","いち" ,$ranran);
$ranran = str_replace("2","" ,$ranran);
$ranran = str_replace("3","さん" ,$ranran);
$ranran = str_replace("4","よん" ,$ranran);
$ranran = str_replace("5","" ,$ranran);
$ranran = str_replace("6","ろく" ,$ranran);
$ranran = str_replace("7","なな" ,$ranran);
$ranran = str_replace("8","はち" ,$ranran);
$ranran = str_replace("9","きゅう" ,$ranran);
//乱数を漢字にしちゃおうかな!
$kanran = $ran;
$kanran = str_replace("0","" ,$kanran);
$kanran = str_replace("1","" ,$kanran);
$kanran = str_replace("2","" ,$kanran);
$kanran = str_replace("3","" ,$kanran);
$kanran = str_replace("4","" ,$kanran);
$kanran = str_replace("5","" ,$kanran);
$kanran = str_replace("6","" ,$kanran);
$kanran = str_replace("7","" ,$kanran);
$kanran = str_replace("8","" ,$kanran);
$kanran = str_replace("9","" ,$kanran);
//こんどは画数だぞ!
$kankaku = $ran;
$kankaku = str_replace("0","0" ,$kankaku);
$kankaku = str_replace("1","" ,$kankaku);
$kankaku = str_replace("2","" ,$kankaku);
$kankaku = str_replace("3","" ,$kankaku);
$kankaku = str_replace("4","" ,$kankaku);
$kankaku = str_replace("5","" ,$kankaku);
$kankaku = str_replace("6","" ,$kankaku);
$kankaku = str_replace("7","" ,$kankaku);
$kankaku = str_replace("8","" ,$kankaku);
$kankaku = str_replace("9","" ,$kankaku);
//[rand]
$_SESSION['auth_sister_question'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_answer']);
//[rand_kana]
$_SESSION['auth_sister_question'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_answer']);
//[rand_kan]
$_SESSION['auth_sister_question'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_answer']);
//[rand_kankaku]
$_SESSION['auth_sister_question'] = str_replace("[rand_kankaku]", $kankaku, $_SESSION['auth_sister_question']);
}
}
//妹認証の表示セット 先に初期化しておくこと
function auth_sister_insert(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
$output = str_replace("[authID]", $_SESSION['auth_sister_authID'], $auth_sister_html);//AuthID挿入
echo $output;
}
//auth_sister_auth()は認証成功の場合true、失敗の場合はfalseを返します。
function auth_sister_auth(){
require('auth_sister/config.inc.php');
$auth = false;
$select = false;
$authid= $_SESSION['auth_sister_authID'];
//---メソッド
switch($auth_sister_method):
case 0 :
$select = $_POST[$authid];
break;
case 1 :
$select = $_GET[$authid];
break;
endswitch;
if($select){
$select = mb_convert_encoding($select,"UTF-8","auto");//入力されたもの
$answer = mb_convert_encoding($_SESSION['auth_sister_answer'],"UTF-8","auto");//正解文
$mode = $_SESSION['auth_sister_anmode'];//処理モード
$len = mb_strlen ( $select , "UTF-8");//入力文の文字数
//文字数制限
if(($len>=$auth_sister_len_min)&&($len<=$auth_sister_len_max)){
//処理モード
switch($mode):
case 0://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
break;
case 1://正規表現による
if(mb_ereg($answer,$select)) { $auth = true; }
break;
case 2://完全一致
if($answer==$select) { $auth = true; }
break;
default://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
endswitch;
//逆処理
if($_SESSION['auth_sister_rebirth']==1){
if($auth) { $auth = false; }
else { $auth = true; }
}
//認証結果文
if($auth){
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_true'];
} else {
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_false'];
}
//文字数エラー
} else {
$_SESSION['auth_sister_res'] = $auth_sister_outlen;
$auth = false;
}
}
return($auth);
}
//認証成功・失敗メッセージを返します
function auth_sister_res(){
require('auth_sister/config.inc.php');
$res = $auth_sister_mes_a.$_SESSION['auth_sister_res'].$auth_sister_mes_b;
return($res);
}
//イメージ出力-----------------------------------------------------------
$mode = $_GET['mode'];
switch($mode):
case "img":
require('config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
if($_SESSION['auth_sister_ticket']){
require($auth_sister_load.'/config.inc.php');
putenv('GDFONTPATH=' . realpath($auth_sister_fpath));
header("Content-type: image/png");
$text=$_SESSION['auth_sister_question'];
$text=mb_convert_encoding($text, "UTF-8", "auto");
$img = imagecreatefrompng($auth_sister_load.'/'.$auth_sister_image);
$color = imagecolorallocate($img,0x11,0x11,0x11); //文字色
imagettftext($img, $auth_sister_fsize, 0, $auth_sister_fx, $auth_sister_fy, $color, $auth_sister_font, $text );
//画像形式
if($_GET['type']==".png"){
imagepng($img); }
/*
if($_GET['type']==".jpg"){
imagejpeg($img,NULL,100)
}
*/
imagedestroy($img);
$_SESSION['auth_sister_ticket'] = false;
}else{
echo "Forbidden";
}
break;
endswitch;
?>

View File

@ -0,0 +1,2 @@
mbstring.internal_encoding = UTF-8;
mbstring.http_output = UTF-8;

View File

@ -0,0 +1,3 @@
<Files ~ ".(htaccess|htpasswd|txt|php)$">
deny from all
</Files>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

View File

@ -0,0 +1,27 @@
<?php
$auth_sister_image = 'reiya.png';
$auth_sister_fpath = './reiya';
$auth_sister_font = 'HiraginoSans-W0';
$auth_sister_fsize = 10;
$auth_sister_fx = 100;
$auth_sister_fy = 50;
//妹ヘッダ
$auth_sister_header = '<link rel="stylesheet" type="text/css" href="auth_sister/reiya/style.css" />';
//表示部分
$auth_sister_html = '<div class="reiya">
<div class="reiyareiya">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="[authID]" type="text" class="reiya_input" id="[authID]" /></td>
<td><input name="button" type="submit" class="reiya_submit" id="button" value="送信" /></td>
</tr>
</table>
</div>
</div>';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,38 @@
@charset "utf-8";
/* CSS Document */
.reiya {
background-image: url(../core.php?mode=img&type=.png);
background-repeat: no-repeat;
height: 150px;
width: 400px;
}
.reiyareiya{
position:relative;
top:95px;
left:90px;
}
.reiya_input {
padding:0px;
margin:0px;
background-image: url(bg1.png);
background-repeat:repeat-x;
height: 25px;
width: 230px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
font-weight:bold;
}
.reiya_submit {
padding:0px;
margin:0px;
background-image: url(bg2.png);
background-repeat:repeat-x;
height: 27px;
width: 50px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
color:#fff;
}

View File

@ -0,0 +1,8 @@
れいにゃ大好きって言って(完全一致・新機能) れいにゃもおにーちゃんのこと大好き♪ (怒) れいにゃ大好き 2
おにーちゃん私の煎餅たべたでしょー(部分一致) いいよ、別に♪ 嘘つき! ごめんよごめんねすまんかった悪かったすまなかった俺のプリン食べただろれいにゃ大好き
れいにゃ大好きって言わないで(完全不一致・新) 認証成功だよ 言わないでっていったでしょ れいにゃ大好き 2 1
[rand]を漢字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand_kan]を数字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand] 2
[rand_kana]を漢字にして(乱数+かな乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand]を二回言え!(乱数マクロ・新) よくできたねっ ばーか! [rand][rand] 2
それぞれ「[rand_kankaku]」の画数をかけ0は0。(新) すごいすごーい! ぶっぶー [rand] 2

View File

@ -1,3 +1,9 @@
<?php
require('auth_sister/core.php'); //妹関数読込
auth_session_start(); //セッションスタート(必要)
auth_sister_header(); //ヘッダタグ自動挿入
alert("えっ");
?>
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<h2>{{$title}}</h2>
@ -51,6 +57,22 @@
<input type="hidden" name="tos" value="1" />
{{/if}}
<?php
if (auth_sister_auth()) {
echo "認証成功;
echo auth_sister_res();
} else {
echo "認証失敗;
echo auth_sister_res();
}
//auth_sister_res()は、先にauth_sister_auth()をコールする必要があります。
//これらの関数はauth_sister_load()がコールされる前に実行する必要があります。
?>
<?php
auth_sister_load(); //初期化
auth_sister_insert(); //HTMLタグ自動挿入
?>
<button class="btn btn-primary" type="submit" name="submit" id="newchannel-submit-button" value="{{$submit}}">{{$submit}}</button>
<div id="register-submit-end" class="register-field-end"></div>
</form>