dropbox
«前の日記(2007-08-15) 最新 次の日記(2007-08-19)» 編集

Yammy日記

私の日々の記録などです。この日記の内容は、私個人の意見/考えであり、所属する団体の意見/考えではありません。
RSS Web yammy.jpn.org
過去の日記
☆スキーウエアNOW ON SALE!!☆★2ピース上下スーツ★ 【エァウォーク】幼児用ウエアAWT‐5524 ピンク(桃色)サイズ:100・110・120 decorate
Plaitan 25リットル:Lサイズ 【MBRO】エムブロ 日産 セレナ
エムブロC25/CC25/NC25/CNC25
バルカンLEDハイマウントストップランプ クローム
【送料込】エムブロ MBRO
C25系セレナ スパークルLEDテール
クローム
【送料無料】ねばるパウダー
折れ脚伸長式テーブルGrande neo〔グランデネオ〕 大
佐藤錦 わけあり 1Kg
沖縄産スナックパイン1玉(500g〜800g)

N−95D23L/C3 互換インク CANON BCI-7e+9/5MP



track feed
Debian GNU/Linux
Apache
www.cacert.org
My Profile by iddy
technorati
RobotReplay

2004/09/30から

今日:
昨日:
最近のツッコミ10発


2007-08-17 Internet Exprolerでは、○○○をダウンロードできません。 [長年日記]

_ [Know-How][Software] 駄目なInternet Exproler

CSVファイルをダウンロードさせるスクリプトを設置したのだが、Firefoxでは通所通りダウンロードできるものの、Internet Exprletでは、何故か

Internet Exprolerでは、○○をダウンロードできません。
このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか、見つけることができません。後でやり直してください。

のエラーになってしまう…。絶対IEの駄目な仕様なのだろうと思いきや全くその通りだった。 Content-typeがtext/html以外のオブジェクトにhttpsでアクセスする際に、Pragma: no-cacheがヘッダにセットされていると何故か上記エラーがでるらしい…。IE捨てようよ…

参考

_ [Know-How] 韓国の住民登録番号チェックロジック

韓国の住民登録番号をチェックするロジックを、べた書きで作ってみた。

基本知識(From:住民登録番号 - Wikipedia)

住民登録番号は総13桁の数字で、次のように表記する。 yymmdd-snnnnmc ここでそれぞれの数字は次のような意味がある。

  • yymmdd 六数字は生年月日である。例えば 1987年 1月 19日に生まれた人は 870119の数字を持つ。
  • sは性別を現わす。
    • 9: 1800〜1899年生まれ男性
    • 0: 1800〜1899年生まれ女性
    • 1: 1900〜1999年生まれ男性
    • 2: 1900〜1999年生まれ女性
    • 3: 2000〜2099年生まれ男性
    • 4: 2000〜2099年生まれ女性
  • nnnnは出生地コード。邑・面・洞ごとに固有番号が行政自治部によって与えられる。
  • mは一貫番号。その日に提出された出生届のうち何番目であったかを表す。
  • cはチェックディジットである。
以下べた書きコード
<?php
 
#$code = $_GET['code'];
 
// 必須チェック
if (empty($code)) {
	$msg = '住民登録番号が入力されていません。';
	echo $msg;
	exit;
}
 
// - チェック
if (!preg_match('/-/', $code)) {
	$msg = '-をつけて住民登録番号が入力されていません。';
	echo $msg;
	exit;
}
 
// -で分ける
$cd = explode('-', $code);
 
// 桁数チェック
if (strlen($cd[0]) != 6) {
	$msg = '住民登録番号の桁数が違います。';
	echo $msg;
	exit;
} elseif (strlen($cd[1]) != 7) {
	$msg = '住民登録番号の桁数が違います。';
	echo $msg;
	exit;
}
 
// -より前の日付チェック
// yymmdd 生年月日
// 最初の2桁は西暦の下2桁しかないため、1800, 1900, 2000のどの年代生まれか不明だが閏年は4年に1度なので決め打ちで1900年代とした
$year = "19" . intval(substr($cd[0], 0, 2));
$month = intval(substr($cd[0], 2, 2));
$day = intval(substr($cd[0], 4, 2));
if (!checkdate($month, $day, $year)) {
	$msg = '住民登録番号の前6桁が不正な日付です。';
	echo $msg;
	exit;
}
 
// -より後の性別番号チェック
// 上記基本知識の通り、生まれた年代につき男女の数値が異なるが、生年月日の西暦下2桁しか分からない為、9, 0, 1, 2, 3, 4であるかのチェックのみ
$s = intval(substr($cd[1], 0, 1));
if (!in_array($s, array(9, 0, 1, 2, 3, 4))) {
	$msg = '住民登録番号の後7桁の最初の数値が不正です。';
	echo $msg;
	exit;
}
 
$total = 0;
$num = $cd[0] .$cd[1];
 
// 住民登録番号を配列に入れる
for($i=0; $i < 13; $i++) {
	$id[$i] = intval(substr($num, $i, 1));
}
 
// 計算用数値を算出
// 掛ける数値は固定で、2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5 らしい
$total = $id[0]*2 + $id[1]*3 + $id[2]*4 + $id[3]*5 + $id[4]*6 + $id[5]*7 + $id[6]*8 + $id[7]*9 + $id[8]*2 + $id[9]*3 + $id[10]*4 + $id[11]*5;
 
// 必ず11での剰余を計算
// 割る素値は必ず11
$result1 = $total % 11;
 
// 11から上記剰余を引く この値と住民登録番号の最終桁数をチェックする
$result2 = 11 - $result1;
// 2桁の場合は、10で剰余を出すらしい
if ($result2 > 9) {
	$result2 = $result2 % 10;
}
 
// 最終チェック
if ($id[12] != $result2) {
	$msg = '不正な住民登録番号です。';
	echo $msg;
	exit;
} else {
	$msg = '正しい住民登録番号です。';
	echo $msg;
	exit;
}
 
?>
[]