php講習 1/31
・今日は月曜日のためか、電車が混んでいました。
・掃除は東浜でした。
<1時間目>
・九九の表を作成。(1/28と同じ)
出来たらメールで送付する。
<2ー6時間目>
・住所録システムを作成
今日も1日プログラムを書いていました。
新規登録処理の概要が出来たので、一覧表から詳細画面を作った。
新規登録画面は、画面遷移を整理。(残りはエラーチェック)
一覧表画面に検索条件の処理を入れSQL文が動くようにした。
編集処理の概要を作成。
・残り
新規登録画面のエラーチェック。
編集処理の残りとエラーチェック。
削除処理。
画面の体裁を整える。
動作確認(テスト)。
php(Web)講習の記録です。 php,MySQL,smartyとsymfony 1.0.20の記述があります。 開発環境はeclipse,xampp(php smarty)とlinux(CentOS,symfony)です。
2011/01/31
2011/01/30
phpで九九の表、表示
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
1 | 1*1 = 1 | 1*2 = 2 | 1*3 = 3 | 1*4 = 4 | 1*5 = 5 | 1*6 = 6 | 1*7 = 7 | 1*8 = 8 | 1*9 = 9 |
2 | 2*1 = 2 | 2*2 = 4 | 2*3 = 6 | 2*4 = 8 | 2*5 = 10 | 2*6 = 12 | 2*7 = 14 | 2*8 = 16 | 2*9 = 18 |
3 | 3*1 = 3 | 3*2 = 6 | 3*3 = 9 | 3*4 = 12 | 3*5 = 15 | 3*6 = 18 | 3*7 = 21 | 3*8 = 24 | 3*9 = 27 |
4 | 4*1 = 4 | 4*2 = 8 | 4*3 = 12 | 4*4 = 16 | 4*5 = 20 | 4*6 = 24 | 4*7 = 28 | 4*8 = 32 | 4*9 = 36 |
5 | 5*1 = 5 | 5*2 = 10 | 5*3 = 15 | 5*4 = 20 | 5*5 = 25 | 5*6 = 30 | 5*7 = 35 | 5*8 = 40 | 5*9 = 45 |
6 | 6*1 = 6 | 6*2 = 12 | 6*3 = 18 | 6*4 = 24 | 6*5 = 30 | 6*6 = 36 | 6*7 = 42 | 6*8 = 48 | 6*9 = 54 |
7 | 7*1 = 7 | 7*2 = 14 | 7*3 = 21 | 7*4 = 28 | 7*5 = 35 | 7*6 = 42 | 7*7 = 49 | 7*8 = 56 | 7*9 = 63 |
8 | 8*1 = 8 | 8*2 = 16 | 8*3 = 24 | 8*4 = 32 | 8*5 = 40 | 8*6 = 48 | 8*7 = 56 | 8*8 = 64 | 8*9 = 72 |
9 | 9*1 = 9 | 9*2 = 18 | 9*3 = 27 | 9*4 = 36 | 9*5 = 45 | 9*6 = 54 | 9*7 = 63 | 9*8 = 72 | 9*9 = 81 |
phpで九九の表
課題
九九の表をテーブルタグを使ってphpプログラムにする。
九九の表の出力はこちら
九九の表をテーブルタグを使ってphpプログラムにする。
<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <?php /** * * kuku.php * @author * @since 2011.1.xx * @version 1.0.0 * * 課題 * for文を入れ子で使用し「九九」を「1の段」から「9の段」 * まで、テーブルタグを使用して表示させてください。 * */ ?> <html> <head> <title>九九の表</title> <style type="text/css"> <!-- td.bold { font-weight: bold; } --> </style> </head> <body> <table border="1"> <caption>【九九の表】</caption> <tr><th width="30"><br></th> <?php for ($j=1; $j<=9; $j++) { ?> <th bgcolor=#ffff00 width="70"> <?php print $j ; ?> </th> <?php } ?> </tr> <?php for ($i=1; $i<=9; $i++) { ?> <tr align=center> <td class=bold bgcolor=#ffff00 align=center><?php print $i ?> </td> <?php for ($j=1; $j<=9; $j++) { ?> <td> <?php print $i . "*" . $j . " = " . $i*$j ; ?> </td> <?php } ?> </tr> <?php } ?> <?php ?> </table> </body> </html>
九九の表の出力はこちら
2011/01/29
ラジオボタンをphpとhtmlで作成
ラジオボタンの処理をphpとhtmlで作成。
<?php $gender[1] = "男性" ; $gender[2] = "女性" ; $g = 0; ?> <html> <head> <title>ラジオボタン</title> </head> <body> <?php if (isset($_POST["gender"])): ?> <?php $g = $_POST["gender"]?> <?php echo "gender=".$_POST["gender"]?><br /> <?php endif;?> <hr> <form action="" method="post"> <?php foreach ($gender as $key=>$value) { ?> <input type="radio" name ="gender" value = "<?php echo $key ?>" <?php if ($g==$key) { echo "checked";}?>> <?php echo $value ?> <?php } ?> <input type="submit"> </form> </body> </html>
2011/01/28
php住所録作成
php講習 1/28
・掃除は東浜でした。
<1時間目>
・九九の表を作成。
出来たらメールで送付。
<2ー6時間目>
・住所録システムを作成
今日は1日プログラムを書いていました。
ガラだけの一覧表と、新規登録画面、エラーチェック、SQL文
来週から、処理のやり残しと細かいところをやる予定。
検索はそのあとの予定。
編集と削除はしばらくお預け。
・掃除は東浜でした。
<1時間目>
・九九の表を作成。
出来たらメールで送付。
<2ー6時間目>
・住所録システムを作成
今日は1日プログラムを書いていました。
ガラだけの一覧表と、新規登録画面、エラーチェック、SQL文
来週から、処理のやり残しと細かいところをやる予定。
検索はそのあとの予定。
編集と削除はしばらくお預け。
2011/01/27
php住所録の説明
php講習 1/27
・掃除は東浜でした。
<1時間目>
・九九の表を作成。(今日で3日目)
出来たらメールで送付。
<2時間目>
・住所録システムの説明
仕様書に従い住所録をphpで作成します
概要説明、作業の進め方、スケジュール(約2週間)
<作業項目を整理>
・スケジュール:1/28-2/14
(1)DBの操作
DB名:address_book(新規、studyとは分ける)
テーブル作成
各画面で使用するSQLを作成(phpで使用する)
(2)HTML
画面の作成
今回は、機能重視なので、デザイン性は求めていない。
(3)PHP
一覧表はFizzBuzzや九九でやったテーブルタグを使ってもいいし、テーブルタグでなくてもいい。
・作業の流れ
画面を作るとき、登録画面2つ、確認画面3つ、完了画面3つとすると作りにくい。
(1)一覧画面(選択条件はあとで)
(2)新規登録画面、確認画面、完了画面を先に作るとやりやすい。
・チェック機能
チェック機能は共通の部分があるので、関数機能などを使って見る。
たとえば都道府県の処理とか。
・テスト
テスト項目を設定(入力チェック、画面遷移、出力結果)
・進め方は、出来るところから。
与えられたスケジュールのなかで作業するのも仕事として重要。
最初にスケジュール表を作る
この課題のあとの予定は、企画実習、smarty。
<3時間目>
・作業の進め方、スケジュール
・スケジュールを作成する。
<4時間目>
・スケジュールを作成したらメールで送付する。
・作業をすすめる。
DB,テーブル作成
<5時間目>
・作業をすすめる。
index.phpを作り始める
<6時間目>
・都道府県のドロップダウンリスト
ラジオボタン
pref.php参照
・掃除は東浜でした。
<1時間目>
・九九の表を作成。(今日で3日目)
出来たらメールで送付。
<2時間目>
・住所録システムの説明
仕様書に従い住所録をphpで作成します
概要説明、作業の進め方、スケジュール(約2週間)
<作業項目を整理>
・スケジュール:1/28-2/14
(1)DBの操作
DB名:address_book(新規、studyとは分ける)
テーブル作成
各画面で使用するSQLを作成(phpで使用する)
(2)HTML
画面の作成
今回は、機能重視なので、デザイン性は求めていない。
(3)PHP
一覧表はFizzBuzzや九九でやったテーブルタグを使ってもいいし、テーブルタグでなくてもいい。
・作業の流れ
画面を作るとき、登録画面2つ、確認画面3つ、完了画面3つとすると作りにくい。
(1)一覧画面(選択条件はあとで)
(2)新規登録画面、確認画面、完了画面を先に作るとやりやすい。
・チェック機能
チェック機能は共通の部分があるので、関数機能などを使って見る。
たとえば都道府県の処理とか。
・テスト
テスト項目を設定(入力チェック、画面遷移、出力結果)
・進め方は、出来るところから。
与えられたスケジュールのなかで作業するのも仕事として重要。
最初にスケジュール表を作る
この課題のあとの予定は、企画実習、smarty。
<3時間目>
・作業の進め方、スケジュール
・スケジュールを作成する。
<4時間目>
・スケジュールを作成したらメールで送付する。
・作業をすすめる。
DB,テーブル作成
<5時間目>
・作業をすすめる。
index.phpを作り始める
<6時間目>
・都道府県のドロップダウンリスト
ラジオボタン
pref.php参照
2011/01/26
php掲示板、セッションとメ-ルフォ-ム
php講習 1/26
・掃除は江ノ島側の橋でした。
<1時間目>
・準備
eclipse,zampp,mySQLクライアントの起動
phpとmySQLのマニュアルページも一応開けておきます。
・昨日と同じ、九九の表を作成する。
htmlのマニュアルページも開けておいたほうが良かった。
今日も提出はしなくていいそうです。
<2時間目>
・資料10、セッションの解説
phpのセッション関数参照
・資料のプログラムを作成
session1.php,session2.php(資料はクォートが全角なのでコピーに注意)
・セッションファイルの内容確認
C:\pleiades\xampp\tmp\sess_xxxxx...
・セッションの確認
Firefox のLive HTTP Headers を開き、再度アクセス
Cookie: PHPSESSID=*** というデータが送られていることを確認
Cookie: PHPSESSID=*** というデータが送られていることを確認
・session2.phpを表示し名前を確認
・phpinfo()にて「session」項目を確認
・ローカルのクッキーファイルを確認
FireFoxから、ツール/オプション/Cookieを個別に削除/localhost/PHPSESSID
<3時間目>
・資料10に従い、掲示板のindex.phpとsubmit.phpにセッションの記述を追加する。
(テキストは、一部全角の記述がある。また一部に記述の不足があるので、意味を考えながら補う)
・追加機能
返信にニックネームが残るように変更する。(reply.php)
・セッションの削除
session3.php
session3.php実行後、session2.phpを表示して名前が表示されないことを確認
セッションのファイルが空になっていることを確認
<4時間目>
<メールフォームの作成>
1.新しいプロジェクトを作成(mailform)
必要なファイル名: index.php
submit.php
2.基本のデータを送信するためのフォームをindex.phpに作成する。
名前
メールアドレス
内容
3.作成した送信フォームからのデータ受け取りをsubmit.phpに作成する。
4.データのチェックを行う
名前、未入力チェック
文字数チェック(20文字以内)
メールアドレス、未入力チェック
内容、未入力チェック
5.使うメールアドレスを選んでおく。
xxxxx@gmail.com
<5時間目>
・引き続きメールフォームのプログラムを作成
・結果の確認
入力フォームが出来ていること。
エラーチェックが出来ていること。
・入力チェックの追加
正しいメールアドレスが入力されていること。
<6時間目>
・「Mercuryメールサーバ」経由で送信できるようですが、
windowsの環境では、mail環境が設定されていないので、
phpでのメールの送信はエラーにならないが、gmail側が受け取って
くれないようです。gmailの設定はこちら。
・明日からの課題についての資料説明
まず、資料を読むことから始めましょう。
スケジュールを立てて2週間2/11まで。
まず、資料を読むことから始めましょう。
スケジュールを立てて2週間2/11まで。
2011/01/25
php掲示板、インクルードの機能
php講習 1/25
・掃除は昨日に引き続き東浜でした。
・掃除は昨日に引き続き東浜でした。
<1時間目>
・九九の表をテーブルタグを使ってプログラムにする。
今日は、出来きてもメールで送付する必要はないそうです。
<2時間目>
・掲示板、パスワードチェックして削除する処理の続き
引き続きプログラムが出来ていない人は続けて下さい。
・削除にパスワードチェックを入れたので、それ以前に入力してある
テストデータは、パスワードがないので削除出来なくなった。
sql文でパスワードを仮に設定してテスト。
<3時間目>
・処理の追加が出来ていない人は引き続き作業
・処理の追加が終わった人は、機能を関数にすることを検討。
・delete.php,delete_submit.phpの答え合わせ
・これをもとにreply_delete.php,reply_delete_submit.phpを修正する。
・以上で掲示板の削除についての拡張作業は終了です。
<4時間目>
<機能を外だしにするための事前知識>
・BBSプロジェクトに「test」フォルダを追加作成する。
・以下のphpファイルを空で作成する。
include.php
test1.php,test2.php,test3.php,test4.php,test5.php,test6.php
各ファイルには、プログラムのコメントを入れておくこと。
各テストファイルから、include.phpを呼び、include.phpで設定した項目がテストファイルで参照可能なことを確認する。
<5時間目>
・include.php
# データベース接続時に必要な各項目 $url = "localhost" ; $user = "xxxx" ; $pass = "yyyy" ; # おまけ $message = "これはinclude.phpから読まれています。" ;
・test1.php
require './include.php'; print $message;
・掲示板について、定数とインクルードの機能を試す。
bbsの下にinclude.phpを作成。
・ログイン設定をinclude.phpで記述
# データベース接続時に必要な各項目の定数 define("DB_URL" , "localhost") ; // 接続先 define("DB_USR" , "xxx") ; // ユーザ名 define("DB_PASS", "yyyy") ; // パスワード define("DB_USE" , "study") ; // 選択DB名 //mysql に接続する $db = mysql_connect(DB_URL,DB_USR,DB_PASS) or die(mysql_error()); // データベースを選択する $sdb = mysql_select_db(DB_USE) or die(mysql_error());
<6時間目>
・ログイン設定のある掲示板の各プログラムから、include.phpを呼ぶように変更
2011/01/24
php掲示板、入力チェックとパスワ-ド
php講習 1/24 第8週目
・1/21はお休みしました。
・本日の掃除は東浜でした。
<1時間目>
・FizzBuzzをプログラムにする。
出来たらメールで送付。
<2時間目>
・入力チェックを試す
未入力チェック、入力文字数のチェック
htmlとphpを分離させてhtmlの途中でメッセージを表示する。
<3時間目>
・入力チェックを試す(文字数チェック)
if (mb_strlen($text,"utf8")>=20) { $error_msg = "文字数が20文字以上入力されています!" ; }
mb_strlen(文字数のカウントで日本語を扱うときはこちら)
・もうひとつの関数strlenの確認(日本語だと文字数ではなく、バイト数で扱われる)
・文字数4文字以上で16文字まで、それ以外をエラーとする
if ((mb_strlen($text,"utf8")<4) or (mb_strlen($text,"utf8")>16) ){ $error_msg = "文字数が4文字以上、16文字以下ではありません" ; }
if (mb_ereg('[^0-9a-zA-Z]',$text)) { $error_msg = "英数字で入力してください" ; }
<4時間目>
・掲示板のパスワード入力チェックに適用する。
文字数チェック(4文字以上、16文字まで)
英数字チェック
<index.php>
フォームにpasswdの入力を追加
<submit.php>
passwordの受け取り
入力フラグ初期化
入力チェック
DBへの書き出し
<reply.php>
フォームにpasswdの入力を追加
<reply_submit.php>
passwordの受け取り
入力フラグ初期化
入力チェック
DBへの書き出し
<submit.php>
passwordの受け取り
入力フラグ初期化
入力チェック
DBへの書き出し
<reply.php>
フォームにpasswdの入力を追加
<reply_submit.php>
passwordの受け取り
入力フラグ初期化
入力チェック
DBへの書き出し
<5時間目>
・掲示板のパスワード入力チェックに適用する。
引き続き作業
・答え合わせ
☆インターネットサービスの紹介
・8tracks
気に入った音楽8曲をアップしているサイト
(著作権で保護されているもの意外)
twiterとの連携あり
・last.fm
APIとしてhtmlからの操作が可能
<6時間目>
・掲示板のパスワード入力チェック後削除フラグを立てる。
(1)にパスワード入力フォームの追加を行う。
delete.php
パスワード<br />
<input type="password" name="passwd" size="20" /><br />
reply_delete.php
パスワード<br />
<input type="password" name="passwd" size="20" /><br />
(2)にパスワードをリクエストから受け取るようにする。
delete_submit.php
$passwd = $_POST["passwd"];
reply_delete_submit.php
(3)リクエストで受け取ったパスワードを書くチェックを行う
・未入力チェック
・英数字チェック
・桁数チェック
・データベースのデータと合っているかのチェック(new)
delete_submit.php
reply_delete_submit.php
(4)チェックを通過した際には削除ができること
delete_submit.php
reply_delete_submit.php
delete.php
パスワード<br />
<input type="password" name="passwd" size="20" /><br />
reply_delete.php
パスワード<br />
<input type="password" name="passwd" size="20" /><br />
(2)にパスワードをリクエストから受け取るようにする。
delete_submit.php
$passwd = $_POST["passwd"];
reply_delete_submit.php
(3)リクエストで受け取ったパスワードを書くチェックを行う
・未入力チェック
・英数字チェック
・桁数チェック
・データベースのデータと合っているかのチェック(new)
delete_submit.php
reply_delete_submit.php
(4)チェックを通過した際には削除ができること
delete_submit.php
reply_delete_submit.php
・お休みしていた間に不足していた機能の追加
reply_delete.php,reply_delete_submit.php
2011/01/20
php掲示板、削除フラグを見るように変更
php講習 1/20
・掃除は先週から引き続き東浜でした。
・掃除は先週から引き続き東浜でした。
<1時間目>
・準備
eclipse,zampp,mySQLクライアントの起動
・課題、FizzBuzzを作成、出来たらメールで送る。
・問題2、削除機能の説明
機能追加作業
<2時間目>
・問題2、削除機能追加作業
画面レイアウト
<3時間目>
・問題2、削除機能追加作業
<4時間目>
・問題2、削除機能の説明
○確認方法
削除したとき、画面から表示がなくなっていること
DBのcommentテーブルからレコードがなくなっていること
DBのreplyテーブルからレコードがなくなっていること
<5時間目>
・問題2、削除の続き
削除したデータを見たかったとき、どのような処理をすればよいでしょうか。
・物理削除
・論理削除
論理削除に必要なものを整理
<DB>
・カラム追加、削除フラグ
ALTER TABLE comment ADD delete_flg tinyint(1) default 0 ;
ALTER TABLE reply ADD delete_flg tinyint(1) default 0 ;
<DB>
・カラム追加、削除フラグ
ALTER TABLE comment ADD delete_flg tinyint(1) default 0 ;
ALTER TABLE reply ADD delete_flg tinyint(1) default 0 ;
*mySQLはboolean型がない。このため、1桁の数字で0/1を使用する。
・データ件数の確認
select * from comment where delete_flg =0 ;
→件数確認
・フラグを立ててみる。
update comment set delete_flg = 1 ;
・データ件数の確認
select * from comment where delete_flg =0 ;
→件数確認、0件
select * from comment where delete_flg =0 ;
→件数確認
・フラグを立ててみる。
update comment set delete_flg = 1 ;
・データ件数の確認
select * from comment where delete_flg =0 ;
→件数確認、0件
<6時間目>
<php>
・SQL文、参照を変更
index.php(,submit.php,reply.php,delete.php,delete_submit.php)を変更
$sql = "SELECT * FROM comment where delete_flg = 0 order by created_at desc";
・SQL文、参照を変更
index.php(,submit.php,reply.php,delete.php,delete_submit.php)を変更
$sql = "SELECT * FROM comment where delete_flg = 0 order by created_at desc";
登録:
投稿 (Atom)