このページを共有


今月のカレンダー



1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリ一覧

ただの日記(936)
原付生活(3)
子育て日記(11)
PC関連(11)
もろもろ日記(911)

競馬+POG(1654)
当たらない予想と反省会(708)
POGネタ(58)
競馬について考える(19)
競馬もろもろ(223)
ダービーウィーク!(14)
2011年競馬場訪問記(27)
2012年競馬場訪問記(53)
2013年競馬場訪問記(62)
2014年競馬場訪問記(40)
2015年競馬場訪問記(43)
2016年競馬場訪問記(25)
2017年競馬場訪問記(36)
2018年競馬場訪問記(37)
2019年競馬場訪問記(34)
2020年競馬場訪問記(24)
2021年競馬場訪問記(37)
2022年競馬場訪問記(52)
2023年競馬場訪問記(70)
2024年競馬場訪問記(71)
2025年競馬場訪問記(13)
地方競馬馬主(5)
ひとくち馬主(3)

ホームページ製作(362)
PHPの備忘録(14)
CSSの備忘録(5)
JavaScriptの備忘録(2)
ホームページもろもろ(289)
Flashの備忘録(12)
管理人の備忘録(21)
スマフォ用サイト作成(19)

自宅サーバ(367)
FreeBSD(17)
Apache(4)
PHP(5)
MySQL(18)
サーバもろもろ(149)
障害連絡(133)
リニューアルプロジェクト 2011-2012(41)

お仕事(48)
お仕事(48)

旅の記録・水曜どうでしょう関連(43)
水曜どうでしょう(11)
2009年四国お遍路(6)
2009年アンコールワット(5)
2010年ベトナム(3)
2010年いっそ九州(5)
2010年北海道179市町村(5)
2011年春の一人旅(2)
2011年四国お遍路(6)


先月までのネタ

2025年
2025年3月(2)
2025年2月(11)
2025年1月(7)

2024年
2024年12月(11)
2024年11月(7)
2024年10月(10)
2024年9月(6)
2024年8月(6)
2024年7月(7)
2024年6月(7)
2024年5月(5)
2024年4月(5)
2024年3月(7)
2024年2月(8)
2024年1月(13)

2023年
2023年12月(11)
2023年11月(8)
2023年10月(10)
2023年9月(7)
2023年8月(9)
2023年7月(10)
2023年6月(6)
2023年5月(10)
2023年4月(5)
2023年3月(4)
2023年2月(6)
2023年1月(6)

2022年
2022年12月(9)
2022年11月(8)
2022年10月(5)
2022年9月(5)
2022年8月(2)
2022年7月(6)
2022年6月(9)
2022年5月(3)
2022年4月(3)
2022年3月(4)
2022年2月(7)
2022年1月(5)

2021年
2021年12月(8)
2021年11月(9)
2021年10月(4)
2021年9月(3)
2021年8月(2)
2021年7月(6)
2021年6月(12)
2021年5月(2)
2021年4月(8)
2021年3月(2)
2021年2月(7)
2021年1月(2)

2020年
2020年12月(8)
2020年11月(3)
2020年10月(4)
2020年9月(1)
2020年8月(2)
2020年7月(7)
2020年6月(6)
2020年5月(9)
2020年4月(11)
2020年3月(8)
2020年2月(5)
2020年1月(9)

2019年
2019年12月(4)
2019年11月(5)
2019年10月(7)
2019年9月(2)
2019年8月(2)
2019年7月(8)
2019年6月(2)
2019年5月(3)
2019年4月(2)
2019年3月(4)
2019年2月(3)
2019年1月(1)

2018年
2018年12月(8)
2018年11月(5)
2018年10月(10)
2018年9月(6)
2018年8月(1)
2018年7月(7)
2018年6月(5)
2018年5月(7)
2018年4月(19)
2018年3月(3)
2018年2月(3)
2018年1月(11)

2017年
2017年12月(14)
2017年11月(11)
2017年10月(18)
2017年9月(18)
2017年8月(21)
2017年7月(29)
2017年6月(26)
2017年5月(23)
2017年4月(18)
2017年3月(11)
2017年2月(11)
2017年1月(16)

2016年
2016年12月(25)
2016年11月(24)
2016年10月(30)
2016年9月(15)
2016年8月(16)
2016年7月(15)
2016年6月(18)
2016年5月(30)
2016年4月(28)
2016年3月(29)
2016年2月(26)
2016年1月(32)

2015年
2015年12月(30)
2015年11月(29)
2015年10月(30)
2015年9月(27)
2015年8月(28)
2015年7月(28)
2015年6月(28)
2015年5月(29)
2015年4月(30)
2015年3月(28)
2015年2月(26)
2015年1月(29)

2014年
2014年12月(31)
2014年11月(28)
2014年10月(31)
2014年9月(29)
2014年8月(29)
2014年7月(31)
2014年6月(31)
2014年5月(30)
2014年4月(30)
2014年3月(28)
2014年2月(27)
2014年1月(31)

2013年
2013年12月(29)
2013年11月(27)
2013年10月(29)
2013年9月(27)
2013年8月(28)
2013年7月(28)
2013年6月(29)
2013年5月(29)
2013年4月(30)
2013年3月(26)
2013年2月(24)
2013年1月(29)

2012年
2012年12月(28)
2012年11月(27)
2012年10月(28)
2012年9月(30)
2012年8月(31)
2012年7月(33)
2012年6月(32)
2012年5月(33)
2012年4月(35)
2012年3月(30)
2012年2月(27)
2012年1月(31)

2011年
2011年12月(25)
2011年11月(25)
2011年10月(28)
2011年9月(28)
2011年8月(28)
2011年7月(28)
2011年6月(27)
2011年5月(26)
2011年4月(16)
2011年3月(9)
2011年2月(11)
2011年1月(9)

2010年
2010年12月(12)
2010年11月(11)
2010年10月(8)
2010年9月(13)
2010年8月(10)
2010年7月(20)
2010年6月(6)
2010年5月(9)
2010年4月(2)
2010年3月(3)
2010年2月(5)
2010年1月(8)

2009年
2009年12月(9)
2009年11月(2)
2009年10月(4)
2009年9月(3)
2009年8月(1)
2009年7月(9)
2009年6月(3)
2009年5月(14)
2009年4月(10)
2009年3月(11)
2009年2月(9)
2009年1月(10)

2008年
2008年12月(1)
2008年11月(1)
2008年10月(1)
2008年9月(5)
2008年8月(1)
2008年7月(1)
2008年6月(2)
2008年5月(1)
2008年4月(1)
2008年3月(2)
2008年2月(7)
2008年1月(7)

2007年
2007年12月(11)
2007年11月(7)
2007年10月(8)
2007年9月(12)
2007年8月(11)
2007年7月(5)
2007年6月(16)
2007年5月(8)
2007年4月(2)
2007年3月(14)
2007年2月(2)
2007年1月(8)

2006年
2006年12月(4)
2006年11月(6)
2006年10月(7)
2006年9月(10)
2006年8月(9)
2006年7月(20)
2006年6月(13)
2006年5月(3)

2005年
2005年9月(13)
2005年8月(13)
2005年7月(18)
2005年6月(24)
2005年5月(26)
2005年4月(26)
2005年3月(27)
2005年2月(22)
2005年1月(26)

2004年
2004年12月(29)
2004年11月(29)
2004年10月(26)
2004年9月(23)
2004年8月(12)


最近よく読まれてるネタ



今日は(共有)所有馬キューピッズアロー のレース観戦に、佐賀競馬場 へ行って来ました。(そしてシンガリ負け。)
(2025年3月6日のネタ:70回)

Excel VBAで「SPAT4自動投票システム」を作ってみました。
(2020年7月19日のネタ:55回)

地方競馬馬主 は全国の競馬場で馬主席 を使える?使えない?のまとめ。
(2023年12月3日のネタ:39回)

(自家製)競馬家計簿をヴァージョンアップしてみる。
(2015年1月5日のネタ:33回)

今年の岩手競馬が開幕!昨日は水沢競馬場 へ行ってきました。
(2025年3月12日のネタ:25回)

今年最初のJRA G1・フェブラリーステークスの観戦に、東京競馬場 へ行ってきました。
(2025年2月24日のネタ:18回)

今夜は競馬の話題を書こうと思ったんですが…。
(2014年3月13日のネタ:14回)

管理人の3泊4日4競馬場の旅!3日目は笠松競馬場 へ行ってきました。
(2025年2月7日のネタ:13回)

今年最後のJRAG1 ・ホープフルステークス の観戦に、中山競馬場 へ行ってきました。
(2024年12月28日のネタ:12回)

今夜は船橋競馬場 へ行ってきました。(久しぶりののんびり地元ひとり観戦。)
(2025年2月14日のネタ:10回)



最近のコメント



今日は改修工事真っ只中の #京都競馬場 (パークウインズ京都競馬場)へ行ってきました。(チョネ)

本日は笠松競馬場へ行ってきました。(あいべ)

管理人の今年の目標が一つ増えました…。(あああ)

まあそんなに書くことはありませんが…。(momo)

【管理人からご挨拶】 『The Sunday Breeze』は5月25日に開設19周年を迎えます。(アオヤギ)

4月からスタートする「Sunday Breeze POG!」の一部ルール追加について。(アオヤギ)

昨日「Sunday Breeze賞」の観戦に帯広競馬場へ行ってきました。(白イチゴ)

本日5月25日、「The Sunday Breeze」は18回目の誕生日を迎えました。(アオヤギ)

【「G1予想大会」プレリリース終了】皆様のご協力、本当にありがとうございました。(アオヤギ)

【再度お知らせとお願い】今週からの「G1予想大会」、新機能プレリリースを公開中です。(白イチゴ)



ネタの検索



管理人の競馬観戦記録


(2025年)

2011年以降の競馬観戦インデックス

JRA東京競馬場
2月16日 (共同通信杯)
2月23日 (フェブラリーS)

JRA中山競馬場
1月5日 (中山金杯)
1月19日 (京成杯)

JRA小倉競馬場
1月26日

水沢競馬場
3月11日

船橋競馬場
1月22日 (ブルーバードC)
2月14日

笠松競馬場
2月7日

姫路競馬場
2月6日

高知競馬場
2月5日

佐賀競馬場
1月25日
3月6日


管理人の競馬家計簿


(最近14日分)

2025年3月6日佐賀
32勝  回収率:27.3%

2025年3月8日中山
54勝  回収率:253.3%

2025年3月8日阪神
113勝  回収率:94.1%

2025年3月9日中山
113勝  回収率:91.6%

2025年3月9日阪神
104勝  回収率:106.2%

2025年3月9日高知
10勝  回収率:0.0%

2025年3月11日水沢
60勝  回収率:0.0%

2025年3月11日船橋
10勝  回収率:0.0%

2025年3月11日大井
10勝  回収率:0.0%

2025年3月12日船橋
10勝  回収率:0.0%

2025年3月12日高知
10勝  回収率:0.0%

2025年3月13日大井
10勝  回収率:0.0%

2025年3月15日中山
30勝  回収率:0.0%

2025年3月15日中京
41勝  回収率:43.6%

2025年3月15日阪神
30勝  回収率:0.0%

2025年3月16日中山
113勝  回収率:74.2%

2025年3月16日中京
50勝  回収率:0.0%

2025年3月16日阪神
95勝  回収率:186.5%

2025年合計
409140
勝率:34.2%  回収率:66.4%
(万馬券:0本的中)

2024年合計
1394381
勝率:27.3% 回収率:70.5%
(万馬券:12本的中)

2023年合計
1772537
勝率:30.3% 回収率:71.2%
(万馬券:11本的中)

2022年合計
2097563
勝率:26.8% 回収率:66.4%
(万馬券:29本的中)

2021年合計
2147527
勝率:24.5% 回収率:67.8%
(万馬券:24本的中)


管理人のつぶやき


(皆様のフォローをお願いします。)

「ホームページ製作」の「PHPの備忘録」ネタは、全部で14件あります。

新メンバーズページのログイン方式が出来上がりました。

前回出した画面とあんまり変わっていないかもしれませんが



現在のメンバーズページはブラウザ標準のダイアログで
ユーザIDとパスワードを入力する仕組みになっていますが
新しいメンバーズページでは上のような画面でログインすることになります。

んで
以前はメンバー登録時に
「ログイン情報の保持」を指定できるようにしてありました。
現在は無条件でログイン情報を保持するようになりました。
まあそれはそれで問題ですが…。

新しいメンバーズページでは、
ログイン時に保持するかどうかを選択できる機能を実装。
「ログイン情報保持」にチェックした場合は
最終ログインから3か月間はこのログイン画面を介さずログインできる仕組みです。
現在多くのサイトで利用されている仕組みですので
ここで多く説明する必要はないかもしれません。


んで
管理人はWebエンジニアではありませんので
今回この部分にだいぶ時間をかけてしまったわけですが
自分の備忘録として一応その仕組みを書いておきます。

技術的な話なので、
興味ない方は読み飛ばしてください。

-----

まず基本として
ログイン画面と、ログイン画面以外のページでは
認証ロジックが異なります。

ログイン画面以外の認証ロジックは
・ログインしているかのチェック
 →ログイン状態ではない場合はログイン画面に自動遷移。
  このとき、ログイン成功後この画面に戻ってこられるように
  自分のURI(Request_URI)を渡す
 →ログイン状態の場合は通常通り表示。

ログイン画面の認証ロジックは
・ログインしているかのチェック
 →ログインしている場合はトップページへ遷移。
 →ログインしていない場合、もしくはログインに失敗した場合は
  ユーザIDとパスワードの入力をしてもらう。
  正しいIDとパスワードの場合は、受け取った前画面のURIへ遷移。
  前画面のURIがない(いきなりログイン画面に飛んできた)場合は
  トップページへ遷移する。

これをPHPでSessionとCookieを使って導入すると

ログイン画面以外の認証ロジックは
include(…)で共通処理としておく。しかもページの最初に処理。
(Headerが送信される前に処理しないとダメ)

session_start()してから
$_SESSIONのユーザIDとパスワードを取得し
取得できない場合はheader(ログイン画面)でログイン画面へ。
その際はsession_destroy()で中途半端なセッションは消す。

$_SESSIONで取得できた場合は
いったんsession_destory()でセッションを削除する。
そしてsession_regenerate_id()でセッションIDを再作成したうえで
session_start()して$_SESSION=…で
ユーザIDとパスワードとログイン情報保持on/offをセッションに保存。

これ、なんでdestroyするかってところがミソ。

destroyしないと
session_set_cookie_params()関数が効かないんですよね。

結局、ログイン情報を保持するかしないかは
Cookieをいつまで生かしておくかって話。
それはsession_set_cookie_paramsを使って設定しますが
session_startをやってから設定しても意味がないので
いったんdestroyしてsession_set_cookie_params()してから
再度session_startするということ。

一応ロジックを書いておきます。
(当然一部修整してあります)

// セッションからユーザIDとパスワードを取得
// request_URIも取得
$ユーザID = $_SESSION["ユーザID"];
$パスワード = $_SESSION["パスワード"];
$ログイン情報保持on/off = $_SESSION["ログイン情報保持on/off"];
$リクエストURI= $_SERVER["REQUEST_URI"];

// データベースでユーザIDとパスワードを検索
// このユーザ、ホントに登録されているよね?って確認
$わお = mysqli_query($DBリンク,"select * from メンバー情報テーブル " .
" where ユーザID=’$ユーザID’ and パスワード=’$パスワード’");
$わおrow = mysqli_fetch_array($わお);

extract($わおrow);

if ($ユーザID==NULL) {
// 登録ユーザがいない場合(セッションに記録されていない場合)は
// セッションを破棄して、リクエストURIを持ってログイン画面へ遷移する
session_destroy();
setcookie(session_name(), "", time()-42000, "/",".sundaybreeze.jp");
setcookie("request",$リクエストURI);

header("Location: /ログイン画面");
exit;
} else {

// 登録ユーザがいて、ログインされている状態の場合は
// いったんセッションを破棄する(このとき$_SESSION[]は消しちゃダメ)
session_destroy();

// 再度セッションを開始
session_name("メンバー用サイト");

// いったんCookieの有効期限を0(ブラウザ閉じたら消去)に設定
session_set_cookie_params(0,"/",".sundaybreeze.jp");

// ログイン情報保持がonなら、Cookieの有効期限を30日(60秒×60分×24時間×60日)でセット
if ($ログイン情報保持on/off=="on") session_set_cookie_params(60*60*24*60,"/",".sundaybreeze.jp");

// 改めてセッションスタート
session_start();

// 改めてセッションにユーザID、パスワード、ログイン情報保持on/offをセット
$_SESSION["ユーザID"] = $ユーザID;
$_SESSION["パスワード"] = $パスワード;
$_SESSION["ログイン情報保持on/off"] = $ログイン情報保持on/off;


書いてませんが
当然一番最初にsession_start()は書いてあります(session_name("メンバー用サイト")とともに)
それと、最後にsession_write_close()も書いてあります。

このロジックを作るときに
管理人はRequest_URIを勘違いしてRefererと書いていて
無限ループに何度も陥りました(Session関係ないし←アホ)

まあとりあえずこれで問題なく動いているので(無駄な部分がいくつかあると思いますが)
当面はこのまま行こうと思います。

---

ということで
最大の難所だったログインのロジックが出来上がりましたので
あとはシコシコと各ページを書いていくだけ。

まずはログインがらみで

・新規ユーザ登録
・登録情報の変更・削除

の2画面と、今回新たに作成する予定の

・パスワードを忘れた場合の問い合わせ画面

を作っていこうと思います。

この3画面の作成には、いくつかデータベースの構成変更も伴いますので
ちょっとまた時間がかかるかもしれません。
状況はこのブログで逐一ご報告できればと思っています。

-----

さて。
明日、管理人は今週2回目の夜勤でございます。

去年までは夜勤の際はブログをお休みしていましたが
今年はできるだけ書いていこうと思います。
365日かけるかなぁ?

大したことは書けません(PCは持って行かないので:ケータイから書くので

週末の予定とか
サイト更新の今後の話とか
ちょろっと書ければと思っています。

[コメント読む(0)]  人気ブログランキングへ 

バッチのバグに困っています(「ァー」が「ゼ」に)

久々にまじめな技術ネタ。

最近、地方競馬の出走予定馬を取り込むプログラムをちょっといじったんですが
どうも変なデータが取り込まれてしまってます。

タイトルにも書きましたけど、
「ァー」が「ゼ」に置き換わるんです。

例えば、出走馬にヤマニンゼファー(古!)がいたとしましょう。

・・・うちのデータベースに取り込むと、
「ヤマニンゼフゼ」になってしまうんです。


原因は・・・ですね。

うちのデータベース、Webページなどは
EUC-JPという文字コードを使ってます。
ま、いわばUNIXでの標準文字コードですな。

で、「ァ(ちっさいア)」の文字コードはA5A1、
「−(伸ばし棒)」の文字コードはA1BC、
「ゼ」の文字コードはA5BC。

出走馬取り込みプログラムの中で・・・

// 全角スペ削除
= preg_replace(/ /,,);

ってね。

「(全角スペ)」の文字コード、A1A1。

「ァー」=A5A1A1BC
全角スペA1A1を取っ払うと、A5BC=「ゼ」
ちなみにstr_replace()でも同じ現象が発生します。

このあたり、プログラムをいじる前は、UTF-8で動いていたので
いままではうまくいってたんでしょうね。

さて。どう対処するか。
方法としては、文字コードを一旦変換するしかないんだろうな。
mb_stringがらみの関数をPHPマニュアルで調査・・・。

[コメント読む(0)]  人気ブログランキングへ 

スパムよけ画像を貼ってみました。

最近、変なコメントが多くて。
これがスパムなのか、どうなのかはわかりませんが、
スパムよけ画像をはることにしました。

JpGraphというPHP用のグラフ生成ライブラリを導入してますので
これを使って、画像を作っています。

作り方は簡単。

jpgraph_antispam.phpをインクルードします。
new AntiSpam()でインスタンスを生成します。
Strokeで画像を出力します。

以上。

require_once "jpgraph_antispam.php";
$spam = new AntiSpam();

// 生成する文字列の長さを決定する
$chars =$spam->Rand(5);

$spam->Stroke();


$charsにかかれた文字が格納されています。
入力してもらった文字が$charsと同じかどうか
判断すれば良いわけですね。

試しに使ってみたけど、
数字の7と小文字のfの区別がつかない。。。
7に横線が入ってるんだけど。。。

スパム画像の7これが7です。

スパム画像のfこれがfです。

ちょっと微妙?

[コメント読む(0)]  人気ブログランキングへ 

なんだか問題がいっぱい出てきた(ある意味昨日の続き)

やっぱだめかなぁ。

昨日の問題、やっぱりクリアになりません。

しかもIE6でも同じ現象が発生。
JavaScriptの関数自体はやっぱり1回しか呼ばれてません。
でも、
innetHTML = '<object data="なんとか.php"></object>'
だけが純粋に2回動いてるっぽい。

たぶん、<object>タグの動きなんだろうな。

この行が呼ばれる

とりあえず内部処理.PHPが動く

<object>タグを配置

また内部処理.PHPが動く

みたいな感じ?
結局、この行がどっからどの順番で動くか?ってことに
問題がありそう。

------

別の問題。

おとといの記事から引用。

「ちなみに、追加したスクリプトの
document.…の前の「top」は
内部処理.phpで生成されたHTMLから、さらに別パラメータなどで
表示エリアに内部処理.phpを再読み込みさせたい場合に必要です。」

IE6では動きません。
スクリプトのエラーになります。

本体ページと<object>の関係性が
IEとOperaでは違うみたい。

Operaでは
本体ページ←親子→<object>
なんだけど
IEでは、ほぼ他人みたい。

<object>タグの中のHTMLからJavaScriptで
topをつけても、自分自身(<object>タグの中のHTML)をさすみたい。

結局うまく動かない。

<object>を使うのはやっぱりあまりよろしくないか?
セキュリティ絡みもめんどくさそうだし。
かといって、<iframe>は使いたくないし。

他の代替表示方法はあるだろうか?

[コメント読む(0)]  人気ブログランキングへ 

昨日のソースにバグあり?

Opera7.23のバグなのか、ソースのバグなのか
まだはっきりわかりません。

追加したスクリプト中の
<object>タグの中の内部処理.php?パラメータが
なぜか2回呼ばれてる。

なぜ?

JavaScript内にデバッグを入れてみても
この関数が2回呼ばれてるわけではないみたい。
純粋にこの<object>が2回呼ばれてる?っぽい。

しかも、1回しか呼ばれないときもある。
タイミングによって、2回呼ばれるときもある。
というか、2回呼ばれることのほうが多い。

原因も対応策も未定。

[コメント読む(0)]  人気ブログランキングへ