/* 画像掲示板 詳細は Readme.txt を参照してください ************************************************************************ img.php Ver1.00 2008/03/01 爺ちゃんねる改造 ★Readme.txt 参照のこと★ 動画共有サイトの動画貼り付け再生システム組み込み・自動投稿ツール避け ************************************************************************ ******************************************!注意!*************************************** ・img.logのファイル名はデフォルトから変えてご使用ください。 define(LOGFILE, 'img.log'); // ログファイル名 ・設置サーバによってはindex.htmが無いと画像掲示板設置フォルダ内が見えてしまう場合があります。 空のindex.htmを置くか、スクリプトの入り口ファイル名指定をindex.htmに変更してください。 define('PHP_SELF2', 'img.htm'); // 入り口ファイル名 ***************************************************************************************** */ /* ★☆★板作成後この行を削除すると自動投稿スパムを避けられます-その1 ここから★☆★ //----日本語環境チェック $allow2=array('ja'); //----リンク元にこの文字列が含まれていたら投稿許可(自分のサイト内からの投稿)---- $allow=array('http://w6.oroti.com/~gchan/','http://www4.atpages.jp/jii/'); //←★※必ず自分のサイトURLに書き換える(複数指定可)★ //----それ以外は強制ジャンプ(トップページなどへ) $jump='./img.htm'; $err="https://www.yahoo.co.jp/"; $lng=getenv("HTTP_ACCEPT_LANGUAGE"); $ref=getenv("HTTP_REFERER"); //日本語環境が無い(外国人を弾く) foreach($allow2 as $key=>$value){ if(!ereg($value,$lng)){ Header("Location: ".$err);exit; } } //サイト外からの投稿防止(連投スクリプトなど) foreach($allow as $key=>$value){ if(ereg($value,$ref)){$flag=1;} } if($flag==0){Header("Location: ".$jump);exit;} ★☆★板作成後この行を削除すると自動投稿スパムを避けられます-その2 ここまで★☆★ */ // エラーを全て表示するよう設定 //error_reporting(E_ALL); extract($_POST); extract($_GET); extract($_COOKIE); $upfile_name=$_FILES["upfile"]["name"]; $upfile=$_FILES["upfile"]["tmp_name"]; //掲示板設定------------------------------------------------------------------- define('ADMIN_PASS', 'crayon4'); // 管理者パス define("ADMIN_MAME", 'いもいも'); //管理人変換の合い言葉 お名前が「★管理人」になります。※クッキーは「★管理人」を記憶するので次回の書き込みに注意する そのままでは「★"管""理"人」となります^^ define('LOGFILE', 'log1.cgi'); // ログファイル名 define('TREEFILE', 'tree.cgi'); // ログファイル名 define('IMG_DIR', 'src/'); // 画像保存ディレクトリ。img.phpから見て define('THUMB_DIR', 'thumb/'); // サムネイル保存ディレクトリ define('TITLE', '可愛い娘系 きっ茶画廊館'); // タイトル(
'."\n". '['.MOE_TLINK.']'."\n". '[ホーム]'."\n". '[管理用]'."\n". '
'."\n". ''.TITLE2.''."\n". '
| \n"; $msg .= "レス送信モード\n"; $msg .= " |
|---|
| '."\n";
}
/* 記事部分 */
function updatelog($resno=0){
global $path;
// レス時は各パス名を上位パスに
if($resno && RES_FILE){
$self_path = '../'.PHP_SELF;
$img_path = '../'.IMG_DIR;
$ref_path = '../'.IMG_REF_DIR;
$thumb_path = '../'.THUMB_DIR;
}else{
$self_path = PHP_SELF;
$img_path = IMG_DIR;
$ref_path = IMG_REF_DIR;
$thumb_path = THUMB_DIR;
}
$tree = file(TREEFILE);
$find = FALSE;
$thread_time = '';
$tline = array('dummy');
$imageflag = FALSE;
if($resno){
$counttree=count($tree);
for($i = 0;$i<$counttree;$i++){
$tline = explode(",",rtrim($tree[$i]));
if($resno == $tline[0] || array_search($resno,$tline)){ // レス先検索
$resno = $tline[0];
$st = $i;
$find = TRUE;
break;
}
}
if(!$find){ error("該当記事がみつかりません ".$resno); }
}
// 元スレ時刻の取得のため(返信html作成用)
$line = file(LOGFILE);
$countline = count($line);
$countimg = 0;
for($i = 0; $i < $countline; $i++){
list($no,,,,,,,$url,,,$ext,,,$time,) = explode(",", $line[$i]); // 元スレの時刻を取得(返信html作成用) //★
if($no == $resno){
$thread_time = $time;
if(RES_IMG && stristr($url,'_ires_')){ $imageflag = TRUE; }
}elseif($resno){
if(RES_IMG && array_search($no,$tline) && $ext && is_file($path.$time.$ext)){ $countimg++; }
}
$lineindex[$no]=$i + 1; // 逆変換テーブル作成
}
// レス画像数が上限になったらレス画像禁止
if(RES_IMG && $resno && $countimg >= RES_IMG_LIMIT){ $imageflag = FALSE; }
$counttree = count($tree);
for($page=0;$page<$counttree;$page+=PAGE_DEF){
$dat='';
head($dat,$resno); // 呼び出し
form($dat,$resno,FALSE,$imageflag);
if(!$resno){ $st = $page; }
if(!$resno || !MOE_COUNT){ $dat.='";
}elseif ($mcountlog >= MOE_DCNT*0.6){
$votext.=" 美味しく :$mcountlog".MOE_MSG4."";
}elseif ($mcountlog >= MOE_DCNT*0.4){
$votext.=" 美味しく :$mcountlog".MOE_MSG3."";
}elseif ($mcountlog >= MOE_DCNT*0.2){
$votext.=" 美味しく :$mcountlog".MOE_MSG2."";
}elseif ($mcountlog >= 1){
$votext.=" 美味しく :$mcountlog".MOE_MSG1."";
} else {
$votext.=" 美味しく :0".MOE_MSG0."";
}
}
}
// カウント表示用
if(!$resno){
if($mcountlog == 'DEN'){
$dentext.="".DEN_MSG."";
}elseif ($mcountlog >= MOE_DCNT*0.8){
$dentext.="美味しく :$mcountlog".MOE_MSG5."";
}elseif ($mcountlog >= MOE_DCNT*0.6){
$dentext.="美味しく :$mcountlog".MOE_MSG4."";
}elseif ($mcountlog >= MOE_DCNT*0.4){
$dentext.="美味しく :$mcountlog".MOE_MSG3."";
}elseif ($mcountlog >= MOE_DCNT*0.2){
$dentext.="美味しく :$mcountlog".MOE_MSG2."";
}elseif ($mcountlog >= 1){
$dentext.="美味しく :$mcountlog".MOE_MSG1."";
} else {
$dentext.="美味しく :0".MOE_MSG0."";
}
}
}
}
//萌えカウントシステム---------------------------------------------------------
// "; if (IMG_REFER) { $imgsrc .= ""; }else{ $imgsrc .= ""; } if (@is_file(THUMB_DIR.$time.'s.jpg'.REPLACE_EXT)){ $imgsrc .= " $imgsrc$votext"; }else{ $dat_img="画像タイトル:$time$ext-($size B) $dentext $imgsrc$votext"; } } // メイン作成 if(!$resno && AD_INSERT){ // 広告挿入機能 $dat.="広告:::".$adarray[rand(0,count($adarray)-1)]." "; } $dat.=$dat_img; // 画像関係文字列をここに移動 if(!$resno || !MOE_COUNT){ $dat.=""; } $dat.="$sub \n"; $dat.="Name $name $now No.$no "; if(RES_FILE){ if(!$resno) $dat.="[返信+投票]"; }else{ if(!$resno) $dat.="[返信+投票]"; } $dat.=" \n"; // そろそろ消える。 if($lineindex[$no]-1 >= LOG_MAX*0.95){ $dat.="このスレは古いので、もうすぐ消えます。 \n"; } // 管理者サムネ差し替え告知 if(NOTICE_THUMB && @is_file(THUMB_DIR.$time.'s.jpg'.REPLACE_EXT)){ $dat.="". "この記事の画像は管理者によりサムネイルが差し替えられています。理由はお察しください。 ". "サムネイルをクリックすると元の画像を表示します。". " \n"; } // 管理者sage告知 if(NOTICE_SAGE && stristr($url,'sage')){ $dat.="". "このスレは管理者によりsage指定されています。理由はお察しください。". " \n"; } // 画像レス数告知 if(RES_IMG && RES_IMG_LIMIT_NOTICE && $resno && stristr($url,'_ires_')){ if($countimg < RES_IMG_LIMIT){ $dat.="". "画像付レスの上限まであと・・・".(RES_IMG_LIMIT - $countimg)."枚". " \n"; }else{ $dat.="". "画像付レスおなかいっぱい・・・". " \n"; } } $dat.=" $video$com"; // レス作成 if(!$resno){ $omit_cnt = (RES_IMG && stristr($url,'_ires_')) ? OMIT_RES_IMG : OMIT_RES ; $s=count($treeline) - ($omit_cnt); if($s<1){ $s=1; } elseif($s>1){ $dat.="レス". ($s - 1)."件省略。全て読むには返信ボタンを押してください。 \n"; } }else{$s=1;} for($k = $s; $k < count($treeline); $k++){ $disptree = $treeline[$k]; $j=$lineindex[$disptree] - 1; if($line[$j]=="") continue; list($no,$now,$name,$email,$video,$sub,$com,$url, //★ $host,$pwd,$ext,$w,$h,$time,$chk) = explode(",", $line[$j]); // URLとメールにリンク if($email) $name = "$name"; $com = auto_link($com); $com = eregi_replace("(^|>)(>[^<]*)", "\\1\\2", $com); // 画像ファイル名 $img = $path.$time.$ext; $src = $img_path.$time.$ext; // 画像経由先htmlファイル作成 if (IMG_REFER && is_file($img) && !is_file(IMG_REF_DIR.$time.".htm")){ $fp=fopen(IMG_REF_DIR.$time.".htm","w"); flock($fp, 2); rewind($fp); fputs($fp, ""); fclose($fp); } //動画タグの挿入 if(!$video) { $video = ""; } else{ if(strlen($video) == 11) { $video = " ";
}
if(strlen($video) == 18) {
$video = "■ ";
}
if(strlen($video) == 14) {
$video = "■ ";
}
if(strlen($video) == 7) {
$video = "$imgsrc$votext\n"; }else{ $dat_img="$dentext 画像ファイル名:$time$ext-($size B)$thumb $imgsrc$votext\n"; } } // 別変数に入れた画像用タグ文字列をテーブルの中に配置 // メイン作成 $dat.="\n
|
| \n"; clearstatcache(); // ファイルのstatをクリア $p++; if($resno){break;} // res時はtree1行だけ } if(!$resno || !MOE_COUNT){ $dat.=' |
| '."\n".
'【記事削除】[画像だけ消す] '."\n". '削除キー'."\n". ' |
'."\n". '記事No削除キー'."\n". ' |
";
}else{
$dat.="| ";
}
$dat.="";
$dat.=" | | 最初のページ | ";} $dat.=""; for($i = 0; $i < count($tree) ; $i+=PAGE_DEF){ if($i>=FOLL_ADD){$dat.="[以下省略]";break;} if($st==$i){$dat.="[".($i/PAGE_DEF)."] "; }else{ if($i==0){$dat.="[0] ";} else{$dat.="[".($i/PAGE_DEF)."] ";} } } $dat.=" | "; if($p >= PAGE_DEF && count($tree) > $next && $next < FOLL_ADD){ $dat.=""; $dat.=""; $dat.=" | 最後のページ | ";} $dat.="