1時間目は掃除と九九計算テスト。
週明けでもタイトルタグ以外は暗記できててかーなーり、ほっとした;
2時間目以降ラストまで
・住所録の続き~
今日はようやく都道府県配列とsessionができた。
変数の指定がごっちゃになってた。
あとフリガナのsei_kana mei_kanaを逆に書いてた_| ̄|○ソリャーデネエヨ
他修正点
・includeにPOSTの値があり、誤動作回避と切り分け明確化のため各ファイルに移動。
設定に関するものだけ残す。
・sessionの開始とincludeとPOSTの配置の理解が甘くエラーや非表示のため推敲。
session→include→POSTの順でうまくいっている。
・ラジオボタンは'checked'だった;
・新規登録完了の段階で再度都道府県&性別でつまづく。POSTを直接$_SESSION["gender"]
として渡すことで解決。
明日は多少の速度向上が見込めそう。エラーチェックのタイプミスがなければwww
2011年1月31日月曜日
2011年1月28日金曜日
1/28覚書
昨日はハロワ行って午後から参加。
住所録に夢中になってすっかりブログ忘れた;
1時間目は掃除だったけど、体力温存でお休みしてその代わり拭き掃除。
ゆきんこと一緒にふきふき~。
で、九九計算。テーブルのtrとtdの位置がつかめず苦労しますた・・・・・・。
正月にちょっとやっただけで忘れてる部分が大きいなあ;
2時間目
住所録
配列の中の配列を出す、ってのをまじめに覚えました。
$rowの宣言はwhileでしてるよ。
ひたすら新規入力と確認画面。
配列の中の配列、DB登録前の記述
insert.php
都道府県やPOSTのも。
変数の戻るセッションでつっかかってる;
きょうはここまで~
住所録に夢中になってすっかりブログ忘れた;
1時間目は掃除だったけど、体力温存でお休みしてその代わり拭き掃除。
ゆきんこと一緒にふきふき~。
で、九九計算。テーブルのtrとtdの位置がつかめず苦労しますた・・・・・・。
正月にちょっとやっただけで忘れてる部分が大きいなあ;
2時間目
住所録
配列の中の配列を出す、ってのをまじめに覚えました。
$rowの宣言はwhileでしてるよ。
<?php echo $gender[$row["gender"]] ?>3時間目~5時間目
ひたすら新規入力と確認画面。
配列の中の配列、DB登録前の記述
insert.php
<input name="sei" size="30" type="text" value="<?php echo $sei ?>" /> <?php echo $gender[$rowg["gender"]] ?> $rowg = $_POST["gender"];includeに$rowgの宣言をまとめたよ。
都道府県やPOSTのも。
変数の戻るセッションでつっかかってる;
きょうはここまで~
2011年1月24日月曜日
1/24覚書
1時間目
・お掃除の後はfizzbuzz
2時間目
・Developers Summit 2011に課外授業(会社見学代替)で行くかも。席が空いてれば;
・mb.strlenで入力チェックの関数、とりあえず入力まで。
mb(マルチバイトいわゆる日本語).strlen(文字列の長さ)を調べてくれる関数。
こんな感じ
3-4時間目
・掲示板に組み込む。ifの入れ子でこんがらがった。まだ早かった;
エラーフラグはみんなならpasswordで入れてるはず。
ちょい息抜き
・http://8tracks.com/CCCDとDRM以外の音源ならUP可能で共有できるそうな。
作業用BGMより軽そうだなあ。
5時間目
削除にもパスワードのチェックと一致認証
ていうかね、
あとね、インデントを同じ処理の部分は同じ揃えにする大切さがわかりました。
なんか返信の写真うpできないなー、で悩んで、インデントそろえたら、
$row = mysql_fetch_row($result);
が消えてた。おそらくコピペの弊害かなと。
明日は入力チェックをクラスで外部にまとめる予定。
DBエラーチェックもやるっぽい。
あと終了文、どのタイミングなのかなあと。
・お掃除の後はfizzbuzz
2時間目
・Developers Summit 2011に課外授業(会社見学代替)で行くかも。席が空いてれば;
・mb.strlenで入力チェックの関数、とりあえず入力まで。
mb(マルチバイトいわゆる日本語).strlen(文字列の長さ)を調べてくれる関数。
こんな感じ
//エラーメッセージ
$error_msg ="";
//ボタンの押下確認
if ($_POST["send"]) {
//リクエストからフォームに入力された値を取得
$text =$_POST["text"];
//未入力チェック
if (($text == "" )|| ($text == NULL)) {
$error_msg ="入力されていません";
}
//文字数チェック(20文字まで)
//if (mb_strlen($text,"utf8") >= 5) {
if (mb_strlen($text,"utf8") < 4 || mb_strlen($text,"utf8") > 16) {
$error_msg = "4文字以上16文字以下で入力してください";
}
//英数字チェック
if (mb_ereg('[^0-9a-zA-Z]', $text)) {
$error_msg="英数字で入力してください";
}
}
3-4時間目
・掲示板に組み込む。ifの入れ子でこんがらがった。まだ早かった;
エラーフラグはみんなならpasswordで入れてるはず。
$delpass = $_POST["delpass"];
$error_msg ="";
//未入力チェック
if (($delpass == "" )|| ($delpass == NULL)) {
$error_msg ="入力されていません";
$delpass_error_yn = 'y';
$error_yn = "y";
}
//文字数チェック(16文字まで)
if (mb_strlen($delpass,"utf8") < 4 || mb_strlen($delpass,"utf8") > 16) {
$error_msg = "英数字および4文字以上16文字以下で入力してください";
$delpass_error_yn = 'y';
$error_yn = "y";
}
//英数字チェック
if (mb_ereg('[^0-9a-zA-Z]',$delpass)){
$error_msg="英数字で入力してください";
$delpass_error_yn = 'y';
$error_yn = "y";
}
ちょい息抜き
・http://8tracks.com/CCCDとDRM以外の音源ならUP可能で共有できるそうな。
作業用BGMより軽そうだなあ。
5時間目
削除にもパスワードのチェックと一致認証
ていうかね、
// エラーがなかったらデータベースにデータを挿入
if ($error_yn == 'n') {
これがまんま抜けてた_| ̄|○そら消えちゃうよ……。あとね、インデントを同じ処理の部分は同じ揃えにする大切さがわかりました。
なんか返信の写真うpできないなー、で悩んで、インデントそろえたら、
$row = mysql_fetch_row($result);
が消えてた。おそらくコピペの弊害かなと。
明日は入力チェックをクラスで外部にまとめる予定。
DBエラーチェックもやるっぽい。
あと終了文、どのタイミングなのかなあと。
2011年1月21日金曜日
1/22覚書自宅編
//delpass取得処理
$sql = "select delpass from comment order by id desc limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$row["delpass"];
<!-- パスワード入力&整合性結果 -->
<?php if($delpass_error_yn == 'y') {?>
パスワードが入力されていないか、設定したパスワードと一致しません。 <br/>
<?php } else {?>
削除しました<br />
<?php } //if文終わり?>
1/21覚書
詰め物取れてもう一回歯医者_| ̄|○
・1-3時間目
論理削除の続き。
reply_delete.phpとreply_delete_submit.php追加。
replyのIDを削除したいから、comment_idよりreply_idにしたほうがわかりやすいなと、
解説を聞きながら思った・・・・・・。
4時間目
・記事削除用パスワード
手順
1.投稿時にパスワードの入力を行わせる。
・indexとreplyのフォームにパスワード入力欄追加
2.パスワードのデータをDBに登録する。
・commentとreplyのカラムにパスワード入力用カラム追加
※英数字16文字
alter table comment add delpass varchar(16) ;
3.submitとreply_submitの登録データにパスワードも追加
ここはURLやmailと一緒だよ。
POINT
・パスワード入力チェック
整合性の部分でつまずいた・・・・・・それは来週。
・1-3時間目
論理削除の続き。
reply_delete.phpとreply_delete_submit.php追加。
*reply_delete.php*
// クエリを送信する
$sql = "SELECT * FROM reply where delete_flg =0 and id = '".$comment_id."'";
$result = mysql_query($sql);
<form action="reply_delete_submit.php" method="post">
<input type="submit" name="delete" value=" 削除する ">
<input type="hidden" name="comment_id" value="<?php echo $comment_id;?>">
*reply_delete_submit.php*
// 論理削除update文を実行
$sql = "update reply set delete_flg =1 where id = '".$comment_id."'";
$result = mysql_query($sql);
*index.php*//返信内容表示を下記に変更
$sql = "SELECT * FROM reply where delete_flg=0 and comment_id
= '".$row1["id"]."' order by created_at desc";
replyのIDを削除したいから、comment_idよりreply_idにしたほうがわかりやすいなと、
解説を聞きながら思った・・・・・・。
4時間目
・記事削除用パスワード
手順
1.投稿時にパスワードの入力を行わせる。
・indexとreplyのフォームにパスワード入力欄追加
2.パスワードのデータをDBに登録する。
・commentとreplyのカラムにパスワード入力用カラム追加
※英数字16文字
alter table comment add delpass varchar(16) ;
3.submitとreply_submitの登録データにパスワードも追加
ここはURLやmailと一緒だよ。
POINT
・パスワード入力チェック
整合性の部分でつまずいた・・・・・・それは来週。
1/20覚書
最初の1時間だけ欠席して歯医者さんに行ってきました。
多分1年ぐらいかかりそう;
インデントは自分で揃えてくだしあ。
1~3時間
削除ページ
☆以下共通☆
comment_idだけど、ID取りにいってるからねー。この掲示板ではcomment_idとidは一緒だよ。
*index.php*
*delete_submit*
・4時間目
物理削除と論理削除
物理削除:完全に削除。例)Delete文
論理削除:削除自体は行わないが、フラグなどで削除したことにし、表示上見えないようにする。
論理削除に必要なもの
DB側:テーブル・フラグ
ソースコード:参照(select)・削除つか判定フラグ
◆まずはテーブル作成
alter table comment add delete_fig tinyint(1) default 0;
alter table reply add delete_fig tinyint(1) default 0;
MySQLではカラム単位でtrue/falseのbool型が使えない。0か1の判断しかない。
なのでtinyint(1)で0~9までの数字で判断する処理を行う。
◆実際にフラグつけてみる。
update comment set delete_flg = 1;
index.phpにもフラグつけてみる。
// クエリを送信する
$sql = "SELECT * FROM comment where delete_flg = 0 order by created_at desc";
F5更新するとデータが見えなくなっている。これが論理削除の基本処理。
update comment set delete_flg = 0;で戻すよ。
ここから実装。
delete_submit.php以外にdelete_flg = 0;フラグ追加。
submit(画像のところ)
$sql = "select id from comment where delete_flg = 0 order by id desc limit 1";
それ以外
$sql = "SELECT * FROM reply where delete_flg = 0 and id = '".$comment_id."'";
明日続きとパスワード認証で削除。
来週はエラーチェック。
さらに今後は実習で仕様書見て作ってみよう。(登録+編集+削除+リスト表示)
おまけっていうかネタバレになってもたけど……。
・メールアドレス正規表現やってみた。
多分1年ぐらいかかりそう;
インデントは自分で揃えてくだしあ。
1~3時間
削除ページ
☆以下共通☆
comment_idだけど、ID取りにいってるからねー。この掲示板ではcomment_idとidは一緒だよ。
*index.php*
<?php } ?> <a href="./delete.php?comment_id=<?php echo $row1["id"]?>">削除</a>*delete.php*
<?php while($row = mysql_fetch_array($result)) { ?>
<div style="border:1px solid #ddd;margin-bottom:10px;padding:5px;">
<?php if (($row["url"]=="") or ($row["url"]==null)) { ?>
<?php echo $row["nickname"] ?> さんの投稿 <br />
<?php }else { ?>
<a href="<?php echo $row["url"]?>"><?php echo $row["nickname"]?></a> さんの投稿
<?php } ?>
<?php if (($row["mail1"] != "" ) || ($row["mail1"] != null )) { ?>
<a href="<?php echo $row["mail1"]?>">メール</a>
<?php } ?>
<br />
<?php echo $row["content"] ?>
<br>
<?php if (($row["photo"]!="") or ($row["photo"]!=null)) { ?>
<img src="./img/<?php echo $row["photo"]?>" alt ="<?php echo $row["photo"]?>"
width=200><br />
<?php } ?>
<?php if (($row["photo2"]!="") or ($row["photo2"]!=null)) { ?>
<img src="./img2/<?php echo $row["photo2"]?>" alt ="<?php echo $row["photo2"]?>"
width=200><br />
<?php } ?>
<?php echo $row["created_at"] ?>
</div>
<?php } //while文終わり ?>
本当に削除してもいいですか? <br><br>
<form action="delete_submit.php" method="post">
<input type="submit" name="delete" value=" 削除する ">
<input type="hidden" name="comment_id" value="<?php echo $comment_id;?>">
</form>
*delete_submit*
<pre class="prettyprint">
//comment_id(コメントテーブルの主キー)を取りに行く
$comment_id = $_POST["comment_id"];
//mysql に接続する
$db = mysql_connect('localhost','yamazaki','2100');
// データベースを選択する
$sdb = mysql_select_db('study');
// 親子一緒にDELETE文を実行
$sql = "delete FROM comment where id = '".$comment_id."'";
$result = mysql_query($sql);
$sql = "delete FROM reply where id = '".$comment_id."'";
$result = mysql_query($sql);
</pre>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>SHONAN BBS</title>
</head>
<body>
<h1>SHONAN BBS</h1>
削除しました。<br />
<a href="index.php"> 戻る </a>
・4時間目
物理削除と論理削除
物理削除:完全に削除。例)Delete文
論理削除:削除自体は行わないが、フラグなどで削除したことにし、表示上見えないようにする。
論理削除に必要なもの
DB側:テーブル・フラグ
ソースコード:参照(select)・削除つか判定フラグ
◆まずはテーブル作成
alter table comment add delete_fig tinyint(1) default 0;
alter table reply add delete_fig tinyint(1) default 0;
MySQLではカラム単位でtrue/falseのbool型が使えない。0か1の判断しかない。
なのでtinyint(1)で0~9までの数字で判断する処理を行う。
◆実際にフラグつけてみる。
update comment set delete_flg = 1;
index.phpにもフラグつけてみる。
// クエリを送信する
$sql = "SELECT * FROM comment where delete_flg = 0 order by created_at desc";
F5更新するとデータが見えなくなっている。これが論理削除の基本処理。
update comment set delete_flg = 0;で戻すよ。
ここから実装。
delete_submit.php以外にdelete_flg = 0;フラグ追加。
submit(画像のところ)
$sql = "select id from comment where delete_flg = 0 order by id desc limit 1";
それ以外
$sql = "SELECT * FROM reply where delete_flg = 0 and id = '".$comment_id."'";
明日続きとパスワード認証で削除。
来週はエラーチェック。
さらに今後は実習で仕様書見て作ってみよう。(登録+編集+削除+リスト表示)
おまけっていうかネタバレになってもたけど……。
・メールアドレス正規表現やってみた。
//メールアドレス正規表現
if ($mail1_mail1 !=null || $mail1_mail1 !="") {
if (! ereg ("[a-zA-Z0-9_.\-]+@[a-zA-Z0-9._\-]+",$mail1_mail1)){
$mail1_error_yn = 'y';
$error_yn = "y";
}
}
<?php if($mail1_error_yn == 'y') {?>
メールアドレスが正しくありません <br/>
<?php }?>
2011年1月19日水曜日
1/19覚書
歯痛恐るべし。
明日午前中予約入れました……。
12時間睡眠とか精神的なものも疑いたくなる;
午前中…??
3~4時間目
カラム追加は省略。
*index.php*
投稿者の後ろにつけよう、ってことになったのでこんな感じ。
*submit.php*
$mail1 = $_POST["mail1"];
// クエリを送信する
$sql = "INSERT INTO comment (nickname, content, url, mail1,created_at)
values ('".$nickname."','".$content."','".$url."','".$mail1."','".date('Y-m-d H:i:s')."')";
*reply.php*
<?php if (($row["mail1"] != "" ) || ($row["mail1"] != null )) { ?>
<a href="mailto:<?php echo $row["mail1"]?>">メール</a>
<?php } ?>
5時間目
先生の答え合わせ。
6時間目
削除ページ作ってみよう…だったけど、どんなページにするか聞きそびれた;
とりあえず確認画面と単純に削除ボタンつけて削除、だけでいいみたい。
// DELETE文を実行
$sql = "delete from study . comment where id=$comment_id";
idを区別してこんな感じなのかなぁ。
コードをハイライトする便利なウィジェット
うーん。色分け……。めんどい;
またあした~。
明日午前中予約入れました……。
12時間睡眠とか精神的なものも疑いたくなる;
午前中…??
3~4時間目
**問題1** 今まで作ってきた掲示板にメールアドレスを入力し表示する。 -- 手順 -- 1.各フォームにメールアドレスを入力する欄を追加する 2.リクエストからメールアドレスを受け取る処理の追加 3.DBのコメントテーブルにカラムの追加(メールアドレス) 4.DBの返信テーブルにカラムの追加(メールアドレス) 5.DBにデータを登録する部分にメールアドレスの追加
カラム追加は省略。
*index.php*
<?php if (($row1["url"] == "" ) || ($row1["url"] == null )) { ?>
<?php echo $row1["nickname"] ?> さんの投稿 <br>
<?php }else { ?>
<a href="<?php echo $row1["url"]?>"><?php echo $row1["nickname"]?></a> さんの投稿
<?php } ?>
<?php if (($row1["mail1"] != "" ) || ($row1["mail1"] != null )) { ?>
<a href="mailto:<?php echo $row1["mail1"]?>">メール</a>
<?php } ?>
<br />
投稿者の後ろにつけよう、ってことになったのでこんな感じ。
*submit.php*
$mail1 = $_POST["mail1"];
// クエリを送信する
$sql = "INSERT INTO comment (nickname, content, url, mail1,created_at)
values ('".$nickname."','".$content."','".$url."','".$mail1."','".date('Y-m-d H:i:s')."')";
*reply.php*
<?php if (($row["mail1"] != "" ) || ($row["mail1"] != null )) { ?>
<a href="mailto:<?php echo $row["mail1"]?>">メール</a>
<?php } ?>
5時間目
先生の答え合わせ。
6時間目
削除ページ作ってみよう…だったけど、どんなページにするか聞きそびれた;
とりあえず確認画面と単純に削除ボタンつけて削除、だけでいいみたい。
// DELETE文を実行
$sql = "delete from study . comment where id=$comment_id";
idを区別してこんな感じなのかなぁ。
コードをハイライトする便利なウィジェット
うーん。色分け……。めんどい;
またあした~。
登録:
投稿 (Atom)