2011/01/12

php掲示板、urlカラムと画像アップロ-ド

php講習 1/12

・今日の清掃は、海岸(東浜)

<1時間目> 
・準備(授業が始まる前にやっておいて)
 eclipse,zampp,mySQLクライアントの起動
 課題テキストPDFを開く
・掲示板作成、昨日の復習
 返信テーブルにデータを追加
select * from reply\g
・拡張していく(p.32)
ALTER TABLE comment ADD url TEXT AFTER content ;
・結果の確認
desc comment;
ALTER TABLEコマンドの確認をしたいとき
検索条件:mysql alter table (例えば)

<2時間目>
・拡張していく(index.php)(p.33)
 URL<br>
<input type="text" name="url" size="20"><br>
・拡張結果の確認を画面で行う。
・拡張していく(submit.php)(p.34)
$url = $_POST[url];
・insert文の修正
     $sql = "INSERT INTO comment (nickname, content, url, created_at)
          values ('".$nickname."','".$content."','".$url."','".date('Y-m-d H:i:s')."')" ;
・確認作業
実際にデータが登録されるか確認
select * from comment\G
・eclips上の表示
文字列と判断されると文字が「緑」となる。(sql文、タグなど)
SQL文で文字列としてあつかうものは「'」(シングルクォート)で囲う
・拡張していく(submit.php)(p.35)
print ' <a href="'.$row1["url"].'">'.$row1['nickname']."</a>さんの投稿<br />";
・確認作業
画面で、ニックネームにマウスをあてたとき、リンク先が表示されることを確認する。
 urlはhttpから始めないと、Firefoxがlocalと判断しリンク先に飛んでくれない。
<3時間目> 
・課題7 掲示板の資料の再確認
 先週からこれまでに作業した内容を資料で説明
 SQL文の記述で「'」「"」の対応に注意
 if文の「{」「}」の対応に注意、インデントをしておくと見やすい。
 eclipse上で「{」「}」にカーソルを合わせると、対になっているカッコの色が変わる。
 (色は薄いけど)
・掲示板機能の基本的なところは出来た。
 c create ○
 r read  ○
 u update
 d delete
・いまやっているところは、単純なエラーの範囲なので、エラーがでたらなるべく自分で
 プログラムを見直しして下さい。
<4時間目>
・資料8のP1-4は資料7と重複しているので、replyテーブルに対して拡張する。
(1) mySQLクライアントから、テーブルのカラム追加
ALTER TABLE `reply` ADD `url` TEXT AFTER `content` ;
(2)reply.phpへurl入力を追加 
URL<br />
<input type="text" name="url" size="20"><br />
(3)reply_submit.phpにデータ受け取りを追加 
$url = $_POST[url];
その2、insert文にurlを追加
$sql = "INSERT INTO reply (comment_id, nickname, content, url, created_at) values
(".$comment_id.",'".$nickname."','".$content."','".$url."','".date('Y-m-d H:i:s')."')";
(4)insert.phpの返信者ニックネームにurlのリンクを張る
print '<a href="'.$row2["url"].'">'.$row2['nickname']."</a>さんの投稿<br />";
(5)画像用のカラムをcommentテーブルに追加
ALTER TABLE 'comment' ADD 'photo' TEXT AFTER 'url' ;
・追加したあとの確認
desc comment;
(6)index.phpのフォームに画像用項目を追加
PHOTO<br>
<input type="file" name="photo" id="photo" /><br />
form タグを書き換える
<form action="submit.php' method="post" enctype='multipart/form-data'>
<5時間目>
(7)imgフォルダを作成する。
eclipseからbbsプロジエクトフォルダから、新規にimgフォルダを作成する。
・画面から、photoの参照でファイルが選択できるようになる。
 まだ、受け取り処理が出来ていないので選択のみ
・submit.phpに追加
// 最後に入れたID を取得する
$sql = "select id from comment order by id desc limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
// 画像データを保存する。
if (is_uploaded_file($_FILES['photo']['tmp_name'])){
move_uploaded_file($_FILES['photo']['tmp_name'], "./img/".$row[0].".jpg");
}
・phpの解説
is_uploaded_file()    アップロードしたファイルの存在チェック
move_uploaded_file()  (apacheの)テンポラリファイルから、/imgに移動

・ファイルを指定して投稿する。
 eclipseからリフレッシュ
 imgフォルダにjpgファイルがあることを確認する。
 エクスプローラから、imgフォルダにjpgファイルがあることを確認する。

・ファイルはあとでzipファイルにして送りますが、問題があればなるべく自力で
 調べて解決出来るようにして下さい。
・p.9以降は明日
・掲示板の機能追加は資料8まで、そのあとは何か追加するかも。
・get,postが終わったので、そのあとはセッションをやる予定。
 

0 件のコメント:

コメントを投稿