サイト名を入力してください。\n";
$err_flag = true;
} else {
if ($admin_mode != "admin_regist") {// 管理モードではチェックなし
// NGサイト名判別
$name = explode(",",ngname);
foreach ($name as $value) {
if (strpos($site_name,$value) !== false) {
$error_message .= "
サイト名に使用できない文字が含まれています。\n";
$err_flag = true;
break;
}
}
}
}
if ($admin_mode != "admin_regist") {// 管理モードではチェックなし
if ($site_url == "" || preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $site_url) == false) {
$error_message .= "正しいURLを入力してください。\n";
$err_flag = true;
} else if($site_url[strlen($site_url)-1] != "/"){
$error_message .= "登録URLの末尾は必ず「/」で記入下さい。 \n";
$err_flag = true;
} else if(substr_count($site_url,"/") > 3){
$error_message .= "登録URLの階層が深すぎます。トップページを登録してください。\n";
$err_flag = true;
} else if($image_auth != image_auth){
$error_message .= "画像認証の入力文字が間違っております\n";
$err_flag = true;
} else {
// NGURL判別
$url = explode(",",ngurl);
foreach ($url as $value) {
if (strpos($site_url,$value) !== false) {
$error_message .= "URLに使用できない文字が含まれています。\n";
$err_flag = true;
break;
}
}
}
}
if ($site_caption == "") {
$error_message .= "説明文を入力してください。\n";
$err_flag = true;
} else {
if ($admin_mode != "admin_regist") {// 管理モードではチェックなし
// NGワード判別
$word = explode(",",ngword);
foreach ($word as $value) {
if (strpos($site_caption,$value) !== false) {
$error_message .= "説明文に使用できない文字が含まれています。\n";
$err_flag = true;
break;
}
}
}
}
if ($admin_mode != "admin_regist") {// 管理モードではチェックなし
if ($site_linkpage_url == "" || preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $site_linkpage_url) == false) {
$error_message .= "相互リンクURLを入力してください。\n";
$err_flag = true;
} else if(!preg_match("/^https?:\/\/.+\..+(\.htm|\.html|\/)$/", $site_linkpage_url)){
$error_message .= "相互リンクURLの最後が「/」「html」「htm」のいずれかで終わるようにしてください。\n";
$err_flag = true;
}
}
if ($site_password == "") {
$error_message .= "パスワードを入力してください。\n";
$err_flag = true;
}
if ($admin_mode != "admin_regist") {// 管理モードではチェックなし
if (strlen($site_name) > (namelimit * 3)) {
$error_message .= "サイト名が長すぎます。全角".namelimit."文字以内にしてください。\n";
$err_flag = true;
}
if (strlen($site_url) > urllimit) {
$error_message .= "URLが長すぎます。半角".urllimit."文字以内にしてください。\n";
$err_flag = true;
}
if (strlen($site_caption) > (captionlimit * 3)) {
$error_message .= "説明文が長すぎます。全角".captionlimit."文字以内にしてください。\n";
$err_flag = true;
}
if (ereg("(.*
.*){".rawlimit.",}",$site_caption)) {
$error_message .= "改行が多すぎます。".rawlimit."行以内にしてください。\n";
$err_flag = true;
}
// NGHOST判別
$nghost = explode(",",nghost);
foreach ($nghost as $value) {
if (strpos($host,$value) !== false) {
$error_message .= "このホストからは登録できません。\n";
$err_flag = true;
break;
}
}
// NGIP判別
$ngipaddr = explode(",",ngipaddr);
foreach ($ngipaddr as $value) {
if (strpos($addr,$value) !== false) {
$error_message .= "このIPからは登録できません。\n";
$err_flag = true;
break;
}
}
//ゲスト禁止カテゴリチェック
foreach ($cate_data as $value) {
list($cate_name_j,$cate_url,$cate_item,$cate_status) = explode(",",mb_convert_encoding($value,"UTF-8","auto"));
if($site_category == $cate_url && $cate_status == "1"){
$error_message .= "このカテゴリへは登録できません。(カテゴリー【".$cate_name_j."】)\n";
$err_flag = true;
}
}
}
//カテゴリー存在チェック
$cate_err = 1;
foreach ($list_data as $value) {
list($l_cate_url,$url,$name,$caption,$time,$user_pass,$list_host,$linkpage_url,$linkcheck_status,$linkcheck_time) = explode(",",mb_convert_encoding($value,"UTF-8","auto"));
if ($url == $site_url) { //URL重複登録チェック
foreach ($cate_data as $value) {
list($cate_name_j,$cate_url,$cate_item,$cate_status) = explode(",",mb_convert_encoding($value,"UTF-8","auto"));
if ($l_cate_url == $cate_url) {
break;
}
}
$error_message .= "そのURLは既に登録されています。(カテゴリー【".$cate_name_j."】)\n";
$err_flag = true;
break;
}
if ($name == $site_name) { //サイト名重複登録チェック
$error_message .= "そのサイト名は既に登録されています。(カテゴリー【".$cate_name_j."】)\n";
$err_flag = true;
break;
}
}
foreach ($cate_data as $value) {
list($category_name,$category_url,$category_item,$cate_status) = explode(",",mb_convert_encoding($value,"UTF-8","auto"));
if ($category_url == $site_category) {
$cate_err = 0;
break;
}
}
if ($cate_err == 1) {
$error_message .= "そのカテゴリーは存在しません。\n";
$err_flag = true;
}
if ($err_flag) {
error($error_message,"regist.php");
exit;
}
if ($admin_mode == "admin_regist") { // 管理モードでは常に相互リンク確認済み
$bln[state] = true;
}else{
$bln = linkcheck($site_url,$site_linkpage_url,$admin_mode = false);
}
if ($bln[err_flag]) {
error($bln[error_message],"regist.php");
exit;
}
// 相互リンク確認済み
if ($bln[state]) {
// 登録リストファイル更新
$new_time = time();
$new_str = $site_category.",".$site_url.",".$site_name.",".$site_caption.",".$new_time.",".md5($site_password).",".$host.",".$site_linkpage_url.",1,".$new_time.",\n";
$fp_list = fopen(listfile,"w");
flock($fp_list,LOCK_EX);
fputs($fp_list,$new_str);
foreach ($list_data as $value) {
fputs($fp_list,$value);
}
flock($fp_list,LOCK_UN);
fclose($fp_list);
// カテゴリーファイル更新
$i = 0;
foreach ($cate_data as $value) {
list($cate_name_j,$cate_url,$cate_item,$cate_status) = explode(",",mb_convert_encoding($value,"UTF-8","auto"));
if ($cate_url == $site_category) {
$cate_data[$i] = $cate_name_j.",".$cate_url.",".($cate_item + 1).",".$cate_status.",\n";
}
$i++;
}
$fp_cate = fopen(categoryfile,"w");
flock($fp_cate,LOCK_EX);
foreach ($cate_data as $value) {
fputs($fp_cate,$value);
}
flock($fp_cate,LOCK_UN);
fclose($fp_cate);
}
/*登録処理後のリダイレクト*/
if ($admin_mode!= "admin_regist") {
session_destroy();
header("Location: ".$site_category."/");
} else {
header("Location: admin.php?mode=admin&admin_mode=list_edit&id=".$site_category);
}
}
} else{
$cate_data_perms = substr(sprintf('%o', fileperms(listfile)), -3);
$list_data_perms = substr(sprintf('%o', fileperms(categoryfile)), -3);
if(($cate_data_perms == "666" || $cate_data_perms == "606") &&
($list_data_perms == "666" || $list_data_perms == "606")){
$session_site_name = ($_SESSION['site_name'])? $_SESSION['site_name'] : "";
$session_site_url = ($_SESSION['site_url'])? $_SESSION['site_url'] : "";
$session_site_caption = ($_SESSION['site_caption'])? $_SESSION['site_caption'] : "";
$session_site_linkpage_url = ($_SESSION['site_linkpage_url'])? $_SESSION['site_linkpage_url'] : "";
include("./template/regist.html");
} else {
error("dataフォルダ内のlist.datとcategory.datのパーミッションの値が設定されておりません
list.dat $list_data_perms
category.dat $cate_data_perms
サーバーの環境に合わせ、666か606へ正しく設定してください。","./");
exit;
}
}
footer (site_title);
?>