30. 3月 2009

アンケートフォーム的な

JavaScriptやサーバーサイドスクリプトを手っ取り早く覚える方法。それはアンケートフォームを作ることだったりする。
というのは、よく使い、よく作り、基本中の基本でありながら奥が深いから。

普段使っているアンケートフォーム。以前に比べてかなり使いやすくなったところもあれば、未だに古いものもありますよね。

記入漏れがある場合、エラーだされて、ブラウザの戻るボタン押して戻ったら全部入力消えてるとかありましたよね。二度と入力しねーとか思いますよね。

で、こういう使いにくいアンケートフォームをいろいろ改良していくことが勉強になるんですね。最初は入力したものが特定のメルアド宛に送られてくるだけのものを、今度はDBを使いきちんと顧客管理できるようにしたり。データをcsvでまとめて落とせたり。アンケート項目も好きなように作れると便利ですね。

で、実際仮のアンケフォームを作ってみた。

デザインの観点で言えば、必須項目を入力しないで送信された場合・・・
017

入力されてない項目を目立つように赤枠で囲んだりしてみるとかやるといいっすよね
026

送られてきたデータは管理画面で一覧表示
035

修正がある場合は編集
042

アンケ項目の編集とかもできる
051

で、今回これらの事をいかに少ないソースと処理で行うためいろいろダイエットしてみた。よく、プログラム書くとき、同じ処理は2度書かないと言うけど、そういうのを施すわけで。

で、これを突き詰めたものがライブラリとかフレームワークなんだなぁと。

08. 3月 2008

Host ‘localhost’ is not allowed to connect to this MySQL server

自宅サーバーのxampp環境のmysqlが急に繋がらなくなり、調べてもなかなか回答が見つからなかったのだが、なんとか出たので解決。ググっても出ないということは自分が書けばこのページが引っかかるのでお役に立てば。Windows環境なので余り役立つか分かりませんが。

症状:
今までちゃんと動いていたxampp環境(php+mysql)がある時「Host ‘localhost’ is not allowed to connect to this MySQL server」とエラーがでてDBに繋がらなくなる。

どゆこと?:
「localhostから繋ぐのは許可されてないよ」
普通外部から繋ぐ時に出るエラーで、そういう時はこの辺が解決方法なのだがサーバーマシン(localhost)からも繋げないってありえん。

確認:
windowsアップデートで何かしらの原因でwindowsのファイヤーウォールが勝手に有効になってしまった場合が考えられるが今回は違った。他、ウィルスソフトとかも見たが特に遮断しているとかは見つからず

解決法:
外国のサイトをくまなくチェックしたらやっと見つけた。
#1130 – Host ‘localhost’ is not allowed to connect to this MySQL server – Powered by Infopop
http://friendsofed.infopop.net/2/OpenTopic?a=tpc&s=989094322&f=8033053165&m=4581078141

ここの「you’re obviously on Windows. Uninstall MySQL, go to C:\Program Files\MySQL\MySQL Server 5.0\data, and delete the mysql folder. Then reinstall MySQL.」という発言を実行したら解決

1、mysqlが起動してたらまずシャットダウン
2、C:\xampp\mysql\dataにあるmysqlディレクトリを削除
3、xamppでmysqlだけをもう一度インストール

結局mysqlの初期設定データが何かしらのはずみでぶっ壊れたようなのか?インストール時に繋がらないのは分かるのだが、今回今まで普通に繋がってたのに急に繋がんなくなったし。

で、これで解決したけど、C:\xampp\mysql\data\mysqlはいろんなwebアプリで使ってるDBのID・passが収まっているところなので、もっかい

GRANT ALL PRIVILEGES ON DB***.* TO ID***@localhost IDENTIFIED BY ‘pass***’;

を設定しなきゃいけないけど。

27. 11月 2007

xamppでmysqlが文字化け(windows環境)

最近またプログラミングを始めてて、Rubyに手を出したけどどうもなじめず、phpでRailsのような事が実現できるCakephpというのを学ぼうと思っている。

で、開発環境を用意するために、今まで使ってた自宅のweb鯖をちょっと一新してxamppでリニューアルした。

■xamppとは?
コレを使うとapache・php・pear・mysql・phpMyAdmin・Filezillaなどが一括インストールされてしまうすぐれもの。

apache friends – xampp
http://www.apachefriends.org/jp/xampp.html

phpを使って開発するときは便利。
で、windows環境でこれをインストールするんですが、ほんとにあっという間にできてしまうんですよ。
でもmysqlとか単独でインストールする時って結構いろいろ聞かれたのに何も聞かれないなんてなんか変だ。
案の定、phpMyAdmin起動してみたら文字化けしてますた。

■文字コードを調べる
mysql > show variables like “char%”;
と打ち込むとこんな感じ
+————————–+——————————–+
| Variable_name | Value |
+————————–+——————————–+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | latin1 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+————————–+——————————–+

latin1って何だよ?

で、utf8で開発したいのでいろいろ調べて見た結果結構苦労したけど解決したのでメモっときます。

■xampp/mysql/my.cnf内に以下のコードを追加
[mysqld]
init-connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

■xampp/phpMyAdmin/config.inc.php内の以下のコードをutf-8に修正
$cfg['DefaultLang'] = ‘utf-8′;
$cfg['DefaultCharset'] = ‘utf-8′;

ここまでできたらテストデータを入れてみます。
ただし、

■データを入れるときはphpMyAdminからInsert、又はphpから
コマンドプロンプトから直接入力するとShift-jisになるため。
データベースを作る時はコマンドプロンプトからでもおk

■phpからmysqlにつなぐとき”set name 文字コード”をクエリ送信し文字コード指定する
mysql4.1以降の場合は必要みたいです。ちなみに最新のxamppだとmysql5.0.45でした。

//————————————————–
//DB接続
//————————————————–
$host = “****”;
$usr = “****”;
$password = “****”;
$select_db = “****”;

if (!$conn = mysql_connect($host, $usr, $password)){
die(”データベース接続エラー.
“);
}

mysql_select_db($select_db, $conn);
mysql_query(”set names utf8″, $conn);

以上で文字化けはなくなりました。

付属のFilezillaというFTPサーバーソフトがあるけど以前使っていたTinyFTPよりも繋がりが早い!
phpもめんどくさいコード書き換えとかいらないもんなー。

これからぼちぼちケーキphpをいじってみます。

26. 12月 2006

SQLドリル

SQLを勉強中です。

easyhomepageで、サイト紹介というコーナーを作ったけど、あそこでデーターベースを使用しています。そこで使用するのがSQL言語なんですが、仕事ではエンジニアじゃないのでSQLはいじらないし、かと言ってSQLの勉強でアプリケーション開発!なんていうのも時間がかかるので(それはそれで体系的に勉強になっていいのだが(;´д`)ゞ)市販の参考書を見て購入したのがSQLドリルです。

全く初めてではないので、今まで使ったSQLの知識整理と、もっと高度なデータ取り出しなんかを学べていい感じです。

ドリルなのでほんとに手でSQLを書いてって覚えるやり方なんですが、kote2の場合は一応コマンドプロンプトなり開いて打っていってます。

なんか手書きだとイメージできないので(笑)記憶には残るだろうけど。