Author: admin

入力欄を分ける方法について

No Comments

郵便番号のチェックプログラムというのは、ユーザーに住所を入力してもらうようなときに大活躍するものです。ここをもっと簡単にチェックするためにフォームの作り方を工夫すればいいようです。テキストフィールドを2つに分ければ、数字であるかをチェックするだけで良くなるということにはなりますが、利用者の負担が増えることにもなります。ユーザーの中には、1つ入力欄を入力してしまうと、マウスで次の入力欄をクリックしたりします。こうした場合は、キーボードとマウスを行き来することになるわけで、面倒な作業ともいえます。最近のウェブプラウザには、フォームの内容を自動入力する機能や、過去の入力情報から履歴を表示するといった機能というものもあります。日本語変換ソフトのなかには、簡単に郵便番号を導き出せる機能があるものや、郵便番号から住所を変換できる機能もあるものもあります。こういった便利な機能が、テキストフィールドが分かれているために使えなくなったりするわけです。入力チェックが楽になるというのは、開発者の都合でしかありません。そういったことを利用者に押し付けるのは良いとはいえないと思います。正規表現といったものをテクニックとしてマスターする。こういうことを積み重ねて、ユーザーに楽に使ってもらえるプログラムを目指しましょう。正規表現というのは、郵便番号のように明確なルールがある書式については検査することができます。しかし、ルールが曖昧になってしまうと検査がとてもむずかしいものとなってしまいます。電話番号やメールアドレスといったものはとてもむずかしいということです。市外局番も2桁、3桁あったり携帯電話や特殊の番号と、書式もいろいろだからです。

Categories: Uncategorized

PHPで小数を整数に切り上げるには

No Comments

消費税の計算は小数になってしまうことが多いですが、これを切り捨てたり切り上げたりして表示してみましょう。使うファンクション「floor,ceil,round,print」です。100÷3000×100という計算は割り切れません。3.3333……という結果になってしまいます。このままでは、画面に表示するには、いまいちなので、小数を丸めて処理するようにしたい。それで、小数は切り捨てて計算するので「floor」ファンクションを使います。「<$?php print(floor(100/3000100));?>」このように書きましょう。小数を丸めるファンクションというのは、他にも「ceil」「round」があります。これらを場合によって使い分けます。それぞれのファンクションは、元の値をパラメータとして与えるだけで利用することができます。roundだけは、2つ目のパラメータを指定することができます。「<$?php print(floor(100/3000100,1));?>」とこの場合は、「1」と指定してみました。小数第一位まで表示されます。省略した場合は、小数第一位を四捨五入して、結果は整数となります。if構文といったもので使える演算子には、「論理演算子」というものがあります。複数の条件を組み合わせるときに使います。「Aという条件が満たされていて、なおかつBという条件も満たされている」というものです。例えば「$answer という変数が10以上でかう、100以下」という条件を作るのに、「&&」を利用します。「$answer=15; if($answer>=10 && $answer<=100){…}」

Categories: Uncategorized

動作環境を勉強しよう

No Comments

勉強のために、自分のパソコンに環境を構築してみましょう。XAMPPといった便利なツールがあるので、活用します。まずダウンロードからです。ソフトのダウンロード「http://www.apachefriends.org/jp/index.html」ここから、ダウンロードのコーナーに入り、Windows向けXAMPPをダウンロードしましょう。バージョンがいろいろあって選ぶのが難しいと思ったら、数字が大きい方を選びましょう。新しいバージョンは数字が大きい方です。どんどん開発が進んでいるのがXAMPP。新しいバージョンが発表されるたびにセットアップの画面なんかの見た目が違ったりしますが、機能の方は同じようなものもあるので、読み替えながらやってみましょう。ダウンロードしたら、実行ファイルをダブルクリックしてください。セットアッププログラムが出てきますので、それにそってセットアップします。まず画面には「Apache」「PHP」「MySQL」「phpMyAdmin」にチェックが入った状態にしましょう。初期の起動時は、言語を選ぶ画面が表示されます。日本語が存在したら、日本語を選びましょう。日本語なければ、英語でも良いです。起動するには、スタートメニューの中の「アプリ」に登録された「XAMPPforWindows」から「XAMPP Control Panel]をクリックして起動しましょう。「Apache]と「MySql]と書かれた行があるので、その「Start」ボタンをクリックしましょう。「Apache]と「MySQL]というラベル部分が緑になっているかどうか見てみましょう。緑になっていたら起動完了となります。

Categories: Uncategorized

計算結果を保管する

No Comments

DateTimeオブジェクトには、さまざまな命令があります。「date」ファンクションと同じように好きな書式で日時を得ることとができるものなどがあります。こういったことをメソッドと呼びます。インスタンスに「->」という記号をつなげて、その後ろに記述することになります。例えば、商品の金額を合計して、画面に表示し、さらに消費税を足した金額を表示したいというときは、計算結果を一時的に保管しておかないといけません。こういったことができるのが変数というものです。300円の商品と1200円の商品と、200円の商品を購入したときの合計を求めるのは、算術演算子を利用すると簡単です。「print(300+1200+200);です。この合計金額に、消費税込の金額を表示するには、*1.08を加えたらいいのです。これに50円の商品を加えたとなったら、+50を加えたらいいのですが、間違いもしやすくなりますし、面倒です。そこで、いったん「合計金額」を求めたら、それを保管しておいて、画面の表示や税金金額の計算などに再利用するということです。このようなときに変数が利用できます。$変数名=保管したい内容;となります。=というのは、算数の等しいとは違います。プログラミング用語では代入となります。保管する操作を指します。$sum=300+1200+200;というようにすると、$sumという変数に計算結果ではる1700が代入されます。この変数は、printファンクションのなどのパラメーターとして利用することができます。画面には「print($sum);」とします。数字をそのまま扱うよりも、プログラムを理解しやすくなります。再利用しやすくなります。

Categories: Uncategorized

PHP文法だけがプログラムじゃない

No Comments

プログラマーというと、プログラムを作る人です。こういう人はプログラムを書くのが仕事で、一日中、パソコンに向かっているようなイメージがあります。実際はプログラムの構造を考えたり作ったりする時間が重要で、それなしではプログラムを組み立てることもできません。紙と鉛筆と消しゴム、付箋紙といった身近なものを使って、プログラムを考える訓練をしていきましょう。まずはA4用紙にマスを描きます。消しゴムが入る程度の大きさものです。スタート地点からゴール地点までをロボットに見立てて誘導します。付箋紙には「前に進む」と書いて机に貼ります。「右に進む」「左に進む」も書きます。これを順番に貼り付けます。付箋紙プログラムがこれで完成です。プログラムに従って動くロボットです。「前に進む」という付箋紙に対して一歩前進です。また、上から順番にその命令を理解します。「前に進む」「右に進む」とロボットを進ませたいようにプログラムを組み立てます。プログラムを完成させるまではロボットを動かさないように。プログラムが完成してからロボットを動かして、動きを確認します。ゴールに辿り着くまでのプログラムを作る練習をしましょう。作ったら、それにしたがってロボットを動かすようにします。ただしくゴールにたどり着けるようにしましょう。こうして最初のプログラムを完成させます。非常に簡単です。ここから次のステップに進みます。マスを増やしてスタートからゴールまで考えていきます。プログラム開発の難しいところは、ロボットを動かすために2歩も3歩も先を考えながら作っていかなくてはならないところです。想像力が必要です。常に先に先にシミュレーションしていきます。

Categories: Uncategorized

プログラムとコンピューターの関係性

No Comments

何故、新たに難しそうなプログラミング言語と呼ばれるものを習得しなければならないのでしょうか?それはコンピューターについて知ると分かってきます。まず、プログラムの役割について見ていきましょう。さて、何によってコンピューターが動いているのか知っていますか?答えは電気です。電気の状態には2通りあります、流れているか、流れていないかです。その2通りの状態をコンピューターの世界では1と0で表すことにしているそうです。そうすると0と1の2つの状態しか表せないため、コンピューターが扱う基本の数である基数は2となります。これを2進数と呼ぶそうです。このように電気の有無や1と0しか判断する事ができないコンピューターですが、その代わりに、膨大な量の1と0の組み合わせを処理したり演算したりするのがとても速いのだそうです。このようなコンピューターの特性を活用するためにコンピューターに何かして欲しい場合はコンピューターに対してその内容を伝える必要があります。しかし、人間の基数と呼ばれるものは10進数や60進数であるため0と1でできているコンピューターに伝えることが出来ないのです。そんなコンピューターに伝えたい内容を理解してもらうためプログラムが人間とコンピューターの橋渡しをしているのです。先ほど出てきた10進数と60進数に関しても少し見ていきましょう。10進数とは0~9の計10固の数字で数を表現する方法なのだそうです。9まで増えると位が上がり10になるかと思います。60進数は時計などで使われているのですが60秒立つと1分・60分経つと1時間といったように10進数同様繰り上がっていきます。さて、2進数は0と1で表現されコンピューターで使われている言葉ですが、こちらも同様に1の次は10に位が上がります。これは10進数で表現すると10進数で1である2進数の1が10進数で2である2進数の10となるからです。コンピューターは2進数の他にも16進数と呼ばれるものも多く使われており、この16進数では0,1,……9,a,b,……fまで増えると繰り上がります。

Categories: Uncategorized

エスケープシーケンス

No Comments

PHPのプログラムを入力中にエラーが起きてしまうなんてことがあると思います。

例えば、「print(‘I’m fine.’);」だとシングルクォーテーションが文章の一部として入力されているのか、それともPHPの記号として入力されているのか判断が出来なくなってしまいます。

記号が混ざってしまっていたり、どうしても同じ記号を使わなければならない時には「¥」マークを利用するとよいでしょう。

先ほどの「print(‘I’m fine.’);」で試してみるなら

「print(‘I¥’m fine.’);」と記述することで、エラーを回避することが出来るのです。

この「¥」マークは、「¥」の直後の記号をPHPの要素として無視できるようにしてくれるエスケープシーケンスのひとつです。この記号を使うことによって、記号を混ぜたり、同じ記号を重ねたりできるようになります。

「¥」マークに関しては、環境によっては「\(バックスラッシュ)」になります。

上記のようにPHPの制御に使用する記号を、パラメータの中などで使う時に、「¥」または「\」を補足してあげることで使うことが出来るようになります。

Categories: Uncategorized

プログラムは命令文の集まり

No Comments

WebブラウザからWebサーバにアクセスしたとき、Webブラウザと Webサーバは「ヘッダ情報」という目には見えないデータをやりとりしています。

例えば、以下のheader命令では「今から送るデータはHTML文書で、文字エンコーディングは UTF-8 ですよ」ということを、 Webブラウザに知らせています。

01 <?php
02 header(‘Content-type: text/html; charset=UTF-8’);
03 ?>

また、echo命令を使うと、echoの後ろに記述したデータがWebブラウザに送られ、結果としてその内容が表示されます。
文字列(文字が並んだデータ)を表示する場合は「'(シングルク ォーテーション)」もしくは「”(ダブルクォーテーション)」で囲みます。
ブラウザに出力する命令としては、ほかにもprint命令などがあります。

このように、 PHPでプログラムを作るには、 PHPで用意されている命令を組み合わせながら、コードを書いていきます。
まずは、プログラムを書くことに慣れていきましょう 。

Categories: Uncategorized

Webザーバの起動と停止

No Comments

Apacheのインストールが完了すると、Apacheは自動的に起動されます。
タスクバーの右端のインジケータには、Apacheの起動状態を示す赤い羽根のアイコンが表示されます。

環境によってはアイコンが隠れて表示されない場合があります。
その場合には、タスクバーの三角形のボタンをクリックするとApacheのアイコンが表示されます。

手動で、Apacheを起動したり停止したりするには、次の方法で行います。
Apacheのアイコンを左クリックするとメニューが表示されます。
Apacheを起動する場合は「Start」を、停止する場合は「Stop」をクリックしてください。
また、Apacheの起動中に「Restart」をクリックすると再起動できます。

Categories: Uncategorized

入力フォームの作成

No Comments

アンケートアプリケーションで使用する入力フォームを、Smartyで作成する場合の方法についてです。

まず、通初期化処理の関数化は、PHPのロジックファイル内で、他のファイルと共通して行う処理があります。
たとえば、どの画面でもセッションは使いますし、Smartyも画面を出力する画面では必ずインスタンスの生成を行います。
これらの処理をinit()という関数をつくって、すべてのファイルからインクルードして初期化設定とします。
マスターデータを呼び出す関数も、別関数として分けておくとよいでしょう。

次に、入力フォームを司る input.php の作成です。
アンケー卜入力フォームを裏側で表示したり、入力された値を受け取るなどの処理を行うPHPファイル 「input. php」 を作成します。
このinput. phpファイルに遷移してくるパターンは主に3パターンあります。
1つ目に、アンケートを入力しようと初めてアクセスしに来る場合。
2つ目に、アンケート入力後に登録確認ボタンがクリックされて入力された値が POST される場合。
そして、3つ目に、確認画面より戻るボタンにより戻ってきた場合です。
この3点を想定しながらプログラミングします。
2つ目の登録確認ボタンがクリックされたタイミンクでは、入力された値をセッションに保存し、 Location ヘッダを操作して確認画面へ画面遷移するようにプログラミングします。
ここでは、MySmartyを生成して、性別のリストと年代のリストをassignして、Smartyを表示するスクリプ卜を記述しましょう。

⑨ アンケートのHTML入力フォームの作成

テンプレートエンジンSmartyを使用して、アンケートの HTML入力フォームを作成する方法です。
入力フォームは input.php から display により出力されるものですが、入力された値を POST するアクション先は確認画面でなく、出力元である input.php へ遷移します。
自分自身の呼び出し元に戻す形になるため、一見不自然に思われるかもしれませんが、input.php では入力された値が正しいかのチェックを行います。
つまり「入力に関して」の挙動をすべて入力フォーム内で完結させることによって、スクリプトと画面の役割を明確にできるのです。
ここでは、Smarty での性別のラジオボタンの作成と年代のセレクトボックスと好きな動物のチェックボックスリストの作成を行ないます。

また、入力エラーがあった場合は前回入力したものをデフォル卜入力 (選択) されていることを想定しながら input.tpl を定義します。
たとえば、テキストフィールド <input type=”text” >であればvalue属性に前回入力された値をセットしなければなりませんし、ラジオボタン <input type=”radio” >なら「checked=”ch ecked”」を定義するなどの措置が必要となります。

Categories: Uncategorized