#! /usr/bin/perl # # profile2.cgi # # 2.025 : 6/30/08 : サムネイル削除を修正 # 2.024 : 6/4/08 : NGワード機能を追加 # 2.023 : 4/29/08 : 名前検索のバグを修正 # 2.022 : 12/22/07 : 画像アップロード枚数制限機能を追加 # 2.021 : 12/2/07 : 縮小画像自動作成機能を追加 # 2.020 : 8/5/07 : 入力項目に編集不可の項目指定オプションを追加 # 2.019 : 6/18/07 : 登録者リストのフォームを修正 # 2.018 : 1/16/07 : 登録名重複チェックオプションを追加 # 2.017 : 12/20/06 : 検索をCase Insensitiveに修正 # 2.016 : 11/21/06 : パスワード変更処理を修正 # 2.015 : 11/16/06 : 検索機能を追加 # 2.014 : 6/29/06 : 携帯モードでの画像アップロード機能を削除 # 2.013 : 6/28/06 : 画像ファイルが無い場合の処理を修正 # 2.012 : 6/21/06 : 管理人モードでのパスワードチェックを修正 # 2.011 : 6/1/06 : 登録名チェック、携帯モード書き込み説明追加 # 2.010 : 5/1/06 : $prdirを自動作成するように変更 # 2.009 : 4/24/06 : 携帯モードリンクを追加 # 2.008 : 4/23/06 : 携帯モードを追加 # 2.007 : 4/6/06 : 最大投稿数制限機能を追加 # 2.006 : 1/23/06 : 画像以外のファイルのアップロード処理を追加 # 2.005 : 1/8/06 : 画像ファイルの処理を修正 # 2.004 : 1/7/06 : タイプミスを修正 # 2.003 : 1/6/06 : MIME encodeを修正。削除のバグを修正。 # 2.002 : 11/23/05 : タイプミスを修正 # 2.001 : 11/19/05 : サポートしてない画像も表示するように修正 # 2.0 : 11/16/05 : Modified from profile.cgi # # http://www.hidekik.com/ # # $Id: profile2.cgi,v 1.44 2008/06/30 15:53:31 Hideki Kanayama Exp $ # Copyright(c) 2003-2008, Hideki Kanayama, All rights reserved. # use strict; use CGI qw(:cgi-lib); use CGI::Carp qw(fatalsToBrowser); use File::Copy; use File::Basename; use POSIX; use GD; use Jcode; my $admindat = "adminpwd.dat"; my $setupfile = "profile_setup.pl"; my $version = "2.025"; my $lastmodifiedyear = "2008"; my $lang = 0; my $charset = ("Shift_JIS","ISO-8859-1")[$lang]; my $script = basename($0); #### 環境設定 ###### ここから ############ our $prdir = "data"; our $prfile = "$prdir/profile.lst"; our $dellog = "$prdir/delete.lst"; our $lockfile = "$prdir/lockfile.lck"; # バックグラウンド設定 # Background設定 # 1:画像を使う 0:カラー番号を使う our $bgimage_en = 0; our $bgimagefile = "$prdir/sample.jpg"; our $bgcolor="#ffffff"; #テーブルのバックグラウンド 1: on, 0: off our $table_bgcolor_en = 0; our $table_bgcolor = '#ffffff'; #名前欄の色 our $namebgcolor='lightblue'; #タイトル our $title_logo_en = 0; our $title_logo = ''; our $title = 'プロファイル'; our $title_color='blue'; our $regtitle_logo_en = 0; our $regtitle_logo = ''; our $regtitle = 'プロファイル登録'; our $regtitle_color='blue'; our $edititle_logo_en = 0; our $edititle_logo = ''; our $edititle = 'プロファイル修正'; our $edititle_color='blue'; our $register_title_logo_en = 0; our $register_title_logo = ''; our $register_title = '新規登録'; our $setup_title_logo_en = 0; our $setup_title_logo = ''; our $setup_title = '管理用'; #トップへのリンク 1: on 0:off our $toplink_en = 1; our $toplink_logo_en = 0; our $toplink_logo = ''; our $toplink_title = 'トップへ'; our $toplink_link = "../profile.html"; #登録者リスト表示 0:非表示 1:上に表示 2:下に表示 3:別ウィンドウに表示 4:別ページに表示 our $list_display = 0; our $list_logo_en = 0; our $list_logo = ''; our $list_title = '登録者リスト'; #携帯モードリンク表示 1:on 0:off our $mobilelink_en = 1; our $mobile_logo_en = 0; our $mobile_logo = ''; our $mobile_title = '携帯モード'; #サーチリンク表示 1:on 0:off our $searchlink_en = 1; our $search_logo_en = 0; our $search_logo = ''; our $search_title = '検索'; #携帯モード説明表示 1:on 0:off our $mobileusage_en = 0; #登録者リストの一行に表示される人数 our $list_cols = 5; #表示順 0:最新順 1:古い順 our $disp_order = 0; #記事更新時の表示順 0:登録順 1:更新順 our $reorder = 1; #削除機能 1: on, 0: off our $delete_en = 1; #管理人セットアップ表示 1: on, 0: off our $setup_en = 1; #登録リンク表示 1:on 0:off our $regform_en = 1; #管理人オンリーモード 1:on, 0:off our $admin_only_en = 0; #重複登録名チェック 1:on, 0:off our $regnamecheck_en = 1; #最終更新表示 1: on, 0: off our $lastupdate_en = 1; our $lastupdate = 'Last Update : '; our $lastupdate_color = '#3333ff'; our $lastupdate_form = '1'; #各記事更新表示 1: on, 0: off our $eachupdate_en = 1; our $eachupdate = '更新時間'; our $eachupdate_form = '1'; #登録修正フォームの1行目 our $item = '項目'; our $item_color = 'black'; our $item_bgcolor = 'lightblue'; our $contents = '内容'; our $contents_color = 'black'; our $contents_bgcolor = 'lightblue'; #項目欄の文字位置 our $item_lr = 0; # 0:左 1:中 2:右 our $item_ud = 1; # 0:上 1:中 2:下 #お名前の項目名 our $name_in = 'お名前'; #パスワード項目名 our $passitem = 'パスワード'; #修正ボタン名 our $editbutton = '修正する'; #削除ボタン名 our $deletebutton = '削除する'; #アイテムの最大数 our $itemmaxnum = 9; #1度にアップできる画像の最大数 our $picmaxnum = 6; #アップできる合計画像数制限 1:有効 0:無効 our $pic_total_max_en = 0; our $pic_total_max = 6; #1ページ表示制限 1:on 0:off our $pagedisp_en = 0; #1ページ表示件数 our $pagedispnum = 10; #最大投稿制限 1:on 0:off our $postmax_en = 0; our $postmax = 100; # 次ページ前ページリンク名 our $prev_icon_en = 0; our $next_icon_en = 0; our $prev_icon = ''; our $next_icon = ''; our $prevpage = '←前ページ'; our $nextpage = '次ページ→'; our $prev_loc = 0; our $next_loc = 2; our $first_icon_en = 0; our $first_icon = ''; our $firstpage = '最初に戻る'; #入力項目のデフォルト、最大$itemmaxnum項目(デフォルト9) our @item_value = ('家族構成','生年月日','最近の出来事'); #編集禁止入力項目数(最初のいくつ) 0:全て編集可能 our $no_item_edit = 0; # 画像ファイルの最大表示の大きさ(単位:ピクセル) # → これを超える画像は縮小表示します our $max_width = 150; # 横幅 our $max_height = 150; # 縦幅 #最大画像アップサイズ(kB) our $maxmb = 300; #縮小画像自動作成 1:on 0:off our $thumb_gen_en = 1; our $thumb_dir = 'prthumb'; #携帯モード画像ファイルサイズ制限 (KB) our $mob_image_size = 25; #携帯モード画像フォーマット 0:jpg 1:gif 2:png our $mob_image_format = 1; #一人がアップできる合計ファイルサイズ制限 1:on 0:off our $size_check_en = 1; #一人がアップできる合計ファイルサイズ(kB) our $allocated_size = 300; #画像クリック時 1: 同じウィンドウ 0: 別ウィンドウ our $samewin_en = 1; #画像表示位置 0:左 1:中 2:右 our $pic_loc = 1; #表示テーブルのサイズ(パーセント) our $table_width = 60; #項目欄のサイズ(パーセント) our $item_width = 20; #テーブルのレイアウト our $table_layout_en = 0; our $bordercolor = '#000000'; our $table_border = 1; our $cellpadding = 1; our $cellspacing = 1; #書き込みテキストエリアのサイズ our $textarea_cols = 50; our $textarea_rows = 3; #各記事ごとの