#futaba.phpのmysql版。
#作りかけです。
#そのままでも動きますが、実用には耐えないでしょう。
#未実装のもの→サムネイルの有無、画像検査、画像だけ消した時にログへの反映、みんなで削除ボタン
extract($_POST,EXTR_SKIP);
extract($_GET,EXTR_SKIP);
extract($_COOKIE,EXTR_SKIP);
$upfile_name=$_FILES["upfile"]["name"];
$upfile=$_FILES["upfile"]["tmp_name"];
define(SQLLOG, 'imglog'); //ログファイル名(テーブル名)
define(IMG_DIR, 'src/'); //画像保存ディレクトリ。futaba.phpから見て
define(THUMB_DIR,'thumb/'); //サムネイル保存ディレクトリ
define(TITLE, 'この画像掲示板はMySQLを使っています。'); //タイトル(
とTOP)
define(HOME, '../'); //「ホーム」へのリンク
define(MAX_KB, '100'); //投稿容量制限 KB(phpの設定により2Mまで
define(MAX_W, '100'); //投稿サイズ幅(これ以上はwidthを縮小
define(MAX_H, '100'); //投稿サイズ高さ
define(PAGE_DEF, '10'); //一ページに表示する記事
define(LOG_MAX, '200'); //ログ最大行数
define(ADMIN_PASS, '掲示板の管理パスワードをここに書く'); //管理者パス
define(RE_COL, '789922'); //>が付いた時の色
define(PHP_SELF, 'futaba.php'); //このスクリプト名
define(PHP_SELF2, 'futaba.htm'); //入り口ファイル名
define(PHP_EXT, '.htm'); //1ページ以降の拡張子
define(RENZOKU, '15'); //連続投稿秒数
define(RENZOKU2, '30'); //画像連続投稿秒数
define(MAX_RES, '10'); //強制sageレス数
define(USE_THUMB, 1); //サムネイルを作る する:1 しない:0
define(PROXY_CHECK, 1); //proxyの書込みを制限する y:1 n:0
define(DISP_ID, 0); //IDを表示する 強制:2 する:1 しない:0
define(BR_CHECK, 15); //改行を抑制する行数 しない:0
$path = realpath("./").'/'.IMG_DIR;
ignore_user_abort(TRUE);
$badstring = array("dummy_string","dummy_string2"); //拒絶する文字列
$badfile = array("dummy","dummy2"); //拒絶するファイルのmd5
$badip = array("addr1\\.dummy\\.com","addr2\\.dummy\\.com"); //拒絶するホスト
$addinfo='MySQLテストちゅう。そのうち消えます。ソースはこのへん。';
if(!$con=mysql_connect("localhost","mysql","SQLの接続パスワードをここに書く")){
echo "接続失敗"; #↑mysqlはここではDBのユーザ名
exit;
}
$db_id=mysql_select_db("bbs",$con); #bbsはここではDBの名前
if(!$db_id){echo "mysql_select_db失敗
";}
if (!table_exist(SQLLOG)) {
echo (SQLLOG."テーブルを作成します
\n");
$result = mysql_call("create table ".SQLLOG." (primary key(no),
index (resto),index (root),index (time),
no int not null auto_increment,
now text,
name text,
email text,
sub text,
com text,
host text,
pwd text,
ext text,
w int,
h int,
tim text,
time int,
md5 text,
fsize int,
root timestamp,
resto int)");
if(!$result){echo "テーブル作成失敗
";}
}
/* 記事部分 */
function updatelog($resno=0){
global $path;
$find = false;
$resno=(int)$resno;
if($resno){
$result = mysql_call("select * from ".SQLLOG." where root>0 and no=$resno");
if($result){
$find = mysql_fetch_row($result);
mysql_free_result($result);
}
if(!$find) error("該当記事がみつかりません");
}
if($resno){
if(!$treeline=mysql_call("select * from ".SQLLOG." where root>0 and no=".$resno." order by root desc")){echo "sql失敗4
";}
}else{
if(!$treeline=mysql_call("select * from ".SQLLOG." where root>0 order by root desc")){echo "sql失敗4
";}
}
//最後の書き込み番号
if(!$result=mysql_call("select max(no) from ".SQLLOG)){echo "sql失敗96
";}
$row=mysql_fetch_array($result);
$lastno=(int)$row[0];
mysql_free_result($result);
$counttree=mysql_num_rows($treeline);
if(!$counttree){
$logfilename=PHP_SELF2;
$dat='';
head($dat);
form($dat,$resno);
$fp = fopen($logfilename, "w");
set_file_buffer($fp, 0);
rewind($fp);
fputs($fp, $dat);
fclose($fp);
chmod($logfilename,0666);
}
for($page=0;$page<$counttree;$page+=PAGE_DEF){
$dat='';
head($dat);
form($dat,$resno);
if(!$resno){
$st = $page;
}
$dat.='