エプソンダイレクト株式会社

2013年6月29日(土曜日)

WordPress の admin アカウント

Category: WordPress | Posted By at 23:37:03

WordPress という CMS を利用していると
アタックされることも少なくありません。

管理者の名前を admin にしていると
アタックを受けた挙句乗っ取られる可能性もあります。
だいたい admin( administrator:管理者の略)というくらいですから
なんでもできる権限が与えられている可能性は高いですから
こういうときには狙われやすいですよね。
乗っ取られると改竄の恐れもあります。
くれぐれも気を付けないといけません。

また WordPress は親切なことに
何度ログイン失敗しても標準ではロックアウトする機能はありません。
つまりその気があれば何度も何度もアタックを試みることができます。

できれば admin アカウントは削除し
別の名前の管理者アカウントで運用するべきです。

2013年6月21日(金曜日)

WordPress のトラブル対応中

Category: WordPress | Posted By at 23:36:16

お客様より WordPress のトラブル対応のご依頼を頂きました。
WordPress を使ったサイトを運営されていたようですが、
制作・管理を委託されていた会社さんが感染してしまい、
WordPress サイトが検索エンジンで
危険なサイトとして表示されてしまうとのこと。

む~~~、ちょっと厄介そうな感じです。
今日データを持ってきていただいたので中のソースを調べてみると、
どうやら header.php に異常なコードが見られます。
Trojan 系(トロイの木馬)のもののようで、
恐らく意図しない JavaScript が埋め込まれているようです。
見てみるとフリーのテンプレートを利用し
それを手直しして利用しているようです…。

それがプロの仕事か !? とちょっと疑問に思いながら… (_ _;;;

感染経路はいくつか考えられますが、

  • FTP アカウントが乗っ取られた
  • 管理しているパソコンがウイルスに感染した
  • そもそも悪意のあるテンプレートだった

等々…
色々考えられますが、修正しないといけないことに変わりはありません。

ここで、お客様の了解を得て FTP で入ってみてびっくり…。
全然知らない会社も同じサーバで運用されており内容が丸見えです…。
ぉぃぉぃ…本当に Web 制作会社としてお金もらってやる仕事じゃないぞ…。

しばらくは残存している問題がないかチェックしていきますが
あまりにひどい管理で、こんな同業者もいるのか…と怖くなりました。

2013年6月17日(月曜日)

Medoo を使ってみる ~その 4 ~

Category: オープンソース | Posted By at 22:53:42

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

今回は WHERE 句の説明を少々。
基本は第三引数で

$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<]" => 20	//	20 未満
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<=]" => 20	//	20 以下
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[>]" => 20	//	20 を超える
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[>=]" => 20	//	20 以上
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"age[<>]" => array( 20, 60 )	//	20 以上 60 以下
	)
);

というようにします。

論理演算もできます。

$r = $Db -> select ( 'test_table', 'username',
	array(
		"AND" => array(				//	且つ
			"age[>=]" => 20,		//	20 以上
			"gender" => 'female'	//	女性
		)
	)
);
$r = $Db -> select ( 'test_table', 'username',
	array(
		"OR" => array(				//	または
			"age[<]" => 20,			//	20 未満
			"gender" => 'male'		//	男性
		)
	)
);

とりあえず暑いのであまり難しいこと考えるのも大変でしょうし、
今日はこの辺で…。暑い…溶けるぅ~~~っ m(_ _m;;;

2013年6月16日(日曜日)

Medoo を使ってみる ~その 3 ~

Category: オープンソース | Posted By at 23:38:18

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

さて前回データを入れることができたので、
今度はそこから抽出してみましょう。
以前は結構クエリをゴリゴリ書いていたのですが
Medoo だとその辺がすっきりしている気がします。

$r = $Db -> select( 'tbl_sample', 'text', array( 'id' => 3 ) );

という感じで $r に配列として代入されます。
第一引数にテーブル名、第二引数にカラム名、
第三引数が where 句等になります。

where 句の使い方が Medoo の肝になる気がしますが、
第三引数一個だけしか用意されていないところから
ちょっとコツが要りそうな気がします。
基本は多次元連想配列なので、あまり悩まないでください。

Medoo のサイトの WHERE 句の説明を見ると
全部英語なので身構えるかもしれませんが、
基本は技術英語ばかりなのでなんとかしましょう(笑)。

面白いのはサンプルにもある

$database->select("account", "user_name", [
	"user_id[>]" => 200
]);
// WHERE user_id > 200

の"user_id[>]"のような表現。
簡単に表現しようというのが随所に見られて、
ものぐさな私には向いているかもしれません(笑)。

2013年6月15日(土曜日)

Medoo を使ってみる ~その 2 ~

Category: オープンソース | Posted By at 23:09:36

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。
(ここまでコピペ)

さて前回のところでデータベースへの接続はできたので、
実際にデータを入れてみましょう。

例えば

CREATE TABLE IF NOT EXISTS `tbl_sample` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` varchar(100) NOT NULL,
  `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

こんな感じのテーブル tbl_sample を用意しました。

id はプライマリキーでオートインクリメント処理。
text は文字列、updatetime は更新した時間が入力されます。

ここになにかデータを入れてみましょう。

$data = array(
  'text' => 'test'
);
$Db -> insert( 'tbl_sample', $data );

第一引数はテーブル名を指定し、
第二引数にあらかじめ配列にデータを入れるだけです。
ただし

$data = array(
	array( 'text' => 1 ),
	array( 'text' => 2 ),
	array( 'text' => 3 ),
	array( 'text' => 4 ),
	array( 'text' => 5 ),
	array( 'text' => 6 )
);
$Db -> insert( 'tbl_sample', $data );

このような多次元配列には対応していないので注意が必要です。
このような場合は

$data = array(
	array( 'text' => 1 ),
	array( 'text' => 2 ),
	array( 'text' => 3 ),
	array( 'text' => 4 ),
	array( 'text' => 5 ),
	array( 'text' => 6 )
);
foreach( $data as $d ){
	$Db -> insert( 'tbl_sample', $d );
}

と foreach 等でループを回しましょう。

2013年6月14日(金曜日)

Medoo を使ってみる ~その 1 ~

Category: オープンソース | Posted By at 23:22:28

Medoo – The Lightest PHP database framework to accelerate development

前回の記事で紹介した PHP の DB フレームワーク Medoo 。

せっかく覚えたので使い方なんかを書いておこうと思います。
えぇ、こういう時はだいたい他にネタがないんです(笑)。

さて Medoo は MIT ライセンスで作られており、
無料で自由に使うことができます。

組み込みについても簡単で、

require_once( 'medoo.php' );

で OK 。

あとは

$args = array(
    'database_type' => 'mysql',  // データベースの種類
    'username' => 'dbuser',      // データベースのユーザ名
    'password' => 'dbpass',      // データベースのパスワード
    'server' => '127.0.0.1',     // データベースのサーバ名
    'database_name' => 'test'    // データベースの名前
);
$Db = new medoo( $args );        // インスタンス化

とすることでデータベースとの接続は完了です。

mysql_connect()…とかって書いてもいいんですが、
なんかこっちの方がすっきりしていて個人的には好きです。

ただ Medoo を組み込むときに PDO エラーのような表示がされる場合、
環境で PDO が有効になっていないかもしれません。
php.ini の中の

;extension=php_pdo_mysql.dll

を探して先頭のセミコロン ; を削除してください。

2013年6月5日(水曜日)

PHP の データベースフレームワーク Medoo

Category: オープンソース | Posted By at 22:05:35

Medoo – The Lightest PHP database framework to accelerate development

今回のプログラム騒動で実は一番活躍したのは
この Medoo かもしれません。
今回初めて使ったのですが、学習スキルも少なくて済み、
短時間で簡単に PHP と DB の入出力を連携させるには
有効な手段の一つだと思いました。

なかなか情報が少ないのと英語だらけだったので
最初は結構不安でしたけどね(笑)。
その昔 PEAR とかで DB を扱うというのがあったのですが
なんかいまいち使い勝手がよくなくてトホホな感じでした。

今回使った Medoo は基本的に
すごくシンプルでわかりやすい。
普通にプログラムを組んだことがあるなら
すぐになじめるんじゃないかなと思います。
小規模な案件なら十分に役に立つことでしょう。

2013年4月12日(金曜日)

Spam Free WordPress で WordPress のスパム対策

Category: WordPress | Posted By at 23:38:14

ブログをやっているとスパム対策というのは
運用の中で絶対に必要になってきます。
今まではそんなになかったのですが、
ここ数ヶ月恐らく中国方面からの
『ブランド品のコピーどないだ?』というような
スパムがガンガン来ていました。

WordPress 標準の Akismet は、
ほぼ 100 % の確率でスパム判定に成功しているのですが、
それを削除するのは一応手動です。
スパムを削除っていうボタンを押すだけなんですけどね (^o^;;;。

たださすがに毎日これをするのもバカバカしいし…
と思っていろいろ探していると
Spam Free WordPress というものを発見。
さっそく試してみたところ…
嘘のようにすっきり !!
一通も入ってこなくなりました (^o^;;;

もともとコメントを求めてやっているブログではないのですが、
普段からコメントが少なくて検証のしようがありません (´・ω・`) 。
ひょっとすると『昇龍拳出ねえな』…もとい
『コメント入力できねえな』なんて方がおられたらごめんなさい。
とりあえずこれで様子見てみましょう。
テストしていただけると中の人は涙すると思います(笑)。

2013年3月16日(土曜日)

Custom Field Template を使う ~ select multiple(風) その 2

Category: WordPress | Posted By at 23:58:29

WordPress › Custom Field Template « WordPress Plugins

ほったらかしにしていたわけではありません。
他に書かないといけないネタが多かったからです。
じゃあ、ネタが切れたから書いてる?
お客さん、鋭いですねぇ~(ぉぃっ)。
(ここまでコピペ)

さて昨日の解答です。

やはり使うのは type = break で div 枠で区切る方法です。

[clear]
type = break
class = clearfix select_multi

こうすることで今まで

<div>
:
<dl><dt>項目名</dt><dd>項目内容1</dd></dl>
<dl><dt>項目名</dt><dd>項目内容2</dd></dl>
<dl><dt>項目名</dt><dd>項目内容3</dd></dl>
:
</div>

といったところだったものを

<div>
:
</div>
<div class="clearfix select_multi">
<dl><dt>項目名</dt><dd>項目内容1</dd></dl>
<dl><dt>項目名</dt><dd>項目内容2</dd></dl>
<dl><dt>項目名</dt><dd>項目内容3</dd></dl>
:
</div>

とすることができます。
あとはこの select_multi にスタイルシートを適用していきます。

.cft .select_multi {
	height: 12em;
	overflow: auto;
}

こんな感じでやってみるとできちゃったりします。
label は label = のようにして空にし、
テンプレートインストラクションに

<script>
jQuery( function(){
	jQuery( '.select_multi' ).before( '<div class="titlename">タイトル名</div>' );
});
</script>

等としてやるといいのではないでしょうか?

2013年3月15日(金曜日)

Custom Field Template を使う ~ select multiple(風) その 1

Category: WordPress | Posted By at 23:59:24

WordPress › Custom Field Template « WordPress Plugins

ほったらかしにしていたわけではありません。
他に書かないといけないネタが多かったからです。
じゃあ、ネタが切れたから書いてる?
お客さん、鋭いですねぇ~(ぉぃっ)。
(ここまでコピペ)

HTML の中でデータ入力を行うための form 要素ですが、
text:改行を含まない文字列を入力
textarea:改行を含む文字列を入力
radio:複数のものを一覧しその中から一つ選択
checkbox:複数のものを一覧しその中から複数選択
select:複数の要素の中から一つ選択
file:ファイルをアップロード
image:画像のクリックした座標を送信
button:押したボタン名を送信
があります。
この中で select には multiple オプションがあり、
ctrl キーを押しながら選択することで
複数の選択をさせることができます。

Custom Field Template には select を作る
type = select というのがあるのですが、
残念ながら multiple オプションは実現できません。
ここでどうしてもこれを実現するにはcheckbox 要素を使います。
投稿入力画面でカテゴリー入力の時に使うイメージです。

今回のをヒントとして取り組んでみてください。
答えは後日…(笑)。

HP Directplus -HP公式オンラインストア- デル株式会社 東芝ダイレクト 富士通パソコンFMVの直販サイト富士通 WEB MART ソフマップ・ドットコム