こんにちはゲストさん    
Windows7導入トラブル

Windows7を導入してみました、早速会社のネットワークに繋いだところ、WindowsXPマシンが数台のネットワークが切れたり繋がったりという現象が発生し、WINDOWS7をシャットダウンするとネットワーク切断の現象が収まります。
IPV6接続の機能が悪さをしていると思いIPV4のみの接続に変更してみましたが解決する気配がありません。

現 象

  • Windows7の起動時に他のWindowsXPマシンのネットワークが切断されます。
  • 一定期間おきにネットワークが切断される。
  • WindowsXP(SP1)以前のXPは影響を受けない。
  • Mac・Linuxも影響を受けない。
  • ルータの種類によりネットワークが切断されない。

考えられる症状としてはDHCP機能に悪影響を与えるのではないかということでMicrosoftのホームページを調べていたら下記のような文書がありました。

下記の通りレジストリエディタで編集したのですが解決出来ませんでした

仕事にならないのでなかなかテスト出来ませんが引き続き挑戦中です。

---- Microsoft -----------------------------------------
Windows Vista で特定のルーターやマイクロソフト製以外の特定の DHCP サーバーから IP アドレスを取得できない 

この問題は、Windows Vista と Microsoft Windows XP Service Pack 2 (SP2) との間にある設計上の差異が原因で発生します。具体的には、Windows XP SP2 の場合、DHCP 発見パケットの BROADCAST フラグは 0 (無効) に設定されます。Windows Vista では、DHCP 発見パケットの BROADCAST フラグは無効にされません。このため、一部のルーターやマイクロソフト製以外の一部の DHCP サーバーでは、この DHCP 発見パケットを処理できません。

解決方法警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの...警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

この問題を解決するには、Windows Vista で DHCP の BROADCAST フラグを無効にします。これを行うには、以下の手順を実行します。
[スタート] ボタンをクリックし、[検索の開始] ボックスに regedit と入力します。次に、[プログラム] の一覧の [regedit] をクリックします。

管理者のパスワードを要求するダイアログ ボックスが表示された場合はパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [続行] をクリックします。
次のレジストリ サブキーを見つけてクリックします。 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}
このレジストリ パスで、ネットワークに接続されているネットワーク アダプタに対応する [(GUID)] サブキーをクリックします。
[編集] メニューの [新規] をポイントし、[DWORD (32 ビット) 値] をクリックします。 

[新しい値 #1] が表示されているボックスに、DhcpConnDisableBcastFlagToggle と入力し、Enter キーを押します。
[DhcpConnDisableBcastFlagToggle] を右クリックし、[修正] をクリックします。
[値のデータ] ボックスに 1 と入力し、[OK] をクリックします。

レジストリ エディタを終了します。

詳細ルーターまたはマイクロソフト製以外の DHCP サーバーで DHCP の BROADCAST フラグがサポートされていない場合、次のレジストリ エントリを以下の...ルーターまたはマイクロソフト製以外の DHCP サーバーで DHCP の BROADCAST フラグがサポートされていない場合、次のレジストリ エントリを以下のように設定できます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}

値の名前 : DhcpConnForceBroadcastFlag
値の種類 : REG_DWORD
値のデータ : 0
注 : データ値 0 を指定することにより、このレジストリ エントリが無効になります。このレジストリ エントリを使用すると、Windows Vista で DHCP の BROADCAST フラグが使用されないように指定できます。このレジストリ エントリの設定後は、Windows Vista で DHCP の BROADCAST フラグが使用されることはありません。 
これもやってみたけどいまいちですね 結局ルータのファームウェアをバージョンアックするしかないかなぁ

メールでの問合せ
意見を書込む
やはりZEND(Zend Framework)かな...

少し時間のある時にMySqlからSQLiteへの移植作業を行ってみた。

まずはPDOを使ってMySqlDBへの接続・・・
$pdo = new PDO("mysql:host=localhost; dbname=xxxxxxxx", $username, $password);  //PDOのコンストラクタに「DSN」、「ユーザ名」、「パスワード」を設定し、接続は完了です。
※何故、MySqlのPDOバージョンを作ったかと云うと、もし移植性が良いのであれば、SQLiteのPDOバージョンはこのコンストラクタを変えるだけで大丈夫と考えたからである。

一通り、コーディングし直して、PDOを使ってのMySqlのアクセスは成功した。
最初は少し慣れないところもあったが、最終的にはなかなか使い易いではないか

しかし、最終的にはどうしてもMySqlとSQLiteの間で互換の取れない所が残ってしまった。
それは、DBにデータを書き込む時に使うクオート関数「mysql_escape_string」である、ここだけはSQLite時に「sqlite_escape_string」と書き換える必用がある。
折角、PDOでコーディングしてもmysql_xxx、やsqlite_xxxなどと云った関数を使うのでは、データベースの依存が残ってしまいます。
その後、PDOでのクオート方法を探したが、結局見つからなかった

趣味ならともかく実務で使うには、このようなちょっとした事でも引っかかってしまう。

結局全く同じソースコードでPDOのDBハンドルのみを書き換えただけで、MysqlSQLiteの両方で使うのは無理と考え、ZEND(Zend Framework)で試みることにした。

目標は、DBシステムに依存しない、システムの開発です。(どのデータベースでもDBハンドル部のみの変更で動作するシステム)

メールでの問合せ
意見を書込む
mysql_query(”SET NAMES sjis;”)

例えば、サーバ側のMysqlの文字コードが、UTF-8でプログラム(ソースコード)がSJISの場合・・・
mysql_query("SET NAMES sjis;")
をかませれば、文字化け無く、一見通常に表示します。
しかし、ここに落とし穴が・・・
一般的な日本語文字は正常に表示されるのだが、特殊な文字(@、A・・・、、アなど)になってしまう
これは、やはりMysqlでのマルチバイトのコード変換が上手くいっていないものと考えられる。
結局、横着せずにサーバ環境に合わせて文字コードを設定するべきと考える。

つまり次のように心がければ、このような災難に遭う確率が少ない

  • サーバ側がSJISの場合は、ソースコードもSJISでコーディングする。
  • 当然、サーバ側がUTF-8の場合は、ソースコードもUTF-8でコーディングする。
    ※結局、いろんな事をせずにシンプルに文字コードを統一するように心がければ良いことになる。(simple is best である)。 そうすれば自ずとmysql_query("SET NAMES sjis;") を入れる必用も必用も無くなる。 
    mysql_query("SET NAMES sjis;")は文字化けの根本的な対策にはなりません
メールでの問合せ
意見を書込む
Cookie(クッキー)について・・・

クッキーは、IDやPASSなどをPC(LOCALパソコン)に記憶させておくのに、よく利用しているが、今まで「クッキー名」や「有効期限」などは気にしていたが、「文字数」に関しては特に気にせずに使っていた。
しかし、諸事情により今回、かなりの文字数をCookieに保存する事を試みた。
すると、今まで経験していないような結果が・・・   どうやら、途中で切れてしまっているようで、見る限り保存出来る文字数(バイト数)を越えているような現象である。
そこで、Cookieについて少し調べて見た。 すると4096バイトまでは保存可能のようであるが、現象を見る限りその手前で切れている
しかし、何れにしても保存出来る文字数に制限があるのは間違いない訳だし。 そもそも、そんなに大量のデータを保存するためにCookieがあるわけでも無いと思い。仕様変更に踏み切る事にした。

変更内容
入力したデータをCookieではなく、LOCALのパソコンに保存出来るようにした。今度は文字数なんか気にせずに使えます。
当然、保存(ダウンロード)と読み込み(アップロード)を機能を追加しました。
結局、Cookieで保存しておくより、データ管理も出来るので、不幸中の幸いでむしろ使いやすくなった気がする。
皆さんもクッキーの食べ過ぎには注意して下さいネ^^

今回は敢えてデータベースなどを使わずに処理したが、日頃如何にデータベースなどの恩恵を受けているかを痛感しました。
データベースを使った方がシステムの方が様々な面で柔軟な制作が出来ますね

メールでの問合せ
意見を書込む
スパムメール対策

今朝方弊社のクライアントから文字化けしたような問い合わせメールが入ったと、相談を受け早速内容を転送して頂くと、案の定「スパムメール」です。
最近同様の相談が多く発生している為に、少し対策を撃つことに・・・
スパムメールで一番問題なのが、内容に差し込まれた「リンク」でして、掲示版のようなものならタグを加工してしまえばかなり有効な対策となるのですが、メールの場合URLを貼り付けられると、自動的にリンクになってしまう為、ちょっと別の対策を討つことしました。

取り敢えず、スパムメールの大半を占める英数半角文字の多い内容の場合はメールをブロックする事にした。(全角文字でスパムメールは少ないですから・・・)

 $str_cnt = ereg_replace( '[a-zA-Z0-9]', "", $chk_txt );   //半角英数文字を除外する
 if( (strlen( $str_cnt )) < (strlen( $chk_txt ) / 2) )      //全体の文字数と除外した文字数を比較
結局、全体の文字数半角文字数の比率を比較すれば良いので、アルゴリズムは何でも結構です

簡単に云うと、全体の文字数と半角文字数の比率に応じて、半角文字が多く含まれる場合は、ブロックしてしまうと云う事。 
掲示版などでは良く使われている方法で結構実績がある為、今回はこの方式で暫く様子を見ることにした。

2バイトコード圏はこのような対策でもある程度、防御出来るのですが、英語圏はどのように防御しているのでしょうね? 何れにしましても、このようなスパム行為を行う人がいけないのですが、なかなか無くならないのでしょうね?

メールでの問合せ
意見を書込む
WINDOWS用のXAMPPでMySQL5系の文字化け対策

XAMPP+MySQL5.1系でSHIFT-JISを使いたい場合の変更箇所

XAMPPフォルダのMySQLのbinフォルダ内のmy.ini(xamppのバージョンによってはファイルの場所が別のところにある場合があります。)をエディタで開き下記の箇所に
[mysqld]
skip-character-set-client-handshake
default-character-set=sjis
init_connect="SET NAMES sjis"
を追加

utf8で使用する場合はsjisの部分をutf8に変更して下さい!
 xampp_stop.exeを実行しxamppを停止しその後、xampp_start.exeでxamppを再起動
これで解決する場合もありますが、ソースコードや参照ファイルを全てShift-jisに変更しなければなりません。
本来はソースコードもDB関係文字コードもUTF-8で作成した方が将来性がある思います。
windowsの場合はserverとしての使用というより自分のパソコンでのテスト環境という場合の方多いと思いますが、レンタルサーバはほとんどがLINUXベースですのでShift-jisで作成していると、アップロードして動かない、DBの部分が「?????」となってしまった等のトラブルが発生すると可能性が高くなります。
この辺の対策は数年前にいろいろやって解決していたのですが、Windows7などの新しいOSが出るといろいろテストしなければならないので、忘れないようにここに書いておきます。

ここの対策方法は最近購入したWindowsVistaにXamppをインストールしてテストした状態ですので、WindowsXPやLinuxにXamppをインストールしてのテストはこれからやってみたいと思いますので、ここに情報を追記していく予定です。

windowsXPに上記の設定でxamppを組み込んで見ましたが問題なく動きました。
最初DBテーブルの文字コードをutf8のまま動かしてあららーー文字化けすると思ったら、DBテーブルをShift-jisに変換するのを忘れていました
DBテーブルをShift-jisに変換したら文字化けはスッキリ直りました。カンタンカンタン

メールでの問合せ
意見を書込む
■ 25〜30件 全39件中