変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

counterizeiiのPHP Notice: Undefined variable:が酷い

counterizeiiのbrowsniff.phpの1207、1443、1738行目で
宣言していないpda_urとpda_verとpda_codeとpda_nameって変数を使っている。
とエラーが連発。

  • 最終更新: 4年前

なんで随分と気が付かなかったというか・・・
PHPでは未定の変数はnullが返るので、不都合はないけど、ログにいっぱいエラーが出てくるので削除。
範囲指定で、正規化表現 (\$[0-9A-Z_a-z]+) を使って、isset(\1)?\1:null に置換。
browsniff.phpの1207行目は
return array( isset($browser_name)?$browser_name:null, isset($browser_code)?$browser_code:null, isset($browser_ver)?$browser_ver:null, isset($browser_url)?$browser_url:null, isset($os_name)?$os_name:null, isset($os_code)?$os_code:null, isset($os_ver)?$os_ver:null, isset($os_url)?$os_url:null, isset($pda_name)?$pda_name:null, isset($pda_code)?$pda_code:null, isset($pda_ver)?$pda_ver:null, isset($pda_url)?$pda_url:null);
browsniff.phpの1443、1738行目は
return array(isset($os_name)?$os_name:null, isset($os_code)?$os_code:null, isset($os_ver)?$os_ver:null, isset($os_url)?$os_url:null, isset($pda_name)?$pda_name:null, isset($pda_code)?$pda_code:null, isset($pda_ver)?$pda_ver:null, isset($pda_url)?$pda_url:null);
に置き換わる。
counterize.php本体にもあったので、

442c442
< function counterize_gethourlystats($hour = "undef", $type = both)
---
> function counterize_gethourlystats($hour = "undef"/*, $type = both*/)
990c990
<               if($row->url)
---
>               if(isset($row->url))
1044,1045c1044,1045
<       <?php
<
---
>       <?php $items = 0;
>       $complete_amount =0; $max = 0;
1055c1055
<
---
>       $i = 0;
1162c1162
<       <?php
---
>       <?php $i = 0;

でもjetpackもtimezone未設定で結構ログを吐き出している。
/wp-content/plugins/jetpack/modules/holiday-snow.phpの
mktime()、date_create()、strtotime()、date()を使ってる場所で、
It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.
が出る。
wp-setting.phpで
// WordPress calculates offsets from UTC.
date_default_timezone_set( ‘UTC’ );
しているせいだけど、これを変えると、ボロボロになりそうなので
jetpack_is_holiday_snow_season()のそこを
date_default_timezone_set( ‘JST’ );
date_default_timezone_set( ‘UTC’ );
で括ってみた。



phpmyadminのアップデートが大杉?

ここ最近 phpmyadminを開くと

最新のがあります!アップデートしてください!

のまま、翻訳が進まないのかな?と思ったが
更新履歴を見ると、毎週アップデートしていた。
なので
ログインがおかしくなったり、
真っ白になったり、
で、困らない限り、
rc が 付くバージョンが出るまで待つことにした。
rc のリリースノートが見当たらないのはなぜだろう?
トップページがその代わりなのかな?
 
 
 



KVMホスト作成 ~Q1900DC-ITXの場合~

J1900のKVMホストを入れ替えたら、その間の記事は消えてしまった。
SCPで丸ごとNUCに戻したハズなのに?
SCPは上書きが苦手だったようだ。
CentOS7のバージョンのnuc(7.0)とJ1900(7.1)のせいか
タイムゾーンの設定が違っていたような気もする。

  1. CentOS7のネットワークインストール版をダウンロード。
    • http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1503.iso
    • 今のバージョンは、7.1.1503 らしい。
  2. Win32DiskImagerをダウンロード。
    1. http://sourceforge.jp/projects/sfnet_win32diskimager から
    2. Win32DiskImager-0.9.5-install.exe をダウンロード。
    3. パソコンにインストール。
    4. 起動してCentOS-7-x86_64-NetInstall-1503.isoをUSBメモリに書き込む。
  3. Q1900DC-ITX本体裏面にUSBメモリを挿し、電源ON、【F2】でUEFIからUSBメモリで起動。
  4. ブート画面でInstall CentOS 7を選択。
  5. インストーラー画面での設定
    1. WELCOM TO CENTOS7
      1. 左のリストから【日本語】を選択。 ※スライダーが中央にくるあたり。
      2. 【続行】ボタンを押す。
    2. ネットワークとホスト名 を選択。
      1. 画面右上のオフ⇒オン
      2. ハードウェアアドレスをメモる。
      3. enop3s0 ※以前のバージョンまではeth0だった。今はeno**** と不定。nucではenop1
        1. DHCPで割り当てられ表示されたIP(192.168.*.*)をメモる。
          1. 所定のIPアドレスを指定されている場合はkvmのブリッジで使用する
            1. ココは仮のIPアドレスでよい。
        2. 全般:この接続が利用可能になった時に自動的に接続するにチェック。
        3. IPv6のセッティング:方式 無視を選択
      4. 【保存】ボタンを押す。
      5. 画面左下:local.host.local になっているホスト名を正しい名前に変える。
      6. 【完了】を押す。
    3. ソフトウェア の インストールソース に【!】が付いていたら、選択。
      1. http://の後に ftp.riken.jp/Linux/centos/7/os/x86_64/ と入力し、【完了】を押す。
      2. 入力が正しければ先の【!】にURLが表記。
    4.  システム の インストール先 に【!】が付いていたら、選択。
      1. HDDの絵に【!】を付け、空容量が十分なら、画面左上の【完了】を押す。
      2. 空容量は足りないが、HDDを全部書き換えていいのなら
        1. 【領域を確保する(R)】ボタンを押す。
        2. 【すべて削除】ボタンを押し、アクションの列が保存から削除に変わったのを確認。
        3. 【領域を確保する(R)】ボタンを押す。
        4. ●パーテーション構成を行いたい を選択し、【完了】を押す。
        5. 既存LMの名前を選択し「-」を押し、一旦パーテーションを全消。
        6. 自動のリンクを押し、パーテーションを作り直し。
    5. ソフトウェアの選択 が 未選択なら、選択。
      1. 最小構成 にチェックが入っていることを確認し、【完了】を押す。
    6. KDUMP が 無効 になっていたら、選択。
      1. 手動を選択し、【完了】を押す。
    7. 【インストールを開始】を押す。
    8. インスト中に
      1. rootのパスワードを設定  安易なパスワードの場合は【完了】ボタンを2度押して抜ける。
      2. ユーザを作成        システムのメールを受け取るユーザを作っておく。
    9. ・・・インスト・・・
    10. 【再起動】ボタンを押す。
      • 今までは、その前にUSBメモリは外していたが、
      • 外すとカーネルがパニックになるので、
      • UEFIが起動したら電源を落とし、その後に外す方がよさそう。
  6. ここからはTeraTermで接続。IPアドレスは上の5.2.3.1でメモってあるはず。
  7.  yumリポジトリィを更新
    1. # yum -y update
  8. yum-cronをインスト
    1. # yum -y install yum-cron
    2. # systemctl start yum-cron
    3. # systemctl enable yum-cron
  9. SeLinuxを外す
    1. # setenforce 0
    2. # getenforce
      • Permissive
    3. # ls -l /etc/sysconfig/selinux で リンクファイルになっていたので、そのリンク先を修正する。
    4. sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    5. # reboot
    6. # getenforce
      • Disabled になっているハズ。
  10. 開発ツールなどをまとめてインスト
    1. KVMをインスト
      1. yum -y install qemu-kvm libvirt virt-install bridge-utils virt-top
        1. /etc/sysconfig/libvirt-guests を編集
          • #ON_SHUTDOWN=suspend を有効化
            • するだけでは・・・まだゲストのDBが壊れる!
            • ⇒ ON_SHUTDOWN=shutdown
          • #SHUTDOWN_TIMEOUT=300 を有効化
            • ⇒ SHUTDOWN_TIMEOUT=300
      2. とりあえず起動
        1. systemctl start libvirtd
        2. systemctl enable libvirtd
    2. wgetをインスト
      1. yum -y install wget
    3. gccをインスト ※nkfをコンパイルするため
      1. yum -y install gcc
    4. nkfをインスト
      1. # cd
      2. # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
      3. # tar zxvf nkf-2.1.3.tar.gz
      4. # cd nkf-2.1.3
      5. # make && make install
      6. # cd
      7. # rm -rf nkf-2.1.3*
      8. # ln -s /usr/local/bin/nkf /usr/bin/nkf
    5. mailをインスト
      1. yum -y install mailx
      2. # echo “root: ******” >> /etc/aliases
      3. # newaliases
      4. # echo “aliases test” | mail root
  11. ブリッジ接続用のファイルを作成
    • nmcli c add type bridge autoconnect yes con-name br0 ifname br0
  12. eno1をブリッジ接続に変える
    • ブリッジに繋ぐので一旦削除。この直後!古来より保持され続けた接続済回線が切れる!
      • nmcli c delete enp3s0
    • 便利な電脳空間の接続が絶たれてしまったので、ワイヤー(コンソール)に接続
    • /rootにスクリプトを貼っておけばよかった
      • なぜかそんな時に限って打ち込むコマンドがとても長い法則!!!
      • nmcli c add type bridge-slave autoconnect yes con-name enp3s0 ifname enp3s0 master br0
      • そしてreboot
  13. virbr0が使用中のままの場合。
    • # virsh net-list で Defaultがactive なのを確認。
    • # virsh net-dumpxml default で <bridge name=’virbr0′ stp=’on’ delay=’0’/> を確認。
    • # virsh net-destroy default でvirbr0を削除
    • # virsh net-autostart default –disable で再起動後にvirbr0が再生成されるのを阻止
    • # virsh net-list –all で inactive  なのを確認。
  14. br0の状態
    1. # brctl show でSTP enabled の下noの場合
      1. # systemctl restart network でネットワークを再起動してみる。
      2. # brctl show でSTP enabled の下yesに変わっていることを確認。
      3. bridge name     bridge id       STP enabled     interfaces
        br0                     ****.*****     yes 
  15. IPアドレスを確認 xxx.xxx はIPアドレス **:**:**:**:**:** はMACアドレス
    1. # ip addr
    2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
      2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast    master br0 state UP qlen 1000
      link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
      6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
      link/ether d0:50:99:2b:20:7a brd ff:ff:ff:ff:ff:ff
      inet 192.168.xxx.xxx/24 brd 192.168.1.255 scope global dynamic br0
      valid_lft 14292sec preferred_lft 14292sec
      inet6 ****:***:****:****:****:****:****:****/64 scope global dynamic
      valid_lft 14292sec preferred_lft 12492sec
      inet6 ****::****:****:****:****/64 scope link
      valid_lft forever preferred_lft forever
      7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0
      state UNKNOWN qlen 500
      link/ether ****::****:****:****:**** brd ff:ff:ff:ff:ff:ff
      inet6 ****::****:****:****:****/64 scope link
      valid_lft forever preferred_lft forever
    3. enp3s0にIPアドレスが割り当てられていればOK。
  16.  これで仮想化ゲストを作成できるハズ
      • 今回もスクリプトで転送したので未確認。
      • VMNAME=$1
        USER=$2
        DEST=$3
        scp /var/lib/libvirt/images/${VMNAME}.qcow2 ${USER}@${DEST}:/var/lib/libvirt/images
        scp /etc/libvirt/qemu/${VMNAME}.xml ${USER}@${DEST}:/etc/libvirt/qemu
        echo ${USER}@${DEST}: virsh define /etc/libvirt/qemu/${VMNAME}.xml
        echo ${USER}@${DEST}: virsh&amp;amp;amp;nbsp; start&amp;amp;amp;nbsp; ${VMNAME}
        ssh ${DEST}
        
  17. パソコンからメールを受信できる様に postfixとdovecotを設定する
  18. 負荷や温度が気になるならMRTGも入れる。
  19. ホスト名を間違えていた場合
    • hostnamectl set-hostname  ****.*****.*** で直す。


【また】KVMゲストがSPICEでつながるようになった?

前回の続きです。
virsh start Android4.4
で、Android-x86を起動したら、
何事も無かったかのようにSPICEクライアントで接続できました。
明日も確認した方がよさそう。
【想定される状況】
KVMで、SSLがらみの設定を【変更(初回設定を除く)】しても、rebootしようがpoweroffしようが、実時間で丸1日は変更内容が反映されない。
【想定される原因】
使用しているqemuの都合なのかもしれない。
WindowsのSPICEクライアントの都合かもしれない。
【想定される本当の原因】
利用しているパッケージのクセはなかなか判らない。
【真の原因】
ホスト側のfirewalldの設定ミスで動作が不安定だったようです。(何気なくログが変だった。
ちゃんと直したら、SPICEは全く繋がらなくなりました。(笑
時々
systemctl status firewalld

firewall-cmd –state
で動作確認が必要なようです。
なのでSPICEクライアントでゲストに繋ぐ場合は
firewall-cmd –zone=public  –permanent –add-port=${指定したポート}/tcp
systemctl restart firewalld
と設定の変更と反映が必要でした。
ログは
C:\Users\${ユーザ名}\AppData\Roaming\spicec\spicec.log
にあるので状況を見るのにはいいかも。
ポート自動割り当て時は –add-service=livbirt とか –add-service=livbirt-tls でもいいのかもしれないけど
それも想定内の設定範囲だけで、apacheのポートを8099とかに替えたらサービス指定はダメかもしれない。
【その他の問題点】
SPICEクライアントでAndroid-x86を開くと、マウスがロックされてしまい、Android-x86を画面の上部をドラッグして設定メニューを引き出し、POWER-OFFを選択してAndroid-x86の電源をOFFしないといけない。
【解決策】
RedHatのマニュアル(第6章 仮想デスクトップの使い方)に、マウスのロックを解除するには Shift+F12 を押します。
と書かれていた。
これは試験には出ないでしょうが、必ず暗記するしかない様です!
他のショートカットは、クライアントのタイトルバーをマウスでクリックするとプルダウンメニューから選択できます。
【全般】
ブログに書いておけば、忘れても大丈夫と思ってたけど
記事が古くなって意味が無くなってたり、
ブログに書いておいたので、安心してすっかり忘れてたり、
※しかもブログサーバー自体を調整中だったり・・・(汗
で、スマホで調べてたら、自分のサーバーだったり・・・(勿論、止まってる!
普通は自分のサーバーの記事がヒットすると嬉しいハズだけど・・・(止まってるのがバレている。
恥ずかしいとかそれ以前に、
J1900 mini-ITxにブログサーバーを切り替えてから、
調整した方が、自分の記録を読みながら調整できて便利かもしれないと思った。
ps.
virt-installで

--graphics spice,port=5900,listen=0.0.0.0 ・・・
の様にportを指定するとTLS指定になってしまうらしいので
ハズした方が良さそう。
portを指定する場合は /etc/libvirt/qemu.conf の
  • spice_listen = “0.0.0.0”
  • spice_tls = 1
  • spice_tls_x509_cert_dir = “/etc/pki/libvirt-spice”

あたりがコメントになっているので
コメントを解除し、かつ電子署名を作成しないといけないだろう。
 
 


    


【また】KVMゲストがSPICEでつながらなくなった?

ブログ鯖のホスト側は、
http://www.spice-space.org/page/SSLConnectionをマネして証明書を作り、/etc/pki/libvirt-spiceに*.pemをコピー。
/etc/libvirt/qemu.confで下記3か所のコメントを解除。

  • spice_listen = “0.0.0.0”
  • spice_tls = 1
  • spice_tls_x509_cert_dir = “/etc/pki/libvirt-spice”

 
# systemctl restart libvirtd
でうまくいっていたハズだった。
1回繋がったけど
qemu.confを元に戻すと当然ダメだけと
もう1回設定しなおしたら、restartしてもrebootしてもダメだった。
いつものことだが、明日には治っているだろう。
それでもダメなら・・・



ASRock Q1900DC-ITX そしてSPICEがまた繋がらない

J1900って、1年くらい前の型落ちCeleronでクロック2GHzでクァッドコアが売りでした。
去年の暮頃にさらにパワーアップしたJ2900というPentiumが出てます。
今回はマザボがDCアダプター対応のASRock Q1900DC-ITXをチョイスしました。
※ツクモの65WのACアダプター。マザボとセットなら2500円のPOPに釣られた訳ではありません。
※家に戻って価格チェックをしたら・・・昨日より2千円も下がっていた。orz
このQ1900DC-ITXはASRockらしくさで満ちています。

  1. メモリは1.5VのSO-DIMMのDDR3も使える。
    • なのでブログ鯖から1個借りました。
  2. USB3が4個(フロント2+リア2)も使えます。
  3. USB2が4個(フロント2+リア2)も使えます。
  4. SATA3が2個。
  5. SATA2が2個。
  6. UEFIの背景が望遠鏡の写真。
    • 星がチカチカ光ります。
  7. UEFIの背景になぜかQRコード。
    • スマフォのカメラで覗くをマニュアルのURLだった。
  8. ACアダプタ直挿し専用。

J1900は低発熱ですが
最近のmini-ITxのケースは
なぜか大きいものばかりなので、
ZOTACのATOMマザボの保管ケースになっていたものを流用しました。
電源を入れると、CentOS7をインストした後もUEFIが起動するので、間を置いてリセットが必要。
Windowsをインストすると違うかもしれない。
ps.
Win10プレビューを作ってみる
インストールの開始中…
割り当て中 ‘Win10.qcow2’                            |  15 GB     00:00
ERROR    サポートされない設定: SPICE TLS ポートの自動割り当てが要求されましたが 、TLS が qemu.conf において無効化されています
仮想マシンのインストールが成功したように見えません。
成功したのならば、次のように実行することにより、仮想マシンを再起動できます:
virsh –connect qemu:///system start Win10
そうでなければ、インストールを再起動してください。
あれ?



人工知能やロボットには奪われない職業

1.プログラマー

物事がうまくいった試しが無い職業。

人工知能には「要件定義(言いたい放題)」から有意義な意味を読みとることはできない。

プログラマーは何でもコピペですませるので、ロボットがもっともマネがしやすい職業だが、プログラマーは毎日違うことをしているので、ロボットの学習は永遠に終わらない。

物事がうまくいく(人工知能やロボットが参入可能)ようになったら、プログラマーという職業からその部分が黒く塗りつぶされるのではない。プログラマーが人工知能やロボットをこき使うようになるのだ。

2.ゲームマスター
審判ではない、オンラインゲームのプレイヤーのサポーター&警備員。
トラブルの元が人間に由来するものなので、トラブルのタネは尽きない。
その上、オンラインゲームのライフタイムは短くバージョンアップが頻繁に行われるため、人工知能やロボットがバージョンアップの内容を全て覚える前に次のバージョンアップがやってくる。
3.ゲームプレイヤー
すでにBOTと呼ばれるものがあり、今では生身の人間となかなか区別できない仕上がりに達している。
しかし、全てBOTになってしまうと、結果はおのずと見えてくる。
 
 



ロケットエンジンと魔法の絨毯

ロケットは外気を吸気しない反動推進機関であるから、
一番効率が高いのは、噴射したガスのエネルギーを全てロケット本体に伝わる時だ。
静止している外野(地上から打ち上げるなら地上にいる人)視点から観て、噴射したハズのガスがその場に止まって見える時、つまり、ロケットの速度 = 噴射したガスの噴射速度 となる。
とは云え、それはそれなりにロケットの速度が上がった時の話で、ロケットの速度=0km/秒だったら、ガスを噴射するだけ無駄だから噴射しないのでは、ロケットは打ち上げられない。
最初は効率が悪い事を承知の上で、ロケットをガス噴射で「蹴飛ばさなければならない」のだ。そして、ロケット速度が上がれば上がるほど、燃焼効率が良くなる。
化学燃焼のロケットのガスの噴射速度は3.0km/秒が普通、高くても4.5km/秒が上限らしいが、実測ではなく、比推力(単位:秒=推力/(推進剤流量・重力加速度))×10倍で計算する様だ。
ここから、沢山のノズルを用意して一気に燃料を使えば推力は多くなるが、推進剤流量も同じペースで増え、比推力は変わらないから、噴射速度も変わらないので、燃料効率も上がらないことが判る。
ロケットは只でさえ重量比が酷いので、とりあえず常時最大出力のまま飛べるなら最高だが、地上付近は大気圧が高く加速しすぎて一気に空気抵抗が大きくならない程度に速度を抑えるしかなく仕方なく大量の燃料を積みこむことになるので、燃焼効率よりも経済性を優先していいだろう。極端な話、大気がかなり薄い高層まで打ち上げられるなら、何でもいいのだ。
しかし、ロケットの地上からの打ち上げは化学ロケットで行われている。
1つには人口衛星を地球の周回軌道まで打ち上げられる巨大なロケットを大気がかなり薄い高層まで持ち上げられるのはロケット・エンジンしかないこと。
巨大なロケットを搭載できる巨大なジェット機を建造すれば出来なくはないのだろう。あのスペースシャトルを運搬する貨物機もあるのだ。しかし、スペースシャトルを載せただけでも、燃費(航続距離が通常の5分の1)がかなり悪くなってしまったようで、これをあの巨大な燃料タンクも一緒に打ち上げるには、エンジン、燃料、機体の強化など様々な課題があるように思えるし、今は巨大ジェット機が営業的に難しい時期でもあり、今後も期待薄。
2つめにはロケットの凄さを使える宣伝効果。
仮に気球や航空機ではかなり高層まで上がっても、その先はもうロケットエンジンを使うしかない。
それに、化学ロケットよりも高速でガスを噴射し燃費が良いロケット(比推力が大きい)はあるが、推力<<地球の重力なので、まだ出番ではない。
なので、地球の周回軌道まではこれからも化学ロケットの出番が続くようだ。
もっと安上がりで安全な方法ってないのかな?
例えば航空機の翼の上面を分子構造が三角錐を繋いだ構造で上方向からの大気の気体分子の直球だけをひょいっと避けられる素材(爆)で覆うと対空速度は関係なく大気圧差で浮力を得られるから、太陽光を浴びながらノンビリと上昇限界高度まで待てばいい。
え?降りる時?その特殊な素材をロールに巻き取れば浮力が減って降りられます。(笑
 
 



Counterize II

特に要らないものになってしまったけど、まだ付けている。
このカウンタの counterize_gethitstoday() は
日付をまたぐ頃におかしくなるので
wp-settings.phpの
date_default_timezone_set(UTC)を
date_default_timezone_set(UTC+9)にしても
WordPressのバージョンアップで上書きされるので放置してた。
でもテーマは滅多にアップデートされないので
修正に丁度良いというのを見つけた。
使っているテーマのfunction.phpに
date_default_timezone_set( ‘Asia/Tokyo’ );
と書くだけ。
でも、上書きされない訳では無いので、
 
ウィジェットの
counterize_gethitstoday()
の前に
date_default_timezone_set( ‘Asia/Tokyo’ );
と書くことにした。
治るかな?
あ、yesterday: ****   は、counterize.php に追記したものだった。

# adds 2013/04/18
# Returns amount of hits yesterday.
function counterize_gethitsyesterday()
{
$today = date("Y-m-d");
$yesterday = date("Y-m-d",strtotime("-1 day"));
$sql = "SELECT COUNT(1) FROM ".counterize_logTable()." WHERE timestamp >= '$yesterday' AND timestamp < '$today' ";
$wpdb =& $GLOBALS['wpdb'];
return $wpdb->get_var($sql);
}

あれ?上書きされてない?偶然?
 
ps.
ウィジェットに
<?php date_default_timezone_set( ‘Asia/Tokyo’ ); ?>
と書いてもダメっぽい。
function counterize_gethitstoday()
{
global $wpdb;
$today = date(“Y-m-d”);
$sql = “SELECT COUNT(1) FROM ” . counterize_logTable() . ” WHERE timestamp >= ‘{$today}'”;
return $wpdb->get_var($sql);
}
のdateの設定が間に合わないらしいので、
テーマのfunction.phpに
date_default_timezone_set( ‘Asia/Tokyo’ );
を書かないと効果が出なかった。
php.iniに
date.timezone = “Asia/Tokyo”
と書いても
wp-settings.phpの
date_default_timezone_set(UTC)で
無駄。

function counterize_gethitstoday()
{
global $wpdb;
//$today = date("Y-m-d");
$today = date("Y-m-d H:i:s");
$today = get_date_from_gmt($today, "Y-m-d");
か
$today = get_gmt_from_date($today, "Y-m-d");
$sql = "SELECT COUNT(1) FROM " . counterize_logTable() . " WHERE timestamp >= '{$today}'";
return $wpdb->get_var($sql);
}

も効果なし。




top