2011年1月31日月曜日

1/31覚書

1時間目は掃除と九九計算テスト。
週明けでもタイトルタグ以外は暗記できててかーなーり、ほっとした;

2時間目以降ラストまで
・住所録の続き~
今日はようやく都道府県配列とsessionができた。
変数の指定がごっちゃになってた。

あとフリガナのsei_kana mei_kanaを逆に書いてた_| ̄|○ソリャーデネエヨ

他修正点
・includeにPOSTの値があり、誤動作回避と切り分け明確化のため各ファイルに移動。
 設定に関するものだけ残す。
・sessionの開始とincludeとPOSTの配置の理解が甘くエラーや非表示のため推敲。
 session→include→POSTの順でうまくいっている。
・ラジオボタンは'checked'だった;
・新規登録完了の段階で再度都道府県&性別でつまづく。POSTを直接$_SESSION["gender"]
 として渡すことで解決。

明日は多少の速度向上が見込めそう。エラーチェックのタイプミスがなければwww

2011年1月28日金曜日

1/28覚書

昨日はハロワ行って午後から参加。
住所録に夢中になってすっかりブログ忘れた;

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(文字列の長さ)を調べてくれる関数。

こんな感じ
//エラーメッセージ
$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_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*
<?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時間目
**問題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 )) { ?>
&nbsp;<a href="mailto:<?php echo $row["mail1"]?>">メール</a>
<?php } ?>

5時間目
先生の答え合わせ。

6時間目
削除ページ作ってみよう…だったけど、どんなページにするか聞きそびれた;
とりあえず確認画面と単純に削除ボタンつけて削除、だけでいいみたい。
// DELETE文を実行
$sql = "delete from study . comment where id=$comment_id";
idを区別してこんな感じなのかなぁ。

コードをハイライトする便利なウィジェット
うーん。色分け……。めんどい;

またあした~。

2011年1月18日火曜日

1/18覚書

1時間目はfor文FizzBuzz。最大101までって思い違いをしてもうた……。
しかも昨日の分UPし忘れてたし; 頭回ってNEEE;
あー、名前とかもだ……_| ̄|○
ほんと頭回ってないなぁ;;

2時間目
index分離
ていうか返信ェ……。

3時間目
index分離。aタグに余計な半角発見。昨日(ry
<a href="reply.php?comment_id=<?php echo $row1["id"]?>"> 返信する </a>
id=のあとにすっごく余計な半角スペースがががが。
aタグの余計な半角なんで入れてんだ; 昨(ry
あとはレイアウト崩してて、div styleをindexと同じにしてた_| ̄|○
直してすっきり。
あとは返信画像、URLの空文字とNULL判定。
==でいいところを!=って逆判定してた…なんだかなあ;
画像は
if (($row2["photo"] != "") || ($row2["photo"] != null)) { の条件で合ってた……。
自宅ソースみなおそ;

4時間目
先生の分離作業説明。
聞きながら見直してて気づく。
$sql =" update reply set~の名称がフォルダ名であり、indexのimg srcの指定先と等しいと。

気づくの遅っ;

追加したい機能/直したい機能でブレスト……ブレスト?
出典 http://www.exbuzzwords.com/static/keyword_112.html
ブレストとは、ブレインストーミングの略称。

ブレインストーミングとは、従来の方法や考え方、先入観にとらわれず、自由なディスカッションを通じて新たなアイディアや解決策を引き出そうとする手法のこと。
出された意見に対して決して批判をしないことが重要とされる。

5時間目
てなわけでブレスト。あはちん/井田しゃん/おいらの結果。

追加したい機能
・HTMLタグ利用可能
・投稿文削除ボタン
・各投稿に対してのサイドバーへリンク追加
・掲示板自体への設定画面
・ページめくり
・ドラッグ&ドロップで画像追加
・投稿者/返信者ごとの投稿ポイント(投稿者/返信者ごとのカウンタ)とランキング
・イイネ!ボタン
・twitterとの連動投稿
・投稿ごとの一覧表示(タイトル/投稿者ごとのソート)
・CSSスイッチャーでレイアウト変更



他の方の意見は先生がまとめてるんで省略~ていうか発表してて間に合わんかった;

発表後のFix
・いいね、投稿を評価する機能
・投稿ごとのリスト表示
・メールアドレス入力機能(←どこも出てこなかったので先生追加
・会員機能/管理
・削除ボタン
・カウンタ
・ランキング
・禁止ワード
・画像形式変更
・指定件数表示
・画像サイズ変更
・twitter連動はクラスを使えばいける(3アクションほど必要らしい)

************************************************
以下後日、あれ? 追加したい機能だけじゃなかったのね;

直したい機能
・画像の拡大/縮小表示
・送信時での画像のファイル変換(表示サイズ制限)
・返信をさらに返信

Fix
・DB接続を変数化

1/17覚書

休み明け

1時間目 掃除はお休みさせていただきました;
・phpとhtml分離
<?php> ~?>でロジックを記入し、htmlタグ内で<?php echo $変数 ?>で表示

2時間目
・分離作業。分岐のif文
上部<?php>~?>に記入。
//if文の表示用の変数
$flg = "y";

html内
    <h2>分岐の表示</h2>
    <?php
    //いつも通りの書き方
    if($flg == "y"){
        print "表示OK<br />";
    }else{
        print "表示NG<br />";
    }
    ?>
で、別の書き方。
    <h2>分岐の表示2</h2>
    <p>
    <?php if($flg == "y"){ ?>
        表示OK<br />
    <?php }else{ ?>
        表示NG<br />
    <?php }?>
    </p>

…………今は正直めんどくさいと思う。
で、今度はループ。

    <h2>ループの表示</h2>
    <?php
    /*
     * 上記にてSQLを発行しており、掲示板での登校の内容を取得できています。
     * こちらを分岐表示2のように、htmlとphpを分けて書いてみてください。
     * 表示するもの「投稿者名」「登校内容」「登校日時」
     */
    ?>
    <?php while ($row1 = mysql_fetch_array($result)) {?>
    <!-- 結果はここに書き込むこと -->
    <div style="border:1px solid #ddd;margin-bottom:10px;padding:5px;">
    <?php     print $row1["nickname"];?>
     さんの投稿 <br>
    <?php print $row1["content"];?>
    <br>
    <?php print $row1["created_at"];?>
    </div>
    <?php }?>

index.phpと同じようにwhile~の↓に<div~置いて、}の前に</div>で閉じるのがミソの模様。
div style を削って<hr />で閉じる方法もある。

3時間目
・submit.phpの分離

    <?php    if ($error_yn == 'y') {?>
           エラーがあります。<br />
    <?php if($nickname_error_yn == 'y') {?>
                   ニックネームが入力されていません<br />
           <?php }?>
           <?php if($content_error_yn == 'y') {?>
                   内容が入力されていません <br/>
           <?php }?>
        <?php } else {?>
           投稿が完了しました<br />
    <?php }    //if文終わり?>



☆補足
print_r($photo);


4時間目reply_submit.php分離
・elseの閉じタグの場所で迷いました。合ってないと完了メッセージでないし;

    <?php    if ($error_yn == 'y') {?>
        エラーがあります。<br />
        <?php if($nickname_error_yn == 'y') {?>
            ニックネームが入力されていません<br />
        <?php }?>
        <?php if($content_error_yn == 'y') {?>
            内容が入力されていません <br/>
        <?php }?>
        <?php if($comment_id_error_yn == 'y') { ?>
             返信元IDが存在しません <br />
         <?php }?>
    <?php } else {?>
        投稿が完了しました<br />
    <?php }    //if文終わり?>

5時間目
・reply.phpのさらに分離

☆簡単ver

    <?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>さんの投稿<br />
    <?php    }    ?>
    投稿内容:<?php echo $row["content"]?>
    <br>
    投稿時間:<?php echo $row["created_at"]?>
    </div>
    <?php }    //while文終わり  ?>

6時間目
首つかリンパがいたいいいいいorz
・phpinfo();で利用している情報が一覧で出る。
・short_open_tagがONだと<?php $msg ?>を<?= $msg ?>と省略可能。
ただし、htmlTOP宣言の<?xml>と誤認されてしまうためほとんど使わない。

・reply分離の説明…MVCモデル構築のためにスライド。
今後はスマーティかシンフォニー主体でやっていくようになり、
分離する作業に抵抗がないようにしたいらしい……。

2011年1月11日火曜日

1/11覚書

・今日は短縮授業。
2コマだから午後から公園前で釣り~と思うも、寒くて無理。
・出る直前になって、いつもの手袋(釣り兼用)にワーム液ががががが。
ほのかににおう_| ̄|○

忘れてたメモ。各ファイルのphp分の先頭に入れとこう。
/**
 * 入力画面
 * index.php
 * @package 掲示板課題
 * @since 2011.01.07
 * @author sarisari1225@gmail.com
 *
 */

・びびえす続き。
・reply_submit.phpに返信IDが存在するかチェック追加

//エラーフラグ
$comment_id_error_yn = "n";

//返信ID
if ($content_id == '') {
    $comment_id_error_yn = 'y';
    $error_yn = "y";
}

if($comment_id_error_yn == 'y') {
print " 返信元IDが存在しません ";
}

・index.phpに返信文表示。場所は返信する~の後。

    //返信処理
    $sql = "SELECT * FROM reply where comment_id = '".$row1["id"]."' order by created_at desc";
    $result1 = mysql_query($sql);

    while ($row2 = mysql_fetch_array($result1)) {
          print "<div style=\"border:1px solid #ddd;margin-bottom:10px;padding:5px; background-color:#f3f3f3;margin-left:40px;\">";
          print "<a href=".$row2["url"]."> ".$row2["nickname"]."</a> さんの投稿 <br>";
          print $row2["content"]."<br>";
          print $row2["created_at"]."<br>";
          print "</div>";
    }

返信者にもURLいれてみた。はいるけども完了メッセージが出ない。
自宅でもやってみよ;

2011年1月10日月曜日

1/9覚書自宅編

・エラーはでなくなった。それだけ。
"抜けてたのもあるが…………文字コードェ…………。

        $sql = "update comment set photo = '".$row[0].".jpg' WHERE id = .$row[0];
        mysql_query($sql);


↓↓

        $sql = "update 'comment' set 'photo' = '".$row[0]."'.jpg WHERE id = .$row[0].";
        $result = mysql_query($sql);


じゃないのかと思いつつ色々挿入箇所変えてみるが×;
Lesson11-1 ~画像のアップロード~って処がヒントかなー、違うのかなぁああ;
今日もできず_| ̄|○

2011年1月9日日曜日

1/8覚書自宅編

自分用。

講習の記録で復習。本当に助かる。

・課題BBS復習+α。
MySQLが中途半端に動いていたようで。Windows再起動で難なくクリア。
**時間悩んでバカみたいだ_| ̄|.....○コロコロ

・カラムURLがはいらねぇええええと試行錯誤。
調べたらあれ? 資料側文法ミス?

【何度トライしても出来なかった資料記述】

ALTER TABLE 'comment' ADD 'url' TEXT AFTER 'content' ;

【一発クリア】

ALTER TABLE comment ADD COLUMN url text AFTER content;

’’いらねぇていうかCOLUMN抜けてる――――! ガビ゙━━(゚Д゚;)━━━ン!!

・そのほか脱字箇所∑(・∀・) ウワー !!

【誤】
submit.php のニックネームのデータを受け取っている箇所の後ろで
$url = $_POST[url];
insert 文に url を追加する。

【正】
submit.php のニックネームのデータを受け取っている箇所の後ろで
$url = $_POST["url"];
insert 文に $url を追加する。

※これ↓もあると助かったっす……

$sql = "INSERT INTO comment (nickname, content, created_at,url)
values ('".$nickname."','".$content."','".date('Y-m-d H:i:s')."','".$url."')";



うぬぬ……画像アップロード処理のサイト自体は見つけたものの、
またどこに入れりゃいいんだ、これ。

【また間違い探し】

ALTER TABLE `comment` ADD `photo` TEXT AFTER `url` ;

ALTER TABLE comment ADD column photo TEXT AFTER url ;
ちょっと非道いぞ; ていうかtext…??? なんでblobに一応変更してみる。

ALTER TABLE comment MODIFY COLUMN photo blob;

【なんでかエラー】

コピペすると文字コードが違うのかEclipseでエラー出した…ええと。

// 最後に入れた ID を取得する
$sql = "select id from comment order by id desc";
$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");
}


【都度手直しめんどいから修正】

        // 最後に入れた ID を取得する
        $sql = "select id from comment order by id desc";
        $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");
        }



【これ挿入箇所どこー?】
mysqlの前の$result = 抜けてる気がするのは本当に気のせいなんだろうか??
Eclipseじゃ場所変えでもcommentが構文エラー出してるし;


        $sql = "update comment set photo = '".$row[0].".jpg' WHERE id = .$row[0];
        mysql_query($sql);

画像つけると完了メッセージは出ない。まあ当然。
今日はもー無理。休む。

2011年1月7日金曜日

1/7覚書

$_REQUESTの使い方
POSTとGETを両方使いたいときに利用するけど、あんまりシチュエーションないぞ。
print_r($変数); で配列出るぞ、と。位置は単独。

☆各入力情報をifで制限。

$name = $_REQUEST["names"];
if($name == ""){
    print "名前が入力されていません";
    }else{
    print $name;
}
print "<br>";

まだtextのブランクに対してのみだけど。

☆掲示板
コピ元が色々やっつけ。間違い探しも含まれるということらしいw
返信が出なくて難産; }の閉じ位置だったよ
URLは帰ってからかな~。
ていうかどこにコピペするかぐらいは記述してほしかった……orz

今日のありがたそうな場所
文中にURLがあれば、それをリンク化したい

2011年1月6日木曜日

1/6覚書

・3日に釣りしてますが、釣り内容は後日。

・1時間目は自習。結局宿題やれんかった;;;
→この事実がどれだけ重いかこの時点では理解していなかった……。

・二時間目から宿題の覚えてほしいところを確認……だけのはずが、
ほとんどやってなかった(くわさますみませんほんとすみません;)ので。

☆九九の表
まずはphpだけ書いてみる

for($i = 1;  $i<=9;  $i++){
    for($j = 1;  $j<=9;  $j++){
            print ($i * $j);
            }
            print '<br>';
}

で、表にさせると……

print '<h3>九九の表</h3>';
print '<table border = "1">' ;
for($i = 1;  $i<=9;  $i++){
    print '<tr height="25">';
    for($j = 1;  $j<=9;  $j++){
            print '<td width="25" align="center">'.($i * $j).'</td>';
            }
            print '</tr>';
}
print'</table>';

ネストの結果を表示させたいので2個目のfor文を<tr>、<td>タグで囲む。
ってここに書いた時点で明確に理解; 上から順番にタグつけてF5でできたのだ。

☆宿題抜粋その2 関数

1つの引数「 $zeikomi 」を持つ関数「 zeinuki 」を作成(宣言)してください
「 zeinuki 」は引数で与えられた数字から消費税5%を引いた税抜き価格を返します

function zeinuki($zeikomi){
    return "税抜き". $zeikomi / 1.05 ."円です<br>" ;
}

print zeinuki( 525 ).' <br> ' ;
print zeinuki( 1050 ).' <br> ' ;
print zeinuki( 7350 ).' <br> ' ;

/をずっと%で考えてた……。

☆☆掲示板作成はんどあうと☆☆

POSTとか。
CGI掲示板とかでなじみ深い。今の子もブログじゃなくてWEB作成したらくっつけるのかな。
お絵かき掲示板もあるけどねー。

PHP的POINT
HTMLには「FORMタグ」という、入力を受け付けるためのタグが存在する。
FORMタグには2つの重要なプロパティがある。
・「action」… 入力された値の送信先
・「method」… 入力された値を送信する方法
<form action = "*****.php" method = "post">
methodは「POST」と「GET」がありますが、通常「POST」を使用します。
※POSTは送信した値がURLに表示されない、GETは表示される
AMAZONやwikiは別。 


入力用エリアの作成は「INPUT」タグを利用する。
INPUTのプロパティとして主に
・type … 入力ボックスの形式
・name … 名前=PHPの連想配列キー名
・value … 値=PHPの連想配列値

☆送信フォーム練習問題
都道府県は省略。ほんとこれだけなら早いんだよなぁ……。

<table border= "1">
<form action = "rensendto.php" method = "post">
<tr><td>
氏名:</td><td><input type = "text" name = "namein"></td></tr>
<tr><td>
年齢:</td><td><input type = "text" name = "age"></td></tr>
<tr><td>
性別は:</td><td><input type = "radio" name = "sei" value = "male">男性
        <input type = "radio" name = "sei" value = "female">女性</td></tr>
<tr><td>
住所<br>
都道府県:</td><td><select name = "address1"><option value="">選択してください</option>
<option value="神奈川県">神奈川県</option>
</select><br>
<font size="2">住所 例)新宿区西新宿1-22-25 ハイアットクーロン303号室</font><br>
<input type="text" name="address2" size="50" ></td></tr>
<tr><td>
電話番号:</td><td><input type="text" name="tel"  ></td></tr>
<tr><td>
その他希望があれば入力してください:</td><td><input type="text" name="other" size="80" ></td></tr>
</table>       
        <input type ="submit" name="soushin" value = "送信する">
</form

んで受け手側はこんな感じ。長いから省略。
$_POST["キー名"]で割り当てて出す。と。

print "氏名:";
print $_POST["namein"];
print "<br>";


☆IDとパスワード入力

ログインページと認証用ページを作成。
IDとPASS設定。
成功→ログイン成功、最後に会員様ようこそを表示
失敗→ログイン失敗とプログラム強制終了

ログインページ全略☆ 上のとおんなじだし。
$_POST["☆"]が変数であると。そらそーだとなんか納得。

if ($_POST["id"] == "yamazaki" && $_POST["pass"] == "1234"){
 print "ログイン成功" ;
 }
 else{
 print "ログイン失敗" ;
 exit;
 }

print "会員様ようこそ";

ここから先、本当の処理ならinsertでDBに情報を登録しなければいけないんだけど、
それはまた後日。

23:24追記
自宅にもPleiades導入~。宿題ちょっとずつやります;

12/28覚書

☆今までのおさらい

なんていうか、最初のころに比べるとすすんだなあ、と正直思う。
とは思いますが説明ちょっと早すぎっす。
count……うーん。休み中の課題にしよう。

ちょっとだけメモ。
-D studyでログインと同時にテーブル選択おk。

☆クラスの理解
ヒトが変数、行動がメソッドと考えると入りやすい。

☆年明け実習予定

BBSつくるよ!

そいでは皆様よいお年を。

2011年1月1日土曜日

1/1謹賀新年

あけましておめでとうございます。今年もよろしくお願いします。
ってもう22:30ですが(・ε・) キニシナイ

12/29 実家近所へオンサイト。報酬として栗きんとん、黒豆etcゲトー。
12/30 広川丸アジ午後船出船。
12/31 アジ干物とかたたきとなめろう丼とか作成。
1/1  干物完成し収納。12/25に上げたショウサイ&アカメの刺身、
アジ干物とトマトベースの蒸し焼きで晩御飯。


借りたPC出してすらいねええええええ。

家がどんどん磯臭くなります。
釣りバカのハマちゃんになりてえなあ。

明日は勉強します。いや、本当に。