3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

2011-07-01から1ヶ月間の記事一覧

VBScriptのModの結果は小数点以下を返さない!?

VBScriptで下記のようなコードを書きました。 MsgBox 1.5 Mod 1 しかし、表示されるのは 0 です。 本来なら、0.5 とならないといけないですが。。。 Mod 演算子を見たら驚愕の事実が。。 結果が浮動小数点数の時は整数に丸められるようですorz 整数かどうか…

VBScriptは型宣言ができない!?

VBScriptで下記のように書いてみました。 Dim str As String str= "hogehoge" MsgBox str すると、「ステートメントの末尾が不正です。800A0401」というエラーが。。。 下記のようにすると、うまく走りました。 Dim str str= "hogehoge" MsgBox str どうやら、…

VBScriptで配列宣言時に要素数を変数で指定したい

VB.NetやC系言語だと、下記のように配列宣言時に要素数を変数で指定できます。 Dim i As Integer i = 3 Dim ary(i) しかし、VBScriptだと配列宣言時に要素数を変数で指定できません。(VB6も?) なので、とりあえず空の配列を定義し、ReDimで要素数を変更する…

(WSH)VBScript(またはVB6)でAndAlsoをどうすればよいか?

VB.NetやC系言語,Javaでは論理演算子として AndoAlso,OrElse(VB.Net) , &&,||(C,Java) を一般的に使います。 AndAlso,&& は左辺を評価して false なら右辺は評価しません。 OrElse,|| は左辺を評価して true なら右辺は評価しません。 この演算子はショート…

(OpenOfficeBasic)印刷プレビューかどうかを判断する

OpenOffice3.2のマクロ(Basic)で、現在のビューが印刷プレビューかどうかを判断する方法です。 自力では難しそうだったので、ググったら OOobbs2/142 でどんぴしゃな方法が載っていました。 100%コピペなコードですが、転載させてもらいます。 Function IsPr…

(OpenOffice)メニューバーのフォントが汚い

WindowsXPでOpenOffice3.2を使ってますが、OpenOfficeのメニューバーのフォントが小さくつぶれた用に汚く見える現象が出ています。 下記のような感じです。 で、調べると解決策として、Windowsの画面のプロパティから、フォントを設定する方法(デザインの詳…

(OpenOffice,Excel)二つの日付の経過(期間)を求める

年齢計算や経過日数を求めたい場合があります。 その場合、Excelだと、DATEDIF 関数使うと有用なようです。 書式は下記の通りです。 =DATEDIF(開始日,終了日,単位) 単位は下記のようになるようです。 "Y" 指定した期間の年数(満年数)を表示 "M" 指定した…

XPでスタートメニューの自身で追加した項目が削除できない

XPのスタートメニューで自身で追加した項目があります。 下記図の丸で囲んでる部分です。 それを右クリックから消そうとしても、消えない現象が発生しました。 そういう場合の削除方法としてはレジストリから消す方法があるようです。 HKEY_CURRENT_USER\Sof…

EXEがファイルが実行できない

とあるPCで、どのプログラムを実行しても、同じプログラムが実行されてしまうという現象が発生したというので相談がありました。 たしかに、ショートカットを実行してもEXE本体から起動しても同じ動画ダウンロードのソフトが実行されます。 Windowsにログイ…

(ツール)Webアプリ自動生成ツール Tuigwaa がすごい

よく現場であるのが、スプレッドシート(表計算)を共有して、複数人で同時に作業したいという要望です。 Excelだったら共有モードを使うといいのですが、共有になると使えなくなる機能が出てきます。 また、スプレッドシートは自由度が高すぎるため、複数人で…

PHPで携帯電話でもセッションが使えるようにする

(CakePHP)携帯電話でもセッションを使えるようにするでも書いたように、携帯電話向の場合、セッションIDの扱いに気を使う必要があります。 (まぁドコモがcookie使えないのが諸悪の根源なんですが。。。) 【PHPで作る】初めての携帯サイト構築:第5回 携帯サ…

net stop コマンドで依存するサービスも停止する

バッチファイルで、サービスの自動再起動をする処理を書いています。 サービスの停止処理は、net stop ,サービスの開始処理は net start コマンドを使います。 で、サービス停止時に、そのサービスに依存する別のサービスがあると、下記のように問い合わせて…

(PHP)数値を0埋めで表示したい

sprintf 関数で書式指定すればできるようです。 例えば 1 を 001 とするには、下記のようにします。 基本的にはCのsprintf関数と同じような感じですね。 $num = 1; echo sprintf("%03d" , $num ); 参考: なぁばすぶれぃくだぅん:[php]数字の0埋め

(WSH)VBScriptでユーザが特定のグループに属しているかを判定する

ログインスクリプトで、特定のグループに所属するユーザだけ任意の処理をしたいという場合の判定方法です。 [ADSI] IADsGroup.IsMember メソッドを使ってユーザが特定のグループに所属してるかチェックしてみよう (VBScript / .NET Framework) というサイト…

(PHP)PDO使用時はPDOStatementをした方がよい

PDOを使って、選択クエリ発効後、挿入クエリをするスクリプトを書いています。 選択クエリは、fetch メソッドで先頭行のみ取得しており、挿入クエリでは、トランザクションを使っています。 しかし、挿入クエリの、beginTransaction() で下記のようなエラー…

(PHP)曜日を取得する

年月日それぞれの値を渡して、日本語の曜日を取得する方法です。 date関数で、第一引数に、w を指定すると 。0 (日曜)から 6 (土曜) というように、曜日を数値で返してくれます。 PHPでは日時は mktime 関数を使うと生成できるようなので、これで生成した値…

(PHP)Smarty利用時に入力チェックエラー時に入力画面に戻し入力データを再表示する方法

フォームの入力でチェックをした後どうするかについて、 エラー画面に遷移しエラー表示→入力画面に戻す(戻るボタンで戻ってもらう) という方法と、 入力画面に戻しエラー表示 という2パターンがあると思います。 (まぁAjax使ってたりすると、JavaScript内で…

(PHP)フォームからPOSTで受け取ったデータが文字化けする

レンタルサーバでPHPの内部エンコーディング(mb_internal_encoding)が、作成しているPHPのエンコーディングと異なっていると文字化けになってしまいます。 特に厄介なのが、フォームのデータをPOSTで受け取るときです。 今回レンタルサーバ側のPHPは EUC-JP …

(PHP)Smartyでサイニタイズ(サニタイジング)する

WEBアプリケーションでは、XSSとSQLインジェクション対策等のセキュリティリスクを軽減するためにサイニタイズが必須です。 (PHPでの一般的なサニタイズ方法は、(PHP)XSSとSQLインジェクション対策を参照) さて、テンプレートエンジンに Smarty を使ってて、…

(PHP)Smartyで配列の中に要素があるかや配列かどうか、変数が存在するか調べる

Smartyのテンプレート内で、配列の中に指定した値があるかどうかや、そもそも配列かどうか、そして該当の変数が存在するかどうかを判定する方法です。 テンプレート内に下記のようにすることで判定できます。 {* 変数が存在するかどうか *} {if isset($value…

(PHP)Smartyで改行文字を\nを<br>タグに置換する

Smartyで、改行コードを含む文字列を表示するときに、改行コード(\n)をHTMLの改行タグ()に置換する方法です。 下記のようなSmartyの書式で、それが可能なようです。 {$変数名|nl2br} 使用例です。 ○PHP側 //Smarty読み込み(ドキュメントルート外のSmartyクラ…

(PHP)フォームのチェックボックスの値を受け取りたいとき

HTMLのFORMで、チェックボックスを用い複数選択した値をPHP側で受け取る方法です。 input タグで、name の末尾に [] を付けると、配列で受け取れるようです。 こんな感じです。 ○HTML側 method="post" action="test.php"> type="checkbox" name="person[]" v…

(PHP)HTMLのFORMでSubmitボタンを複数配置したい場合

今回、HTMLでForm内に複数のSubmitボタンを配置して、ボタン毎に処理を分けたいと思ってます。 その場合、ボタンの name 属性に値を設定し、PHP側で $_POST['name属性の値'] があるかどうかを判定することで、どのボタンが押されたか判定できるようです。 下…

(PHP)PDOでforeachを使ってbindParamでパラメータを設定してた時の注意点

PDO経由でSQliteを使おうと思ってます。 Insert文で使う予定なんですが、汎用性を出すために、列名、値それぞれを配列に格納し、名前無ププレースホルダのSQLを生成して、それにbindParamメソッドでパラメータをセットしていきます。 それで当初下記のように…

(PHP)PDOで、SQLiteにアクセスしてみた

PHPで多分初めてSQLiteを使おうと思ってます。 SQLiteドライバから直接クエリを投げてもいいんですが、PDO(PHP Data Object)というDBアクセスの抽象化レイヤがあるみたいで、これを使うとどのデータベースを使っているかを気にすることなく使え、DBを移行…

(PHP)セッションと認証の仕掛け

PHPでログイン画面を使って、ログインし後はセッションを使って認証状態を確認するような、いわゆる普通の会員向けのページを作ってます。 で、久しぶりのPHPでだいぶセッションやら認証やら忘れてました。 とりあえず、テンプレートエンジン Smarty を使っ…

(PHP)print_r 関数で配列情報デバッグする時に見やすくするには

PHPで配列の値をデバッグするときは、print_r関数を使うと思います。 しかし、普通に print_r(配列変数) だけでは結構見にくいです。 1次元配列なら、まだいいんですが、多次元配列になると何が何やら といった感じになってしまいます。(特にPHPはDBからのク…

(PHP)配列に要素があるかどうかの存在チェック

PHPで配列に要素があるかどうかの存在チェックです。 今回はスーパーグローバル変数 $_POST に、'key' という要素があるかどうかのチェックをしたいと思ってます。 この場合、array_key_exists 関数を使うといいようです。 if (array_key_exists('key', $_PO…

(PHP)レンタルサーバで文字コード固定されている時の文字化け回避法

現在作成中のPHPスクリプトを複数のレンタルサーバに配備する予定です。 テンプレートエンジンに、Smarty を使い、テンプレートファイル(HTML),PHPファイル共に文字コードは UTF-8 を使用予定で、その文字コードで記述しています。 で、とあるレンタルサーバ…

SQLiteManagerでUTF-8でデータを保存したい

SQL

SQLite内のデータベースを容易に管理するためにPHP上で動く SQLiteManager を入れてみたんですが、どうやら日本語に設定するとEUC-JPで動くらしく、UTF-8のデータをみると文字化けします。 ということで SQLiteManager でUTF-8のデータを扱う方法ですが、lan…