フォームの制作にはコストがかかる為、いろいろな問い合わせを受けられる様に汎用的なフォームを作ることがよくあります。
何でも使えるフォームで便利なのですが、これの弱点はコンテンツをしっかり作り込んだページからの誘導の際、せっかくクロージングしかけているのに、また項目を選択させ、テンションを下げてしまう可能性があることです。
そこでリンクをひと工夫して対応します。
フォーム側でURLに引数があった場合、フォームの項目をあらかじめ選択するようにすればある程度専用ページの様に見せることができます。
下記の様な感じで?以降の文字列を受け取らせあればいいのです。
あとはJavaScriptでフォームの内容をどれだけ変えられるようにするかですね。
GoogleMapAPIを使って業界ポータルなどを作る場合、都道府県別に表示されることがよくあります。
その際の地図はどこを中心にすべきでしょうか?
多分県庁の無難だとおもいます。
県庁所在地の座標データ一覧です。
サーバー監視をしていてディスクが急に減ったとき、どのようにそのファイルを特定しますか?
下記コマンドが便利です。
配下のディレクトリでどこが多く使われているか知らせてくれます。
du | grep -v "/.*/" | sort -n | tail -7
フォームで入力された値を参照したいとき
インスタンス名->getElementValue("要素名") で 配列に要素が代入されます。
例 $hoge=$form->getElementValue("name");
$name=$hoge[0];
で要素取り出し。
プレビュー画面などで入力された値をキーにしてデータベースなどから他のデータを取り出したい時に使いました。
備忘録。
なんか遠回りしているようだけど、他にやり方が見つからなかった。
端末はWebにアクセスする際、名前からIPに変換してサーバーにアクセスしています。
アクセスするWebサーバーにはURLを渡すのだけれど、インターネットの中を旅してサーバーにたどり着くのにIPアドレスが必要になるのです。
サーバー引っ越しの場合、最終的にはDNSを切り替えて新しいサーバーにアクセスさせるのですが、テスト段階では自分の端末だけの設定を変えて対応します。
端末のOSがWindowsXPの場合は
C:\WINDOWS\system32\drivers\etc\hosts
を変更します。
一番最後に下記書式で追加し、保存した瞬間から有効になります。
61.58.40.XXX www.nekosuke.net
ただし、ブラウザがすでにIPを記憶してる可能性もあるので、ブラウザの再起動はしたほうがいいでしょう。
たとえば1秒ごとにサーバーのディスク容量の増加を知りたい場合
watch --interval 1 df
自動でやっているとついついコマンドのオプションを忘れてしまうことってありませんか?
mysqldumpもそのひとつ。
引っ越しのためすべてのテーブルをバックアップするには
mysqldump -A -u root -pパスワード -Q --opt >バックアップするファイル
です。
自分のためにメモ
PHPで動作する企業サイトにも使えるようなCMSを探しています。
今回はブログツール serendipityを試しました。
ページは動的に生成されるのですが、WebサーバーのRewriteに対応しているので、.htaccessにて下記記述があれば静的ページに見えるのがうれしい。
RewriteEngine on
RewriteRule ^(.*)\.html$ index.php?$1 [L]
ただし、MTを比較するとカスタマイズ度が低い、PHPなので自分で書き換えてしまえばいいのだが、エントリー項目にキーワードやその他のフィールどない(当然DBにもエントリーに対する余分なフィールドはない)為、CMSとして使うにはやはり無理がある模様。
残念。
MTと全く同じ機能をPHPで実現してくれるツールがあると助かるのだが...
オープンソースの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' ";
複数のフィールドで合わせて重複データを認めないようにテーブルを作ることはよくありますが、開発後に気づいて後からしなければならない場合も多いですよね。
そんなときは
ALTER TABLE `テーブル` ADD UNIQUE `キー名` ( `フィールド名1` , `フィールド名2` , `フィールド名3` )
で後から複数フォールドのユニーク化をします。
今まで入っているデータはテーブルをコピーしてデータを移し、
insert SQLで戻してあげます。
ただし、そのままですと重複しているとエラーが出てそこで止まってしまいますので、insert文にigunore(エラーの場合無視)を入れます。
insert ignore into ~
です。
自宅サーバーだと、サイトの追加が簡単にできるため、ついついサブドメインをつくってしまうことがよくある。
そんなとき、端末側のDNSキャッシュが残っていて、設定したドメインが見つからないことがしばしば。
下記コマンドでクリアできるのですが、毎回忘れて、「Windows xp dns キャッシュクリア」あたりのキーワードでしらべてしまう。
忘れないように自分のサイトに残しておきます。
ipconfig /flushdns
自宅でのサーバー運用を初めて2年。
何度も停止に陥っているが、現在は電源もUPSを入れて、サーバーもコールドスタンバイで、いざというときはバックアップデータを参照する形で動くようになっている。
ただしネットワークに対しては冗長性がないので、これらが止まるとどうしようもない。
最近HUBが止まったり、BフレッツのIP網が障害で2時間以上止まったりしている。
考えられる対策としては、機器の二重化と回線契約、プロバイダ契約の二重化。
Hub、ルーター、モデムは代替機を準備。
回線はADSLを契約して、共通部を減らす。
同時にADSLは違うプロバイダーにして、障害時に対応する。
DNSはダイナミックDNSに対応している会社と契約しているので、切り替えは自動で行える。
ここまでするならやはりデータセンターにサーバーを借りてしまった方がよさそげ。
今はノウハウをつける為に自宅で行っているが、少し考えなければならない時期が来たのかも。
今回の仕事で行っている開発案件で、仕様書やフロー図をVisioを使って作りました。
理由はレイヤー機能が使いたかったからです。
クライアントの見せる図やフェーズ別で必要になる情報を別々のレイヤーに記述し、あくまでマスターはそのまま。
このレイヤーは印刷しないとか、このレイヤーは表示しないなど自由に選べるのでその時々に応じて必要なものに出来ます。
進捗管理や変更管理も出来てしまったりします。
しかもレイヤー毎にエクセルに書き出したり、特定条件のもの飲みを出力出来たりするので、管理の上でもばっちり。
効率アップで感激しています。
ただのドローツールだど思ったら大間違いですよ。
MySQLのバージョン4から使える様になったサブクエリ。
使いたいと思いながらテストサーバーでRPMを使ってアップグレードしようとしたらエラーが...
Googleで調べても具体的な方法がない。
仕方がないので強制アップグレード。
インストールは出来た様だが、うまく起動しない。
RPM -qa|grep mysql で確認するときちんとすべてのツールがアップされている。
起動用のスクリプトも書き換わっているし、問題なさそうなのに...
これでは本番サーバーの導入は先送りか。
残念。
久々に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;
}
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行を追加することでダウンロードが可能になりました。
>
> 以上、報告まで。
助かりました。
サイトに画像をアップロードして、コメント付けたりカテゴリへ登録したりする作業がある際、いちいち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化。
できるかな?
Yahoo!の検索エンジンYSTの仕組みをいろいろと調べた。
キャッシュされている日付が検索結果の日付と一致しなかったり、同日にできた同条件のリンクを持つHTMLであってもクローラーがきたり、こなかったりと不明箇所が多すぎる。
Googleのほうがよっぽどわかりやすい仕組みだった。
本業がSEOというわけではないんので、それほど気にすることはないのだが、仕組みがわからないのはあまりいいものではない。自分なりにもう少しテストをしていこうと思う。
雑誌切り抜きメモ
自宅サーバーでも管理はきちんとしないとね。
でも実際に起こった時はどうすべきか?
参考になりました。
ログ監視とアップデートを怠ったツケ
ログは正常動作を意味するものばかり
見慣れないプログラムが外部と接続
ログを追跡、しかし...
システム内部の調査
侵入者の手口に関する推測
その後の対応
侵入者の行動
ハニー・ポッド
防御と対策
侵入者の行動分析、侵入事例
こんなシステムがねらわれやすい
クラッカーの分類
スクリプトキディ
犯罪的なクラッカー
趣味のクラッカー
スパマー
内部の敵
クラッキングされないための10箇条
「自分だけは安全」と思うべからず
クラッキングは避けられないものと心がけよ
セキュリティポリシーを設定すべし
他人を信用すべからず
パスワードはセキュリティの最初で最後の関所なり
セキュリティの警告を無視するべからず
使わないソフトはインストールするべからず
アカウントの管理に注意すべし
システムの挙動に敏感であれ
クラッキングされたとき何をすべきか
コラム セキュリティポリシーをつくる