ねこすけのWebスキル

フォームページへ移動した際、URLの引数を見てフォームの値を変える

フォームの制作にはコストがかかる為、いろいろな問い合わせを受けられる様に汎用的なフォームを作ることがよくあります。
何でも使えるフォームで便利なのですが、これの弱点はコンテンツをしっかり作り込んだページからの誘導の際、せっかくクロージングしかけているのに、また項目を選択させ、テンションを下げてしまう可能性があることです。

そこでリンクをひと工夫して対応します。
フォーム側でURLに引数があった場合、フォームの項目をあらかじめ選択するようにすればある程度専用ページの様に見せることができます。

下記の様な感じで?以降の文字列を受け取らせあればいいのです。

あとはJavaScriptでフォームの内容をどれだけ変えられるようにするかですね。

更新日:2006年08月28日10:42 | コメント (0) | トラックバック (0)

GoogleMapAPIを使って業界ポータルを使う場合にデータ

GoogleMapAPIを使って業界ポータルなどを作る場合、都道府県別に表示されることがよくあります。
その際の地図はどこを中心にすべきでしょうか?
多分県庁の無難だとおもいます。
県庁所在地の座標データ一覧です。

更新日:2006年06月14日05:56 | コメント (0) | トラックバック (0)

配下のディレクトリでどこが多く使われているかを知る

サーバー監視をしていてディスクが急に減ったとき、どのようにそのファイルを特定しますか?

下記コマンドが便利です。
配下のディレクトリでどこが多く使われているか知らせてくれます。


du | grep -v "/.*/" | sort -n | tail -7

更新日:2006年04月27日07:55

PEAR HTML_QuickForm 確認画面などで値を参照したい

フォームで入力された値を参照したいとき
インスタンス名->getElementValue("要素名")  で 配列に要素が代入されます。
 例 $hoge=$form->getElementValue("name");
   $name=$hoge[0];
で要素取り出し。
プレビュー画面などで入力された値をキーにしてデータベースなどから他のデータを取り出したい時に使いました。
備忘録。

なんか遠回りしているようだけど、他にやり方が見つからなかった。

更新日:2006年04月18日14:53 | コメント (0) | トラックバック (0)

サーバー移転時、DNSを切り替えずに新しいサーバーを見るには

端末はWebにアクセスする際、名前からIPに変換してサーバーにアクセスしています。
アクセスするWebサーバーにはURLを渡すのだけれど、インターネットの中を旅してサーバーにたどり着くのにIPアドレスが必要になるのです。

サーバー引っ越しの場合、最終的にはDNSを切り替えて新しいサーバーにアクセスさせるのですが、テスト段階では自分の端末だけの設定を変えて対応します。

端末のOSがWindowsXPの場合は
C:\WINDOWS\system32\drivers\etc\hosts
を変更します。

一番最後に下記書式で追加し、保存した瞬間から有効になります。
61.58.40.XXX www.nekosuke.net

ただし、ブラウザがすでにIPを記憶してる可能性もあるので、ブラウザの再起動はしたほうがいいでしょう。

更新日:2006年04月12日13:22 | コメント (0) | トラックバック (0)

1秒事に同じコマンドを実行する

たとえば1秒ごとにサーバーのディスク容量の増加を知りたい場合
watch --interval 1 df


更新日:2006年03月17日11:06 | コメント (0) | トラックバック (0)

MySQLのバックアップ

自動でやっているとついついコマンドのオプションを忘れてしまうことってありませんか?
mysqldumpもそのひとつ。

引っ越しのためすべてのテーブルをバックアップするには

mysqldump -A -u root -pパスワード -Q --opt >バックアップするファイル

です。
自分のためにメモ

更新日:2005年09月20日22:50 | コメント (0) | トラックバック (0)

serendipityを試す

PHPで動作する企業サイトにも使えるようなCMSを探しています。
今回はブログツール serendipityを試しました。
ページは動的に生成されるのですが、WebサーバーのRewriteに対応しているので、.htaccessにて下記記述があれば静的ページに見えるのがうれしい。

RewriteEngine on
RewriteRule ^(.*)\.html$ index.php?$1 [L]


ただし、MTを比較するとカスタマイズ度が低い、PHPなので自分で書き換えてしまえばいいのだが、エントリー項目にキーワードやその他のフィールどない(当然DBにもエントリーに対する余分なフィールドはない)為、CMSとして使うにはやはり無理がある模様。
残念。

MTと全く同じ機能をPHPで実現してくれるツールがあると助かるのだが...

更新日:2005年08月08日12:56 | コメント (3) | トラックバック (0)

phpMyFAQで日本語検索

オープンソースのFAQシステム phpMyFAQ。
とても完成度が高いので、会社でも使ってみました。

いくつか問題点が。
まずは日本語で検索できない。
調べたら先人が解決方法を。

アリエル エリア - ドキュメント-phpMyFAQの設定方法
http://dev.ariel-networks.com/modules/xfsection/article.php?articleid=24

入れ替えクエリーだけこちらに残しておきます。


$query = "
 SELECT id, lang, rubrik, thema, content 
 FROM ".SQLPREFIX."faqd ata 
 WHERE thema like '%".$begriff."%' 
   or content like '%".$begriff."%' 
   or keywords like '%".$begriff."%' 
   and active = 'yes'
";


更新日:2005年06月24日11:33 | コメント (0) | トラックバック (0)

重複データの削除

複数のフィールドで合わせて重複データを認めないようにテーブルを作ることはよくありますが、開発後に気づいて後からしなければならない場合も多いですよね。

そんなときは

ALTER TABLE `テーブル` ADD UNIQUE `キー名` ( `フィールド名1` , `フィールド名2` , `フィールド名3` )

で後から複数フォールドのユニーク化をします。
今まで入っているデータはテーブルをコピーしてデータを移し、
insert SQLで戻してあげます。
ただし、そのままですと重複しているとエラーが出てそこで止まってしまいますので、insert文にigunore(エラーの場合無視)を入れます。


insert ignore into ~

です。


更新日:2005年06月23日10:50 | コメント (0) | トラックバック (0)

Windows XPのDNSのキャッシュクリア

自宅サーバーだと、サイトの追加が簡単にできるため、ついついサブドメインをつくってしまうことがよくある。
そんなとき、端末側のDNSキャッシュが残っていて、設定したドメインが見つからないことがしばしば。
下記コマンドでクリアできるのですが、毎回忘れて、「Windows xp dns キャッシュクリア」あたりのキーワードでしらべてしまう。
忘れないように自分のサイトに残しておきます。

ipconfig /flushdns 

更新日:2005年06月19日16:47 | コメント (0) | トラックバック (0)

自宅サーバーの弱点

自宅でのサーバー運用を初めて2年。
何度も停止に陥っているが、現在は電源もUPSを入れて、サーバーもコールドスタンバイで、いざというときはバックアップデータを参照する形で動くようになっている。
ただしネットワークに対しては冗長性がないので、これらが止まるとどうしようもない。
最近HUBが止まったり、BフレッツのIP網が障害で2時間以上止まったりしている。
考えられる対策としては、機器の二重化と回線契約、プロバイダ契約の二重化。
Hub、ルーター、モデムは代替機を準備。
回線はADSLを契約して、共通部を減らす。
同時にADSLは違うプロバイダーにして、障害時に対応する。
DNSはダイナミックDNSに対応している会社と契約しているので、切り替えは自動で行える。
ここまでするならやはりデータセンターにサーバーを借りてしまった方がよさそげ。
今はノウハウをつける為に自宅で行っているが、少し考えなければならない時期が来たのかも。


更新日:2005年02月28日06:30 | コメント (0) | トラックバック (0)

Webアプリの設計にVisioを使う

今回の仕事で行っている開発案件で、仕様書やフロー図をVisioを使って作りました。
理由はレイヤー機能が使いたかったからです。

クライアントの見せる図やフェーズ別で必要になる情報を別々のレイヤーに記述し、あくまでマスターはそのまま。
このレイヤーは印刷しないとか、このレイヤーは表示しないなど自由に選べるのでその時々に応じて必要なものに出来ます。
進捗管理や変更管理も出来てしまったりします。
しかもレイヤー毎にエクセルに書き出したり、特定条件のもの飲みを出力出来たりするので、管理の上でもばっちり。
効率アップで感激しています。

ただのドローツールだど思ったら大間違いですよ。

更新日:2005年02月09日07:15 | コメント (0) | トラックバック (0)

MySQLのバージョンアップ

MySQLのバージョン4から使える様になったサブクエリ。
使いたいと思いながらテストサーバーでRPMを使ってアップグレードしようとしたらエラーが...
Googleで調べても具体的な方法がない。
仕方がないので強制アップグレード。
インストールは出来た様だが、うまく起動しない。
RPM -qa|grep mysql で確認するときちんとすべてのツールがアップされている。
起動用のスクリプトも書き換わっているし、問題なさそうなのに...
これでは本番サーバーの導入は先送りか。
残念。

更新日:2004年09月14日07:52 | コメント (0) | トラックバック (0)

Pukiwikiでの認証NG時

久々にPukiwikiのページを覗く。
以前自分で解決出来なかった問題が質問に出ていた。
自分のメモやアイデア整理にもPukiwikiは使いやすいのでのBasic認証させて使っていたけど、NG時にメニューが表示されて結局ディレクトリごとBasic認証にした経験がある。

こうすれば良かったのか。
改めてみると当たり前の処理。



auth.php 112行目付近
if ($exit_flag)
{
- $body = $title = str_replace(\'$1\',htmlspecialchars(strip_bracket($page)),$title_cannot);
- $page = str_replace(\'$1\',make_search($page),$title_cannot);
- catbody($title,$page,$body);
+ header(\"Location: http://hogehoge/err404.html\");
exit;
}

更新日:2004年09月08日17:45 | コメント (0) | トラックバック (0)

SSLで保護されているページのダウンロード

PHPの開発案件

顧客情報のダウンロードがある。

ページはSSLで保護されているページ。

なぜかうまくダウンロードできない。
セッションやクッキーを使っているのでheader関連が怪しいと思い、下記キーワードで検索

「php https ダウンロード header」

PHPのメーリングリストの記事がヒット(ラッキー!再現性がある問題だ!)

ズバリ解決方法もある。

助かった情報は公開することが恩返しですね。


http://ns1.php.gr.jp/pipermail/php-users/2002-January/004662.html

> 自己レスですが、詳細が分かったのでお知らせします。
> PHPマニュアル
> http://www.php.net/manual/ja/function.session-cache-limiter.php
> に関連事項を見つけました。
>
> IE5.5(IE6.0でも確認済み)にて
> セッションをスタートする前に
> session_cache_limiter('public');
> の1行を追加することでダウンロードが可能になりました。
>
> 以上、報告まで。

助かりました。

更新日:2004年09月06日17:16 | コメント (2) | トラックバック (0)

Bフレッツに変更し自宅サーバー強化

Webサーバーのパワーアップとして、回線をADSLからBフレッツへ変更した。
プロバイダはPtoPネットワークを規制しているぷらら。
ルーターは手頃なものがなく、コレガの無線機能付きルータへ。
ところがなにかおかしい。
回線なのか、ルーターなのかIPアドレスがしょっちゅう変わる
ルーターもハングアップすることがしばしば。
アクセスは1/5以下へ減り、検索エンジンのロボットさえも巡回頻度を下げている模様。
なんとか対策しなければ。
まずはルーターか。
最悪固定IPのオプションがあるプロバイダーへ移行しなければならないかも。
面倒だな。
更新日:2004年07月12日07:21 | トラックバック (0)

imagemagick

サイトに画像をアップロードして、コメント付けたりカテゴリへ登録したりする作業がある際、いちいちWeb向けに画像を縮小して、アップしていました。
いくつかのサイトをリニューアルして結構頻度が高くなったので、この部分もPHPにやらせてみたくなりました。

どうやらimagemagickを使うのが一番簡単そうです。
早速インストール

1つのサーバーはすでにされていました。
インストール時に選択したかな?

テストサーバーにもいれてみます。

ダウンロードは下記から
http://www.imagemagick.org/script/download.php


FedoreだったらYumの簡単インストール

こちらを参照
Fedora Core2 ImageMagickインストールメモ

利用方法

convert -geometry 320x240 original_image_file convert_image_file

convert -geometry 320 original_image_file convert_image_file

すごい簡単。

phpで利用する場合は
systemにてコマンド呼び出しかな。

これば便利そう。
あとはフォームからアップロードしてサイズ別にフォルダーに格納してexif取り出してDB化。
できるかな?

更新日:2004年06月16日12:59 | トラックバック (1)

YSTの調査

Yahoo!の検索エンジンYSTの仕組みをいろいろと調べた。
キャッシュされている日付が検索結果の日付と一致しなかったり、同日にできた同条件のリンクを持つHTMLであってもクローラーがきたり、こなかったりと不明箇所が多すぎる。
Googleのほうがよっぽどわかりやすい仕組みだった。

本業がSEOというわけではないんので、それほど気にすることはないのだが、仕組みがわからないのはあまりいいものではない。自分なりにもう少しテストをしていこうと思う。

更新日:2004年06月08日22:52 | トラックバック (0)

そのとき、管理者は何をすべきか

 雑誌切り抜きメモ
自宅サーバーでも管理はきちんとしないとね。
でも実際に起こった時はどうすべきか?
参考になりました。

LinuxWorld2003年12月号 特集 そのとき、管理者は何をすべきか

FTPサーバーが海賊ソフトの交換場所に  ネットワークの反応が鈍い  隠しディレクトリ発見  ファイルの種類と接続元を調査  クラッカーの行動を推測  判明直後に行ったこと  事後の対策と教訓

ログ監視とアップデートを怠ったツケ
 ログは正常動作を意味するものばかり
 見慣れないプログラムが外部と接続
 ログを追跡、しかし...
 システム内部の調査
 侵入者の手口に関する推測
 その後の対応
 侵入者の行動
 ハニー・ポッド
 防御と対策
 侵入者の行動分析、侵入事例

こんなシステムがねらわれやすい
 クラッカーの分類
 スクリプトキディ
 犯罪的なクラッカー
 趣味のクラッカー
 スパマー
 内部の敵

クラッキングされないための10箇条
 「自分だけは安全」と思うべからず
 クラッキングは避けられないものと心がけよ
 セキュリティポリシーを設定すべし
 他人を信用すべからず
 パスワードはセキュリティの最初で最後の関所なり
 セキュリティの警告を無視するべからず
 使わないソフトはインストールするべからず
 アカウントの管理に注意すべし
 システムの挙動に敏感であれ
 クラッキングされたとき何をすべきか

コラム セキュリティポリシーをつくる

更新日:2004年04月22日22:37 | トラックバック (1)