="4.1.0"){ extract($_REQUEST); extract($_SERVER); } /* * P-BBS by ToR * http://php.s3.to * * 2000/12/02 pre 完成 * 2001/03/06 v1.0 完成ー * 2001/03/11 v1.1 HTML書き出すOnOff、書き込み後Locationで飛ばす、管理モードpass→apass * 2001/04.16 v1.2 過去ログ対応、>がつくと色変わる。デザイン変更 * 2001/04/24 v1.23 書き込み後表示関数化、ページング変更、管理モード実行後修正、ホスト表示、Re:[2] * 2001/05/04 v1.231 クッキーをHTMLに書き出してしまうバグ修正,過去ログモードの非表示
* 2001/05/17 v1.232 文字数制限、行数制限追加 * 2001/05/27 v1.24 autolink修正、書き込み後refreshで飛ばす * 2001/06/02 v1.25 GET投稿禁止、外部投稿禁止 * 2001/11/15 v1.26 >の後のスペース無くす。PHP3の時レスで
となるバグ修正 * 2002/05/25 v1.27 i18n削除、空白チェック修正 * 2002/02/11 v1.28 クッキーの文字化け対策 * * シンプルな掲示板です。管理モード付 * 空のログファイルを用意して、パーミッションを606にしてください * HTMLを書き出す場合は、そのディレクトリが707か777じゃないとダメです */ //-------------設定ここから------------- /* に入れるタイトル */ $title1 = 'Registration form'; /* 掲示板のTOPタイトル(HTML可)*/ $title2 = '<font size=5 face=Verdana color=gray><b></b></font>'; /* <body>タグ */ $body = '<body bgcolor="#FDFDFD" text="#000000">'; /* 管理者用パスワード。必ず変更して下さい。*/ $admin_pass = 'GCOEisadmin'; /* ログ保存ファイル */ $logfile = 'bbs.log'; /* TOPページをHTMLに書き出すか (yes=1 no=0)*/ $htmlw = 0; /* 静的HTMLを書き出す場合のHTMLファイル */ $html_file = 'pbbs.html'; /* 戻り先(HOME)*/ $home = 'http://www.scienceweb.tohoku.ac.jp/special/gcoeis2009/'; /* Registration FormのURL */ $regform = 'http://www.scienceweb.tohoku.ac.jp/special/gcoeis2009/reg/registration2.php'; /* 一ページあたりの表示記事数 */ $page_def = 30; /* 最大記録件数 これを越えると古い物から過去ログへ移ります。*/ $max = 60; /* 文字数制限(名前、題名、本文)全角だとこの半分です */ $maxn = 40; $maxs = 40; $maxv = 1500; /* 本文の改行数制限 */ $maxline = 25; /* 同一ホストからの連続投稿を制限 --> 秒数を記述するとその時間以上を経過しないと連続投稿できない*/ $w_regist = 30; /* 文中で自動リンクするかどうか(yes=1 no=0)*/ $autolink = 1; /* HTMLタグを有効にするか(yes=1 no=0)*/ $tag = 0; /* タイトル無しで投稿された場合 */ $mudai = '(無題)'; /* >がついた時の色 */ $re_color = "#AA5620"; /* ホストを表示するか(表示しない=0 <!-->内で表示=1 表示=2)*/ $hostview = 1; /* 外部書き込み禁止にする?(する=1,しない=0) */ define("GAIBU", 0); /* 使用するファイルロックのタイプ(mkdir=1 flock=2 使わない=0)*/ define("LOCKEY", 2); //通常は2でOK /* mkdirロックを使う時はlockという名でディレクトリを作成して777にしてください */ define("LOCK" , "lock/plock"); //lockの中に作るロックファイル名 /* 過去ログ作成する? */ $past_key = 1; /* 過去ログ番号ファイル */ $past_no = "pastno.log"; /* 過去ログ作成ディレクトリ(書き込み権限必要) */ $past_dir = "./pastdir/"; /* 過去ログ一つに書き込む行数 */ $past_line= "60"; // 閲覧禁止ホスト(正規表現可 $no_host[] = 'kantei.go.jp'; $no_host[] = 'anonymizer.com'; $no_host[] = "pt$"; $no_host[] = "ph$"; $no_host[] = "my$"; $no_host[] = "th$"; $no_host[] = "rr.com"; // 使用禁止ワード $no_word[] = '死ね'; $no_word[] = '馬鹿'; $no_word[] = 'novapublic'; //---------設定ここまで-------------- // 禁止ホスト if (is_array($no_host)) { $host = gethostbyaddr(getenv("REMOTE_ADDR")); foreach ($no_host as $user) { if(preg_match("/$user/i", $host)){ header("Status: 204\n\n");//空白ページ exit; } } } //---------設定ここまで-------------- //--------------------------------------------------------------------- // ヘッダー表示部 //--------------------------------------------------------------------- function head(&$dat){ //ヘッダー表示部 global $mode,$no,$PHP_SELF,$logfile,$title1,$title2,$body,$p_bbs,$htmlw; //クッキーを頂きます if (get_magic_quotes_gpc()) $p_bbs = stripslashes($p_bbs); if(!$htmlw) list($r_name,$r_mail) = explode(",", $p_bbs); if($mode == "resmsg"){ //レスの場合 $res = file($logfile); $flag = 0; while (list($key, $value) = each ($res)) { // list($rno,$date,$name,$email,$sub,$com,$url) = explode("<>", $value); del 2009.01.08 Erina.K list($rno,$date,$position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet) = explode("<>", $value); //add 2009.01.08 Erina.K if ($no == "$rno"){ $flag=1; break; } } if ($flag == 0) error("該当記事が見つかりません"); if(ereg("Re\[([0-9]+)\]:", $sub, $reg)){ $reg[1]++; $r_sub=ereg_replace("Re\[([0-9]+)\]:", "Re[$reg[1]]:", $sub); }elseif(ereg("^Re:", $sub)){ $r_sub=ereg_replace("^Re:", "Re[2]:", $sub); }else{ $r_sub = "Re:$sub"; } $r_com = ">$com"; $r_com = eregi_replace("<br( /)>","\r>",$r_com); } // $head='<html><head> del Erina.K 20090.01.14 $head='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML lang="ja-JP"><head> <!-- del Erina.K 20090.01.14 <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> --> <!-- add_sta Erina.K 20090.01.14 --> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <link rel="stylesheet" type="text/css" href="../css/page.css"> <!-- add_end Erina.K 20090.01.14 --> <title>The 1st GCOE International Symposium - "Weaving Science Web beyond Particle-Matter Hierarchy" '; $dat=$head.$body.'
Tohoku University Scienceweb GCOE | Contact Us | Travel Information | Program & Slides
start

-Tohoku University Scienceweb GCOE-

The 1st GCOE
International Symposium

"Weaving Science Web beyond Particle-Matter Hierarchy"

January 19 (Mon), 2009

Registration form





'; } //--------------------------------------------------------------------- // フッター表示部 //--------------------------------------------------------------------- function foot(&$dat){ //フッター表示部 global $PHP_SELF,$home,$past_key; $dat.='- P-BBS -
$dat.='

page end
Welcome to Announcement Committee Scientific Program
&Slide

Registration
deadline: Mar 1(Sun), 2009.
Photo Gallery
Travel Information Contact Us Links
'; } //--------------------------------------------------------------------- // 記事表示部 //--------------------------------------------------------------------- function Main(&$dat){ //記事表示部 global $logfile,$page_def,$page,$PHP_SELF,$autolink,$re_color,$hostview; $view = file($logfile); $total = sizeof($view); $total2= $total; (isset($page)) ? $start = $page : $start = 0; $end = $start + $page_def; $st = $start + 1; for($s = $start;$s < $end;$s++){ if(!$view[$s]) break; /*del 2009.01.08 Erina.K list($no,$now,$name,$email,$sub,$com,$url, $host,$pw) = explode("<>", $view[$s]); */ list($no,$now,$position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet,$host,$pw) = explode("<>", $view[$s]); //add 2009.01.08 Erina.K // if($url){ $url = "HP";} del 2009.01.08 Erina.K // if($email){ $email = "Mail";} del 2009.01.08 Erina.K // >がある時は色変更 // $com = eregi_replace("(^|>)(>[^<]*)", "\\1\\2", $com); del 2009.01.13 Erina.K $presentationtitle = eregi_replace("(^|>)(>[^<]*)", "\\1\\2", $presentationtitle); //add 2009.01.13 Erina.K $email = eregi_replace("\@", "@", $email); //add 2009.01.13 Erina.K // URL自動リンク if ($autolink) { $com=auto_link($com); } // Host表示形式 if($hostview==1){ $host=""; } elseif($hostview==2){ $host="[ $host ]"; } else{ $host=""; } /* del_sta 2009.01.13 Erina.K $dat.="
\n"; $dat.="\n"; $dat.="\n"; $dat.="\n"; $dat.="
 $sub / $name[ Res ]

    $com
No.$no
$email $url $now $host
\n"; $dat.="
\n

\n"; */ //del_end 2009.01.13 Erina.K //add_sta 2009.01.13 Erina.K // $dat.="

\n"; //delete 2009.01.16 natsu.s $dat.="\n"; $dat.="\n"; $dat.=" \n"; $dat.=" \n"; $dat.="\n"; $dat.="\n"; $dat.=" \n"; $dat.="\n"; $dat.="
 [No.$no] $position $firstname $middlename $familyname$now $host
\n"; $dat.="  E-mail address: *****
\n"; $dat.="  Institution: $institution
\n"; $dat.="  Country: $country
\n"; $dat.="  Presentation: $presentation
\n"; $dat.="  Presentation method: $presentationmethod
\n"; $dat.="  Presentation title: $presentationtitle
\n"; $dat.="  Attendance to the banquet: $banquet
\n"; $dat.="
\n"; // $dat.="

\n"; //delete 2009.01.16 natsu.s //add_end 2009.01.13 Erina.K $p++; } //end for $prev = $page - $page_def; $next = $page + $page_def; // $dat.= sprintf("


%d 番目から %d 番目の記事を表示
Page:[ ",$st,$st+$p-1); del_end 2009.01.13 Erina.K $dat.= sprintf("
Display a registration from the No.%d to the No.%d
Page:[ ",$st,$st+$p-1); //add 2009.01.13 Erina.K ($page > 0) ? $dat.="<< " : $dat.=" "; $p_no=1;$p_li=0; while ($total > 0) { if ($page == $p_li) { $dat.="$p_no "; }else{ $dat.="$p_no "; } $p_no++; $p_li = $p_li + $page_def; $total = $total - $page_def; } ($total2 > $next) ? $dat.=" >>" : $dat.=" "; $dat.=" ]\n"; } //--------------------------------------------------------------------- // ログ書き込み //--------------------------------------------------------------------- function regist(){ //ログ書き込み // global $name,$email,$sub,$com,$url,$tag,$past_key,$maxn,$maxs,$maxv,$maxline; del 2009.01.08 Erina.K global $tag,$past_key,$maxn,$maxs,$maxv,$maxline; //add 2009.01.08 Erina.K global $position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet; //add 2009.01.08 Erina.K global $password,$html_url,$logfile,$jisa,$max,$w_regist,$autolink,$mudai, $PHP_SELF,$REQUEST_METHOD,$no_word; if (preg_match("/(]*?>|\[url(?:\s?=|\]))|href=/i", $com)) error("禁止ワードエラー!!"); if($REQUEST_METHOD != "POST") error("不正な投稿をしないで下さい"); if(GAIBU && !eregi($PHP_SELF,getenv("HTTP_REFERER"))) error("外部から書き込みできません"); // フォーム内容をチェック /* del_sta 2009.01.08 Erina.K if(!$name||ereg("^( | )*$",$name)){ error("名前が書き込まれていません"); } if(!$com||ereg("^( | |\t|\r|\n)*$",$com)){ error("本文が書き込まれていません"); } if(!$sub||ereg("^( | )*$",$sub)){ $sub=$mudai; } if(strlen($name) > $maxn){ error("名前が長すぎますっ!"); } if(strlen($sub) > $maxs){ error("タイトルが長すぎますっ!"); } if(strlen($com) > $maxv){ error("本文が長すぎますっ!"); } */ //del_end 2009.01.08 Erina.K // add_sta 2009.01.08 Erina.K if($position == "None"){ error("Position is required."); } if(!$firstname||ereg("^( | )*$",$firstname)){ error("First name is required."); } if(!$familyname||ereg("^( | )*$",$familyname)){ error("Family name is required."); } if(!$email||ereg("^( | )*$",$email)){ error("E-mail address is required."); } if(!$institution||ereg("^( | )*$",$institution)){ error("Institution is required."); } if(!$country||ereg("^( | )*$",$country)){ error("Country is required."); } if($presentation == ""){ error("Presentation is required."); } if($presentation == "Yes"){ if($presentationmethod == ""){ error("In the case of Presentation 'Yes', Presentation method is required."); } if(!$presentationtitle||ereg("^( | )*$",$presentationtitle)){ error("In the case of Presentation 'Yes', Presentation title is required."); } } elseif($presentation == "No"){ $presentationmethod = ""; $presentationtitle = ""; } else{ error("Presentation is required."); } if($banquet == ""){ error("Attendance to the banquet is required."); } // if(strlen($name) > $maxn){ error("名前が長すぎますっ!"); } // if(strlen($sub) > $maxs){ error("タイトルが長すぎますっ!"); } // if(strlen($com) > $maxv){ error("本文が長すぎますっ!"); } //add_end 2009.01.08 Erina.K /* del_sta 2009.01.08 Erina.K // 禁止ワード if (is_array($no_word)) { foreach ($no_word as $fuck) { if (preg_match("/$fuck/", $com)) error("使用できない言葉が含まれています!"); if (preg_match("/$fuck/", $sub)) error("使用できない言葉が含まれています!"); if (preg_match("/$fuck/", $name)) error("使用できない言葉が含まれています!"); } } */ //del_end 2009.01.08 Erina.K $times = time(); $check = file($logfile); $tail = sizeof($check); /* del_sta 2009.01.08 Erina.K list($tno,$tdate,$tname,$tmail,$tsub,$tcom,,,$tpw,$ttime) = explode("<>", $check[0]); if($name == $tname && $com == $tcom) error("二重投稿は禁止です"); */ //del_end 2009.01.08 Erina.K // add_sta 2009.01.08 Erina.K list($tno,$tdate,$tposition,$tfirstname,$tmiddlename,$tfamilyname,$temail,$tinstitution,$tcountry,$tpresentation,$tpresentationmethod,$tpresentationtitle,$tbanquet,,$tpw,$ttime) = explode("<>", $check[0]); // if($firstname == $tfirstname && $email == $temail) error("二重投稿は禁止です"); //add_end 2009.01.08 Erina.K if ($w_regist && $times - $ttime < $w_regist) // error("連続投稿はもうしばらく時間を置いてからお願い致します"); del 2009.01.13 Erina.K error("Please contribute it after putting time for a while."); //add 2009.01.13 Erina.K // 記事Noを採番 $no = $tno + 1; // ホスト名を取得 $host = getenv("REMOTE_HOST"); $addr = getenv("REMOTE_ADDR"); if($host == "" || $host == $addr){//gethostbyddrが使えるか $host=@gethostbyaddr($addr); } // 削除キーを暗号化 if ($password) { $PW = crypt(($password),aa); } $now = gmdate( "Y/m/d(D) H:i",time()+9*60*60); $url = ereg_replace( "^http://", "",$url); if (get_magic_quotes_gpc()) {//\を削除 /*del_sta 2009.01.08 Erina.K $com = stripslashes($com); $sub = stripslashes($sub); $name = stripslashes($name); $email = stripslashes($email); $url = stripslashes($url); */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K $position = stripslashes($position); $firstname = stripslashes($firstname); $middlename = stripslashes($middlename); $familyname = stripslashes($familyname); $email = stripslashes($email); $institution = stripslashes($institution); $country = stripslashes($country); $presentation = stripslashes($presentation); $presentationmethod = stripslashes($presentationmethod); $presentationtitle = stripslashes($presentationtitle); $banquet = stripslashes($banquet); } if ($tag == 0){ //add_end 2009.01.08 Erina.K /*del_sta 2009.01.08 Erina.K $sub = htmlspecialchars($sub);//タグっ禁止 $name = htmlspecialchars($name); $com = htmlspecialchars($com); $email = htmlspecialchars($email); $url = htmlspecialchars($url); $com = str_replace("&", "&", $com); */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K $position = stripslashes($position); $firstname = stripslashes($firstname); $middlename = stripslashes($middlename); $familyname = stripslashes($familyname); $email = stripslashes($email); $institution = stripslashes($institution); $country = stripslashes($country); $presentation = stripslashes($presentation); $presentationmethod = stripslashes($presentationmethod); $presentationtitle = stripslashes($presentationtitle); $banquet = stripslashes($banquet); $presentationtitle = str_replace("&", "&", $presentationtitle); //add_end 2009.01.08 Erina.K } $com = str_replace( "\r\n", "\r", $com); //改行文字の統一。 $com = str_replace( "\r", "\n", $com); /* \n数える(substr_countの代わり)*/ $temp = str_replace("\n", "\n"."a",$com); $str_cnt=strlen($temp)-strlen($com); if($str_cnt > $maxline){ error("行数が長すぎますっ!"); } $com = ereg_replace("\n(( | |\t)*\n){3,}","\n",$com);//連続する空行を一行 $com = nl2br($com); //改行文字の前に
を代入する。 $com = ereg_replace( "\n", "", $com); //\nを文字列から消す。 // $new_msg="$no<>$now<>$name<>$email<>$sub<>$com<>$url<>$host<>$PW<>$times\n"; del 2009.01.08 Erina.K $new_msg="$no<>$now<>$position<>$firstname<>$middlename<>$familyname<>$email<>$institution<>$country<>$presentation<>$presentationmethod<>$presentationtitle<>$banquet<>$host<>$PW<>$times\n"; //add 2009.01.08 Erina.K //クッキー保存 // $cookvalue = implode(",", array($name,$email)); del 2009.01.08 Erina.K $cookvalue = implode(",", array("","")); //add 2009.01.08 Erina.K setcookie ("p_bbs", $cookvalue,time()+14*24*3600); /* 2週間で期限切れ */ $old_log = file($logfile); $line = sizeof($old_log); $new_log[0] = $new_msg;//先頭に新記事 if($past_key && $line >= $max){//はみ出した記事を過去ログへ for($s=$max; $s<=$line; $s++){//念の為複数行対応 past_log($old_log[$s-1]); past_log_txt($old_log[$s-1]); //add 2009.01.14 Erina.K } } for($i=1; $i<$max; $i++) {//最大記事数処理 $new_log[$i] = $old_log[$i-1]; } renewlog($new_log);//ログ更新 } //--------------------------------------------------------------------- // ユーザー削除/ //--------------------------------------------------------------------- function usrdel(){ //ユーザー削除 global $pwd,$no,$logfile; if ($no == "" || $pwd == "") // { error("削除Noまたは削除キーが入力モレです"); } del 2009.01.13 Erina.K { error("Either Delete No or Delete pass is an omission of input."); } //add 2009.01.13 Erina.K $logall = file($logfile); $flag=0; while(list(,$lines)=each($logall)){ // list($ono,$dat,$name,$email,$sub,$com,$url,$host,$opas) = explode("<>",$lines); del 2009.01.08 Erina.K list($ono,$dat,$position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet,$host,$opas) = explode("<>",$lines); //add 2009.01.08 Erina.K if ($no == "$ono") { $flag=1; $pass=$opas; } else { $pushlog[]=$lines; } } // if ($flag == 0) { error("該当記事が見当たりません"); } del 2009.01.13 Erina.K if ($flag == 0) { error("The pertinence registration is not found."); } //add 2009.01.13 Erina.K // if ($pass == "") { error("該当記事には削除キーが設定されていません"); } del 2009.01.13 Erina.K if ($pass == "") { error("The delete password is not set for a pertinence registration."); } //add 2009.01.13 Erina.K // 削除キーを照合 $match = crypt(($pwd),aa); // if (($match != $pass)) { error("削除キーが違います"); } del 2009.01.13 Erina.K if (($match != $pass)) { error("Delete password is wrong."); } //add 2009.01.13 Erina.K // ログを更新 renewlog($pushlog); } //--------------------------------------------------------------------- // 管理機能 //--------------------------------------------------------------------- function admin(){ //管理機能 global $admin_pass,$PHP_SELF,$logfile; global $del,$apass,$head,$body; if ($apass && $apass != "$admin_pass") // { error("パスワードが違います"); } del 2009.01.08 Erina.K { error("Password is wrong."); } //add 2009.01.08 Erina.K echo "$head"; echo "$body"; // echo "[掲示板に戻る]\n"; del 2009.01.08 Erina.K echo "[Back to the Registration form]\n";//add 2009.01.08 Erina.K echo "
\n"; // echo "管理モード\n"; del 2009.01.08 Erina.K echo "Administration mode\n"; //add 2009.01.08 Erina.K echo "
\n"; if (!$apass) { // echo "

パスワードを入力して下さい

\n"; del 2009.01.08 Erina.K echo "

Please enter the password.

\n"; //add 2009.01.08 Erina.K echo "
\n"; echo "\n"; echo ""; // echo "
\n"; del 2009.01.08 Erina.K echo "\n"; //add 2009.01.08 Erina.K }else { // 削除処理 if ($del) { // 削除情報をマッチングし更新 $delall = file($logfile); while(list(,$delline)=each($delall)){ // list($no,$date,$name,$email,$sub,$com,$url,$host) = explode("<>",$delline); del 2009.01.08 Erina.K list($no,$date,$position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet,$host) = explode("<>",$delline); //add 2009.01.08 Erina.K if ($del != "$no") { $dellog[]=$delline; } } // ログを更新 renewlog($dellog); } // 削除画面を表示 echo "
\n"; echo "\n"; echo "\n"; echo "

削除したい記事のチェックボックスにチェックを入れ、削除ボタンを押して下さい。\n"; echo "

\n"; echo ""; // echo ""; del 2009.01.08 Erina.K echo ""; //add 2009.01.08 Erina.K echo "\n"; $delmode = file($logfile); while (list($l,$val)=each($delmode)){ /*del_sta 2009.01.08 Erina.K list($no,$date,$name,$email,$sub,$com,$url, $host,$pw,$tail,$w,$h,$time,$chk) = explode("<>",$val); */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K list($no,$date,$position,$firstname,$middlename,$familyname,$email,$institution,$country,$presentation,$presentationmethod,$presentationtitle,$banquet,$host,$pw,$tail,$w,$h,$time,$chk) = explode("<>",$val); //add_end 2009.01.08 Erina.K list($date,$dmy) = split("\(", $date); // if ($email) { $name="$name"; } del 2009.01.08 Erina.K /*del_sta 2009.01.08 Erina.K $com = str_replace("
","",$com); $com = htmlspecialchars($com); if(strlen($com) > 40){ $com = substr($com,0,38) . " ..."; } */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K $presentationtitle = str_replace("
","",$presentationtitle); $presentationtitle = htmlspecialchars($presentationtitle); if(strlen($presentationtitle) > 40){ $presentationtitle = substr($presentationtitle,0,38) . " ..."; } //add_end 2009.01.08 Erina.K /*del_sta 2009.01.08 Erina.K echo ($l % 2) ? "" : ""; echo ""; echo ""; echo ""; echo "\n\n"; */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K echo ($l % 2) ? "" : ""; echo ""; echo ""; echo ""; echo "\n\n"; //add_end 2009.01.08 Erina.K } echo "
削除記事No投稿日題名投稿者コメントホスト名投稿者Institutionホスト名
$no$date$sub$name$com$host
$no$date$country$position $firstname $middlename $familyname$institution$host
\n"; // echo "

"; del 2009.01.08 Erina.K echo "

"; //add 2009.01.08 Erina.K // echo "

\n"; del 2009.01.08 Erina.K echo "\n"; //add 2009.01.08 Erina.K } echo "\n"; } /*del_sta 2009.01.09 Erina.K //--------------------------------------------------------------------- // ディレクトリロック //--------------------------------------------------------------------- function lock_dir($name=""){//ディレクトリロック if($name=="") $name="lock"; // 3分以上前のディレクトリなら解除失敗とみなして削除 if ((file_exists($name))&&filemtime($name) < time() - 180) { @RmDir($name); } do{ if (@MkDir($name,0777)){ return 1; } sleep(1);// 一秒待って再トライ $i++; }while($i < 5); return 0; } //--------------------------------------------------------------------- // ロック解除 //--------------------------------------------------------------------- function unlock_dir($name=""){//ロック解除 if($name=="") $name="lock"; @rmdir($name); } */ //del_end 2009.01.09 Erina.K //add_sta 2009.01.09 Erina.K //--------------------------------------------------------------------- // ディレクトリロック //--------------------------------------------------------------------- function lock_dir($firstname=""){//ディレクトリロック if($firstname=="") $firstname="lock"; // 3分以上前のディレクトリなら解除失敗とみなして削除 if ((file_exists($firstname))&&filemtime($firstname) < time() - 180) { @RmDir($firstname); } do{ if (@MkDir($firstname,0777)){ return 1; } sleep(1);// 一秒待って再トライ $i++; }while($i < 5); return 0; } //--------------------------------------------------------------------- // ロック解除 //--------------------------------------------------------------------- function unlock_dir($firstname=""){//ロック解除 if($firstname=="") $firstname="lock"; @rmdir($firstname); } //add_end 2009.01.09 Erina.K //--------------------------------------------------------------------- // ログ更新 入力:配列 //--------------------------------------------------------------------- function renewlog($arrline){//ログ更新 入力:配列 global $logfile; if(LOCKEY==1){ lock_dir(LOCK) or error("ロックエラー
しばらく待ってからにして下さい"); } $rp = fopen($logfile, "w"); if(LOCKEY==2){ flock($rp, 2); } while(list(,$val)=each($arrline)){ fputs($rp,$val); } fclose($rp); if(LOCKEY==1){ unlock_dir(LOCK); } } //--------------------------------------------------------------------- // HTML生成 //--------------------------------------------------------------------- function MakeHtml(){ //HTML生成 global $html_file; head($buf); Main($buf); foot($buf); $hp = @fopen ($html_file,"w"); flock($hp,2); fputs($hp, $buf); fclose($hp); } //--------------------------------------------------------------------- // HTML表示 //--------------------------------------------------------------------- function ShowHtml(){ head($buf); Main($buf); foot($buf); echo $buf; } //--------------------------------------------------------------------- // 過去ログ作成 //--------------------------------------------------------------------- function past_log($data){//過去ログ作成 global $past_no,$past_dir,$past_line,$autolink; global $hostview; //add 2009.01.13 Erina.K $fc = @fopen($past_no, "r") or die(__LINE__.$past_no."が開けません"); $count = fgets($fc, 10); fclose($fc); $pastfile = $past_dir."index".$count.".html"; if(file_exists($pastfile)) $past = file($pastfile); // if(sizeof($past) > $past_line){ del 2009.01.13 Erina.K if(sizeof($past) >= $past_line * 14){ //add 2009.01.13 Erina.K $count++; $pf = fopen($past_no, "w"); fputs($pf, $count); fclose($pf); $pastfile = $past_dir."index".$count.".html"; $past = ""; } /*del_sta 2009.01.08 Erina.K list($pno,$pdate,$pname,$pemail,$psub, $pcom,$purl,$pho,$ppw) = explode("<>", $data); */ //del_end 2009.01.08 Erina.K //add_sta 2009.01.08 Erina.K list($pno,$pdate,$pposition,$pfirstname,$pmiddlename,$pfamilyname,$pemail,$pinstitution,$pcountry,$ppresentation,$ppresentationmethod,$ppresentationtitle,$pbanquet,$pho,$ppw) = explode("<>", $data); //add_end 2009.01.08 Erina.K // if($purl){ $purl = "HP";} del 2009.01.08 Erina.K // if($pemail){ $pname = "$pname";} del 2009.01.08 Erina.K // >がある時は色変更 // $pcom = eregi_replace("(>)([^<]*)", "\\1\\2", $pcom); del 2009.01.08 Erina.K $ppresentationtitle = eregi_replace("(>)([^<]*)", "\\1\\2", $ppresentationtitle); //add 2009.01.08 Erina.K $pemail = eregi_replace("\@", "@", $pemail); //add 2009.01.13 Erina.K // URL自動リンク // if ($autolink) { $pcom=auto_link($pcom); } del 2009.01.08 Erina.K if ($autolink) { $ppresentationtitle=auto_link($ppresentationtitle); } //add 2009.01.08 Erina.K // $dat.="
[$pno] $psub Name:$pname Date:$pdate $purl
    $pcom
\n"; del 2009.01.13 Erina.K //add_sta 2009.01.13 Erina.K if($hostview==1){ $pho=""; } elseif($hostview==2){ $pho="[ $pho ]"; } else{ $pho=""; } $dat.="\n"; $dat.="\n"; $dat.="\n"; $dat.=" \n"; $dat.=" \n"; $dat.="\n"; $dat.="\n"; $dat.=" \n"; $dat.="\n"; $dat.="
 [No.$pno] $pposition $pfirstname $pmiddlename $pfamilyname$pdate $pho
\n"; // $dat.="  E-mail address: *****
\n"; $dat.="  Institution: $pinstitution
\n"; $dat.="  Country: $pcountry
\n"; // $dat.="  Presentation: $ppresentation
\n"; // $dat.="  Presentation method: $ppresentationmethod
\n"; // $dat.="  Presentation title: $ppresentationtitle
\n"; // $dat.="  Attendance to the banquet: $pbanquet
\n"; $dat.="
\n"; $dat.="

\n"; //add_end 2009.01.13 Erina.K $np = fopen($pastfile, "w"); fputs($np, $dat); if($past){ while(list(, $val)=each($past)){ fputs($np, $val); } } fclose($np); } //add_sta 2009.01.14 Erina.K //--------------------------------------------------------------------- // 過去ログ作成(TXT) //--------------------------------------------------------------------- function past_log_txt($data){//過去ログ作成 global $past_no,$past_dir,$past_line; $fc = @fopen($past_no, "r") or die(__LINE__.$past_no."が開けません"); $count = fgets($fc, 10); fclose($fc); $pastfile = $past_dir."past".$count.".log"; if(file_exists($pastfile)) $past = file($pastfile); // if(sizeof($past) > $past_line){ del 2009.01.13 Erina.K if(sizeof($past) >= $past_line){ //add 2009.01.13 Erina.K $count++; $pf = fopen($past_no, "w"); fputs($pf, $count); fclose($pf); $pastfile = $past_dir."past".$count.".log"; $past = ""; } $dat.= $data; $np = fopen($pastfile, "w"); fputs($np, $dat); if($past){ while(list(, $val)=each($past)){ fputs($np, $val); } } fclose($np); } //add_end 2009.01.14 Erina.K //--------------------------------------------------------------------- // 過去ログ参照 //--------------------------------------------------------------------- function past_view(){ global $past_no,$past_dir,$past_line,$body,$pno; $pno = htmlspecialchars($pno); $fc = @fopen($past_no, "r") or die(__LINE__.$past_no."が開けません"); $count = fgets($fc, 10); fclose($fc); if(!$pno) $pno = $count; // echo '■ 過去ログ '.$pno.' ■'; del Erina_K 2009.01.13 //add_sta Erina_K 2009.01.14 echo ''; echo ''; echo ''; echo ''; echo ''; echo '- Past log '.$pno.' -'; echo '- Past log '.$pno.' -'; //add Erina_K 2009.01.13 //add_end Erina_K 2009.01.14 //add_sta Erina_K 2009.01.13 echo ''; echo ''; //add_end Erina_K 2009.01.13 // echo ''.$body.'[掲示板に戻る]

■ 過去ログ '.$pno.' ■

new← '; del Erina_K 2009.01.13 echo ''.$body.'[Return to the registration form]
- Past log '.$pno.' -

new<-- '; //add Erina_K 2009.01.13 $pastkey = $count; while ($pastkey > 0) { if ($pno == $pastkey) { echo "[$pastkey]"; } else { echo "[$pastkey]"; } $pastkey--; } // echo ' →old

'.$past_line.'件ずつ表示'; del Erina_K 2009.01.13 echo ' -->old By '.$past_line.' registration display it.'; //add Erina_K 2009.01.13 $pastfile = $past_dir."index".$pno.".html"; // if(!file_exists($pastfile)) error("
過去ログがみつかりません"); del Erina_K 2009.01.13 if(!file_exists($pastfile)) error("
The past log is not found"); //add Erina_K 2009.01.13 include($pastfile); die(""); } //--------------------------------------------------------------------- // 自動リンク //--------------------------------------------------------------------- function auto_link($proto){//自動リンク5/25修正 $proto = ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2",$proto); return $proto; } //--------------------------------------------------------------------- // エラーフォーマット //--------------------------------------------------------------------- function error($mes){ //エラーフォーマット global $body; global $regform; ?>






Return


"; break; case 'admin': admin(); break; case 'usrdel': usrdel(); if($htmlw) MakeHtml(); ShowHtml(); break; case 'past': past_view(); break; default: ShowHtml(); break; endswitch; ?>