SQLの窓 イラストAC フリー素材

2021年06月24日

2021年 前期試験問題( 2 )

PHP には、スーパーグローバルと言う『すべてのスコープで使用できる組み込みの変数』が存在します。この中でも特に WEBアプリケーションにおける FORM からの送信で作成される変数をと言います。この二つの変数名は、FORM 要素の属性の値として指定可能な文字列より命名されたものです。

その次に重要なスーパーグローバル変数は、です。この中には常にその時の PHP を取り巻く環境変数が設定されているので、WEB アプリケーションではこのうちのいくつかを利用する事になります。
Array
(
    [MIBDIRS] => C:/xampp/php/extras/mibs
    [MYSQL_HOME] => \xampp\mysql\bin
    [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf
    [PHP_PEAR_SYSCONF_DIR] => \xampp\php
    [PHPRC] => \xampp\php
    [TMP] => \xampp\tmp
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_SEC_CH_UA] => " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"
    [HTTP_SEC_CH_UA_MOBILE] => ?0
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
1) REQUEST_METHOD : ブラウザからどのように送られたかが設定されるので、またはが値となります。

2)  : どちらも同じ値で、実行されたスクリプトのパスが設定されます。

さらに、WEBアプリケーションにログインは付き物ですから、その際かならず使用する事となるという変数があります。これは、一定時間ユーザがページを移動してもサーバ側で値を維持可能な変数です。

これらの変数は、PHP をデバッグする上で重要な値を常に保持しているので、という関数でページの最後に出力しておくと良いでしょう。また、WEBアプリの都合上画面上に出す事が容易で内場合は、この関数の第二引数を true にして出力を文字列に変換し、関数を使ってテキストファイルとして出力する事も考えましょう。

WEBアプリケーションは、基本的には文字列を扱う操作が重要になります。その為、文字列の中に変数を埋め込んだり、HTML の中に PHP の変数を埋め込んだりする事が多々あります。文字列の中に変数を埋め込む場合はを使用してその間に変数を記述します。また、埋め込まずに他の文字列と変数を連結する方法もあります。その場合 PHP では連結記号(結合演算子)としてが使用されます。

しかし、文字列は通常ダブルクォート内で作成される為、ダブルクォート文字そのものを表現するにはする必要があります。その為可読性が悪くなるので以下のような技術を使うと記述も視認性も良くなります。
    $syozoku = "";
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        $syozoku .= <<<GAMEN
            <option value="{$row["コード"]}">{$row["名称"]}</option>
GAMEN;

    }    
このような方法をと言います。


posted by at 2021-06-24 19:22 | 講師生活 | このブログの読者になる | 更新情報をチェックする

2021年06月20日

2021年 前期試験問題( 1 )

MVCでは、プログラムを3つの要素に分割します。

それぞれの役割を以下のように決めてWEBアプリ用のテンプレートを作成します。

  の場合

アプリケーション固有の処理を記述するようにします。よって、の定義を行ってから呼び出す事になります。

  の場合

ユーザにとって重要なを定義します。殆どの記述をクライアント側で処理されるで記述します。また、これらの特性よりの介入を容易にする目的があります。

  の場合

アプリケーション全体を見渡せるような基本的な部分を記述します。主に、された内容を正しく処理する為の条件や処理の呼び出しを記述します。
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
    // ***********************************
    // 更新
    // ***********************************
    $result = check_data();
    if ( $result == true ) {
        insert_data();
        $_POST["name"] = "";
        $_POST["level"] = "";
    }
    else {
        //print $err_message;
    }
}

MVC の役割を持つ PHP のファイルを3つ作成し、それぞれ  とします。よって、ブラウザから呼び出されるのは C の役割を持ったファイルになるので、他の二つのファイルは PHP ので、読み込むことになります。

C からは、他の二つのファイル以外にもシステム共通の処理を記述したファイルも同様に読み込みますが、これらは基本的に一番最初に読み込む事になります。その次に読み込まれるのが M の部分で、C の最後に V の部分を読み込みます

V の部分で動的に PHP で作成する必要がある場合は、PHP の変数埋め込み方法を使用して変数内に必要なクライアント側の記述を構築します。

その変数を $dynamic とすると、その記述はとなります。

posted by at 2021-06-20 14:27 | 講師生活 | このブログの読者になる | 更新情報をチェックする

2021年01月29日

2016-06-17 に LIXIL INAX に 30年前の便器を買い替えた。排水管が長いので、大洗浄8L 仕様に変更してもらって、止水栓のメータで計ったら 9L 流れた。そういうもんか ???

2016-06-17

あまり深く考えずに便器を交換したわけです。30年前のものをずっと使って来ていたので、最近の便器の常識とか全く知らなくって、たまたま、タイミング的に『アクアセラミック』という新製品を買うことになった上に、結構な金額の買い物なので、いろいろ興奮もしてましたし。

節水型なんていう意識が全く無かったです

後からインターネットで詳細を調べて、イマドキは 5L で大を流すという事にとても不安を覚えました。 YHBC-ZA10H + YDT-ZA180H のメーカー詳細 『節水型』というキーワードに気が付いたのは、施工業者が作業終わって帰る時の簡単な説明に出てきた時です。その時、過去の古い便器で節水しようとタンクの中にペットボトルを入れて、排水が詰まりかけた記憶が蘇ったわけです。 「うち、排水管長いんで、あまり流れないと困るんですよ」 と、施工業者に問いかけました。すると、業者さんはタンクの中をチラっと見ただけで 「MAX です」 と言い放ったわけです。

施工業者が知らなかった事実

そもそも、カタログ上大洗浄は 5L で、小洗浄は3.8Lなわけです。施工業者は、この便器が 8L 仕様に変更できることを知らなかったのです。 (PDF)ECO6、ECO5 便器の洗浄水量を大洗浄8L( 小洗浄6L) にする方法( WEBアーカイブ ) この PDF は、施工業者が帰った後に疑問に思って調べたらすぐ出て来たものです。これ以外にも、排水管が 10メートルを超える場合には、5L では問題が出るという情報も見つけました。 便器の水量を上げる方法( トイレリフォーム専門店 ) そこで、販売店のほうに電話をかけて、施工業者がこの事実を知らないようだという事実と最後のやりとりを説明してもう一度調整に来てもらうように頼みました。

買った人はもらえない『施工説明書』というもの

再びやって来た施工業者は、メーカーに問い合わせて『施工説明書』の4ページに書いてあると言われた事を私に説明してくれました。そして、帰りにその説明書をいただきました。読んでみると、施工後のチェック項目(水漏れ・溜水面の点検)が書いてあるので、『施工説明書』はもらったほうが吉です。 メーカーに PDF であるのも確認しました。 ちゃんと増量できたかは、目視でもはっきりしていましたが、調整前にタンクがいっぱいになるまでの時間を計ってあったので比べました。結果、かなり増えていたので調整は成功です。 この時、正確な量はわからなかったというか、計る方法に気が付かなかったわけで、あとから計って結構びっくりするわけではあります。

というか、『何故』5L が標準なのか

メーカの 8L に関する必要性に対する説明は、『一部の地域では、便器の洗浄水量が大洗浄8L以上に規定されている場合があります』という理由です。ですから、5L で問題無いという見解なわけです。 しかし、調べてみると実際に詰まってしまうというトラブルの記事をみつけたのですが、この記事からは二つの大きなことを教訓として得る事ができます。 節水トイレの盲点 結論から言うと、この当事者の方のケースは、施工業者が 小と大を反対にセットしてしまった事にあります(初歩的な単なる取り付けミス)。よって、ここからの教訓の二つはこうです。 1) 節水型の 大 で普通に流す事ができる 2) 節水型の 小 では詰まってしまう ここからいろんな事実を知りました。もっとさらに調べたわけで、やはり無知は罪悪だと痛感しました。知らないとイザという時にはとても苦労をしてしまうのは間違い無いようです。

イマどきの節水型とは

トラブルに合われた方のメーカーは TOTO ですが、INAX も同様イマドキの便器では節水型が当たり前で、5L であっても10メートル以上流れる事を試験済みの製品なわけです。(逆に10メートル超えた場合の対応が皆無のようでどうかとは思いますが) 一般的な家庭ではほぼ問題は出ないで 5L で大を流す事ができるようになっています。海外では、水が貴重なので、逆に15L も使うわけなはいかないのです。その量が海外では厳しく決められているそうです。 何故 5L で流す事ができるかは、企業秘密かもしれませんが、一般的には『渦』を使って汚物をうまく流す技術のようです。 でも、3.8L だと詰まる仕様である事は認識しなくてはいけません 知らないで、タンクの中に節水用のなにかを入れると詰まります。また、大のつもりで小を使ってしまうと詰まります( 個人の認識レベルでレバーの向きと大・小 が逆の場合もある )。なにせ、ギリギリの技術のせめぎあいの間での水量なので、ちょっとした間違いで大きなトラブルになるかもしれません。 ウチは、排水が 10メートル超えてるし、曲がってる場所が最低でも2箇所あるし、8L でやっと安心です。小でも、節水時の大より多いですし。 で、実際計ったら・・・ 大で 9L、小で 7.5L でした。これはちょっとなぁ・・・・。メーカーの節水を前面に出してるぶんの誤差にしては大きいと思うんですが。 止水栓は実際に 1.5L のペットボトルに溜めて水量 1.5 と確かめてから、大と小を流しました。
posted by at 2021-01-29 19:29 | 生活 | このブログの読者になる | 更新情報をチェックする

2021年01月23日

【VBS】WshShell.Runによる外部プログラムの実行のバリエーションと注意事項

外部プログラムの実行

VBScript を何の為に使うかという場合、最も一般的に利用価値の高いのは、やはりプログラムの実行です。 わりと簡単に使えるのですが、プログラム(言語)でもあるので、専門知識が無ければ、なかなか難しい部分もあります。しかし、実行だけで言えば、2行で書けるので、その場合に「できること」を知っておくと絶対に得をします。

同期処理(コマンドプロンプトウインドウを開かない)

Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.Run( "zip.exe -r homepage D:\nifty\homepage", 0, True )


同期処理(コマンドプロンプトウインドウを開く)

Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.Run( "zip.exe -r homepage D:\nifty\homepage", , True )



非同期処理

Call WshShell.Run( "zip.exe -r homepage D:\nifty\homepage",0 ) でコマンドプロンプトウインドウは開きません
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run( "zip.exe -r homepage D:\nifty\homepage" )


関連するページ

WshShell.Run による外部プログラムの実行 :外部プログラムの実行
posted by at 2021-01-23 20:43 | VBScript | このブログの読者になる | 更新情報をチェックする

VBScript で GUID 生成

GUID の取得

このコードは、VBScript のノウハウの詰まった『Hey, Scripting Guy!』に掲載されていたものです。 Scripting Guy さん、よろしくお願いします。スクリプトを使用して GUID を作成することはできますか。
Set TypeLib = CreateObject("Scriptlet.TypeLib")
WScript.Echo TypeLib.Guid

GUID をクリップボードに

この記事(Hey, Scripting Guy!)では後半に、InternetExplorer.Application を使って GUID をクリップボードらコピーする方法が続きます。しかし、今の時代ではコマンドプロンプトで、clip.exe が使用できるので、そちらを使うのもいいかもしれません。( 以下のコードでは最後に改行が入るのがタマにキズ )
sCommand = "cmd /c echo Set TypeLib=CreateObject(""Scriptlet.TypeLib""):Wscript.echo TypeLib.Guid>%temp%\_.vbs&cscript.exe /NOLOGO %temp%\_.vbs | clip"

Set WshShell = WScript.CreateObject("WScript.Shell")
' 同期処理(コマンドプロンプトウインドウを開かない)
Call WshShell.Run( sCommand, 0, True )
WshShell.Run
0 : ウィンドウを非表示にし、別のウィンドウをアクティブにします
TRUE : プログラムの実行が終了するまでスクリプトの実行は中断

【VBS】WshShell.Runによる外部プログラムの実行のバリエーションと注意事項



posted by at 2021-01-23 20:42 | VBScript | このブログの読者になる | 更新情報をチェックする

2021年01月17日

ドアクローザーの調整

2013-08-31

油圧調整

ウチは一戸建てですが、もう28年経っています。ドアは当時のままで、相当古いのは解っていますが、特に問題も無くいままでやって来たので気にもしていませんでしたが・・・・ 最近、ドアが閉まる直前で『ガチャン!!』と、素人でも解る『油圧調整が必要』だという状態になってしまいました。 しかし、勘では『油圧』だと解ってはいても、実際どうするか解らないのでインターネットで調べてみると、その部品の名前は『ドアクローザー』というものでした。値段も、単体で3000円から8000円ぐらいで、取替えだと工事費込みで20,000円くらいだという事も解りました。 もし、油が漏れてしまっていたら、取替えが必要ですが、まずは調整用のダイアルのようなものが付いているので、それをドライバーで時計方向に回すだけでいいという事が解りました。

時代によって、ダイアルが1〜3

ウチのは古いので当然一つしかありません。なんで、選択肢も無くおそるおそる回してみると、ちょっと回したくらいではあまり変わりませんでした。おもいきって一回りくらい回すと逆に開いた扉は戻って来なくなりました。そこで、すこしづつ調整してちょうど良い場所を発見して一件落着です。 ドライバー一本で済みました。ああ・・・・良かった。
posted by at 2021-01-17 18:42 | 生活 : トラブル・知恵 | このブログの読者になる | 更新情報をチェックする