なまけもの活動日記

ゲームや音楽、サブカルチャーがすき。

4/25 インターン13回 掲示板を作ろう

 先日オンライン上での授業も始まって、なんでもインターネットで住む時代ってすごいなと思います。さて今回もオンラインでインターンをしました。

掲示板を作ろう
  今回は掲示板をつくろうというのがお題でした。まず掲示板て何ってことから始まりました。確かにあんま見ないし使わないなあと思いながら参考サイトをみて、基礎の部分まで今回は作りました。

<html>
<head><title>PHP TEST</title></head>
<body>

<p>掲示板</p>

<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
<input type="text" name="personal_name"><br><br>
<textarea name="contents" rows="8" cols="40">
</textarea><br><br>
<input type="submit" name="btn1" value="投稿する">
</form>

<?php

$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];
$contents = nl2br($contents);

print('<p>投稿者:'.$personal_name.'</p>');
print('<p>内容:</p>');
print('<p>'.$contents.'</p>');

?>
</body>
</html>

これは書き込んだ内容が表示されるまでのスクリプトですが、前回などに使ったものが使われていたりしてなんとなくそうなってるんだな、ってわかります。
https://www.javadrive.jp/php/sample/
このサイトの掲示板に沿ってやる部分は何とか出来たのですが、その後に追加したい機能を実装していくところで詰みました。実装したい機能は、
・日付(書き込んだ際の)機能
・投稿削除機能

です。この2つまで実装できたらいいな、って考えてやっていきましたが、なかなかうまくいきませんでした。別のサイトにある方法を参考にしていこうとしましたが、上のサイトで作った掲示板のスクリプトと書き方が違ったのでたぶんこのスクリプトをこことここに入れたらいけそう?って思えるところに入れたり変えたりしてやってみたのですがうまくいかず、自分でスクリプトを考えていくのはすごく難しいな、と思いました。また、正解が用意されてない(作るのでアタリマエだけど)のでどこが違っているのかわからないので「ナンデ!?」ってなります。プログラマーって毎日こういうことしてるんだなと思ったらめっちゃすごいなと思いました。

そのため、今回は自分たちでちょっと調べて理解してこよう、と決めました。解説に出てくる単語やスクリプトが理解しきれてない部分もあるので、もう一回見直しながら色々試してみようと思います。
個人的な目標として、日付を出せるようにする!というところはできるようになりたいな、と思いました。

色んな書き方がプログラミングではできるので、面白いところなんだろうけど知識がないと難しいなあ、と今回痛感しました。今回は感想ばかりになってしまいましたがこのあたりで。
家にずっといるしいい機会だと思って頑張りますー!

4/8 インターン12回 リモートでしてみよう

青のフラッグの最終回…めちゃくちゃ良かったです…。道徳の教科書よりもこの漫画読んでほしい。ウイルスの影響下でも屋内趣味ばかりなので私は元気です。でもアンダーテイルは詰みました。
 さて、コロナの影響でインターンもリモートでの開催です。全員リモートで今回は池田さんもいないイレギュラー。結構どんな感じなんだろう、って思いながら始めました。
 いろんなことがリモートになってますが、今回はJitsi Meetってツールでリモートを行いました。会話用のツールも最近使うようになってめっちゃ画面共有とかできたりモノによってはインストール不要だったりして便利ですね。趣味のTRPGとかで使おう。

今回の内容は、関数です。

☆関数
 打ち込むと決まった処理をしてくれるもの。今まで出てきたものにはphpに元から備わっているarraydataなどがあります。また、関数にあげる値である「引数(ひきすう)」、結果である「戻り値」というモノがあります。例えば

echo date("Y/m/d")のコードであれば、"Y/m/d"が引数で、
この結果のその日の日付が戻り値です。

関数はじぶんで以下の形でつくることもできます。
function 関数名(引数){処理}

例①

	function showNumber($number){
	   	echo $number ;
	   	}
	   	$number = 1+1;
	   	showNumber($number);

結果→2

うえ部分で関数の定義をして、一番下の行で関数を呼び出しています。$number は1+1なので2が結果になります。

例②

function addNum($a,$b){
    		$x = $a + $b ;
    		return $x;
    		}
            
            $total = addNum(1,2);
            echo $total;

結果→3
この一列目のように引数は複数設定できます。(なので配列も〇)
returnで戻り値を出し、ここで関数を終わらせて、変数totalにaddNum関数を代入するため結果は3になります。

例③&④

           function showWord($word){
              echo("私の好きなものは").$word.("です。<br>");
           }
           $word ="ねこ";
           showWord($word);

結果→私の好きなものはねこです
③のように戻り値がいらないものや

function showHello(){
    		  			echo"こんにちは~";
    		 }
    		 showHello();

結果→こんにちは~
引数がいらないものもあります。

☆$POSTと$GET
これは掲示板などで使える、ウエブサイトを通じてデータを表示したり取得したりすることができるものです。

form.html

<h1>データ送信フォームです(ニヤリ)</h1>
<br>
<p>×××を打ち込んでください。</p>

 <form action ="post.php" method ="post">
  お名前 : <input type ="text" name = "name" /><br>
  <input type ="submit" name="submit"value ="送信する"/>
  </form>


post.php

<body>

<p>
   <?php
        $name = htmlspecialchars($_POST['name'],ENT_QUOTES);
        echo"送信したのは".$name."さんですね。<br>";
        ?>
</p>


</body>

この2つをつかうと、experiment.coresv.com/f/misato/form.html
このようなページが作れます。すごーい!!また、postの部分をgetに変えても同じようなサイトができます。
postとgetの違いは、

*post
・サーバへ情報をおくる
・パスワードのやり取りに使える

*get
・サーバから情報を取り出す
・データの長さに上限アリ
・結果のURLが使える(上の例だと送信後のURLの結果が乗った状態のURLが使える)

実際にやってみると、postのほうは結果のURLのリンクに飛んでも、最初の入力フォームがでて、なるほど!と思いました。でもpostのほうが長さに上限がなく、パスワードのやり取りに使えるからよさそうだなと個人的に思います。

今回やってみて、思ったよりリモートでもできるもんだな~と思いました。ただ、表情が見えないのでやりにくいといえばやりにくいかも。画面の共有などができる方がわからないとき聞きやすいのでリモートのときはスマホよりパソコン類でやるのがよさそうだなあ、とも思います。
リモートもこれから増えそうだし、関数も色々で来て難しそうなので少しづつ知っていきたいです~!

3/24 インターン11回 制御構文を学ぼう

ほんとだったら今ライブに行ってたんだな~!!と思いながらブログを書いています。当初思っていたよりウイルスの影響が大きく、私の生活の中でも、実際に色んなものが中止になって悲しいけどしょうがないなあ、と思います。ライブの振替日までには収まればいいなあ。

今回は制御構文制御構文制御構文を学んでいきます。複雑になってきました。
1.制御構文とは
 ループ、繰り返しをしてくれるものです。例えば、1~100の数字を出力する際、制御構文を使えばそれらすべてを呼び出していかなくてよくなります。便利。

2.for文

    <?php 
    		for($i = 0; $i <= 5; $i++ ){
    		echo ("アメは").$i.("個です。<br>");
    		}
    ?>

この結果は、
アメは0個です。
アメは1個です。
アメは2個です。
アメは3個です。
アメは4個です。
アメは5個です。

となります。$i++なので、1ずつ増えた文章が、0~5まで出力されます。
for文の中はカウンタ・条件設定論理演算子が入っています。
カウンタ→変数の初期値
条件設定→iがどこまでか
そのため、今回は0からの5までということになってます。条件を満たすまで繰り返してくれる構文です。

3.while文

<?php
            echo ('<br>');
     		$i = -5;
     		
     		while ($i <= 5){
     		echo("アメは").$i.("個です。<br>");
     		$i++;
     		}
     ?>

結果は、
アメは-5個です。
アメは-4個です。
アメは-3個です。
アメは-2個です。
アメは-1個です。
アメは0個です。
アメは1個です。
アメは2個です。
アメは3個です。
アメは4個です。
アメは5個です。

となります。
while文はほとんどif文と一緒です。書き方が違いますが。for文は初期値を必ず計算するけど、while文は条件式に合わないと計算しない場合があるのも違いみたいです。このとき、変数加算がないと無限ループになるので注意

4.foreach文

<?php
            echo ('<br>');
     		$likefruit = array(
     						"1位" => "林檎",
     						"2位" => "オレンジ",
     						"3位" => "柿",
     						"4位" => "桃");
     					
     foreach ($likefruit as $name ){	
     			echo("私の好きな果物は").$name."<br>";
     			}
     ?>

私の好きな果物は林檎
私の好きな果物はオレンジ
私の好きな果物は柿
私の好きな果物は桃

これは最初に設定したものを順にすべて繰り返して表示してくれます。
asを忘れないように注意!

5.break

 <?php
     		echo ('<br>');
     		$i = 0;
     		
     		while($i < 10){
     					if($i === 5){
     							break;
     				   }
     				   echo $i."<br>";
     				   $i++;
     				   }
     ?>

0
1
2
3
4

これは、if文にある条件になったら処理を中断することができるコードです。そのため、今回5になった時に処理を中断するため、1~4までの数字が出力されています。

6.continue

<?php
     		echo ('<br>');
     		$i = 0;
     		while($i <= 5){
     				echo("ここが始めです").$i."<br>";
     				$i++;
     				echo("1増えて".$i."<br>");
     				//偶然なら処理を中断
     				if($i%2 == 0){
     				         echo("偶数なので処理を中断します<br><br>");
     				         continue;
     				        }
     				echo("今のアメは").$i.("個です<br><br>");
     			   }
     ?>

ここが始めです0
1増えて1
今のアメは1個です

ここが始めです1
1増えて2
偶数なので処理を中断します

ここが始めです2
1増えて3
今のアメは3個です

ここが始めです3
1増えて4
偶数なので処理を中断します

ここが始めです4
1増えて5
今のアメは5個です

ここが始めです5
1増えて6
偶数なので処理を中断します

これは処理が2つあり、3行のうち2行分の処理①と、最後の1行分の処理②があります。処理②
continue;
}
echo("今のアメは").$i.("個です

");
  }
に部分は、もし偶数だった場合実行されません。こちらは初めの偶数2になった瞬間に2以降の処理がすべてとまるのではなく、$iが5になるまで処理が続くのが特徴です。



複雑になってきてますが、いろいろ試しながら勉強していきたいと思います。へー!ってことばかりでまだどんなふうに実用していくかまだ想像しきれてませんが、特に、breakやcontinueなど、最近は外出できないので頑張ってわかるようになりたいです~!

3/18 インターン10回目 演算子は難しい

 誤字によってインターン中に大量のエラーコードを発生させました。私です。今回はPHP二回目です

 

目次

1エラー連発原因

2配列

3演算子

4条件分岐

 

1エラー連発原因

 めちゃくちゃエラー連発したのでなんで?って考えてみました。課題の部分とか打ち込みながら気づいたのは、全角を打った後、半角で打ち込まなくちゃいけないところまで全角で打ち込んでいるということです。“や)などはエラーが出た後わかりにくくてなかなか気づきませんでしたが、このミスをたくさんしていたっぽい。

それを踏まえて、

①<p>と</p>で囲む

②<?php   と  ?>で囲む

③;や.を忘れない

④全角の後半角に切り替えるのを忘れない

を気を付けていきたいです。

 

2配列

 配列はarray関数をつかって、keyによって認識するものです。変数とルールは同じ。これを使うと、たくさんデータがあっても任意のものを簡単に取り出したり出来るようになります。例えば、

 

<?php
   $number =array(10,20,30);

   print_r($number);
   echo ('<br>');
   echo $number[0];
   echo ('<br>');
   echo $number[1];
   echo ('<br>');
   echo $number[2];
?>

このコードだと

Array ( [0] => 10 [1] => 20 [2] => 30 )
10
20
30

 

こんな結果になります。echo $number○○;でArrayで入れといた要素が好きな時に簡単に出せますね。

 

他にも人名や、

<?php
   $name = array("one" => "青木",
          "two" =>"井上",
          "three" =>"内田");
   print_r($name);
   echo('<br>');
   echo("1番目の人は").$name[one].("さんです。").('<br>');
?>

→「1番目の人は青木さんです。」と表示される。

☆.を使うと繋げられるように!

 

人のデータとかでも応用できます。

<?php
   $user = array(
         "name" =>"はる",
         "age" => 5,
         "height" => 110
         );
   echo $user[name].('<br>');
   echo $user[age];
?>

これだと、名前と年齢の 「はる 5」という風に表示されます。

 

3演算子

次は前回見た演算子の続きです。なんとなくここからややこしくなるイメージ。

①代入演算子&複合演算子

 +やーの演算子の後に=が付いたものです。例えば、

-=だと$a-=$bとしたとき、「$aに$bの値を減算して代入($a=$a-$bと同じ)」という意味です。実際にしてみると

 

<?php
   echo ('<br>');
   $b = 100;
   $a = 150;
   $a -= $b;
   echo $a;
   echo ('<br>');
?>

となり、50が表記されます。

 

.=だと「連結して代入」なので

<?php
   $c = "私は";
   $d = "あなたのことが";
   $e = "好きです";
   $c .= $d;
   $c .= $e;

   echo $c;
   echo ('<br>');
?>

だと、$cが$dとくっついて、そのくっついた状況の$cと$dがくっついて…というようになって、「私はあなたのことが好きです」と表示されます

②比較演算子、論理演算子
これはたくさんあります。

f:id:Oomi:20200320025418j:plain

こんな感じ。

これらは後の分岐条件で。

 

③加算子・減算子

 個人的に、一番これが良くわからなくて難しかったです。

++$a→最初に$aに1を加えて$aを返す

$a++→最初に$aを返して、$aに1を加える

 

個人的に、結果同じになるんじゃないの?って思いました。どう違うんだろう、て。実際やってみると、

<?php
   echo ('<br>');
   $before = $a = 1 ;
//$aに1を足した後に、$beforeに値を代入する
   $before = ++$a;
   echo"前置は".$before."<br>";

   $after = $a = 1 ;
//$afterに代入した後に、$aに1を足す。
   $after = $a++;
   echo"後値は".$after."<br>";
?>

前置は2
後値は1

という結果になります。両方2になるんじゃないの?タイミングが違うってどういうこと?っておもって調べてみたら、下のサイトの解説を見てなんとなくわかりました。

 

php-beginner.com

 

タイミングが違うってそういうことだったんだなあ、と思います。後値の方もう一回$afterをよびだしたら2ってでるって理解しました。

 

 4条件分岐

条件を満たしているか?でかわる文です。「もしも~だったら、~する。」という形。

if文とswitch文の二種類があります。

①if文

if(条件式){処理・関数;}

が基本の形。

<?php
   $a = 5;
   if($a === 5){
   echo("aの値は5です。");
   }
?>

だと、aは5なので「aの値は5です。」と表示されます。

他にも、if else文やelseif文で条件が多いものもできます。

<?php
   echo ('<br>');
   $kao = 7;
   $konomi = 8;
   if($kao > 6 && $konomi > 6){
      echo("顔OK&私の好みです");
      }elseif ($kao < 6 || $konomi < 6 ){
      echo("後1歩です");
      }else{
      echo("ない");
      }
?>

→7,8で6より大きいので「顔OK&私の好みです」になります。

②switch文

こちらも同じ感じ。こちらは、条件が多いと使われます。

witch-(case -break) -default

で一セット。また、caseのまとまりをブロックと呼びます。どの条件にも当てはまらない場合に最後のdefaltに飛びます。

<?php
   $konomi =8 ;

   switch ($konomi){
   case 3 ;
   echo"ないわ~";
   break;
   case 8 ;
   echo"はあと";
   break;
   default;
   echo"問題外";
   break;
   }
?>

→この場合「はあと」になります

 

 

今回、条件式が出てきて、本格的にプログラミング!って感じになってきたな、と思います。結構覚えることも増えてきたので、少しづつ頑張って、疑問はつぶしていきたいです。

3/11 インターン9回目 PHP言語を学ぼう

 最近花粉症にやられています。そんな中インターンがありました。今回からPHP言語に入ります。

 

PHP言語とは

 web開発に使われるスクリプト言語のことで、Wikiとか、slackとかに使われているみたいです。ゲームとかwebアプリ向け。そして、htmlと組み合わせて使えますCSSみたいに、スクリプト分けなくていいのは楽かも?

 できることとしては、

「お問い合わせフォーム」や「SNS」、「予約システム」などユーザーからも情報を受け取れるものが作れることが特徴です。確かにhtmlとかでは情報を相手から受け取るモノは作れませんでした。htmlと組み合わせればできることがぐっと増えますね。

 

・使い方

 コードの書き方です。基本的に

 <?php→?>というかたちです。→の部分に色々入れていきます。例えば、その部分が 

echo(”文字列”);

とすると、その文字列が表示されます。もしも、これを2個使って列を分けたい場合は、改行コード<br>を打たなくてはなりません。打たないと2個分横にならんじゃう。

 

コメントアウト

//#は一行分のコメントアウトができます。またしたのでは

/*(この間のコメントアウト)*/

ができます。長いのは下で書くのがよさそう。

 

〇計算

計算はこんな感じです。

f:id:Oomi:20200312222117j:image

 

上四つは他の言語でもちょっと見たことがある四則計算です。一番下は何だろう、って思ってたら余りを出す計算みたいです。ちょっとどういう場面で使うのか気になります。

 

〇日付とか

よくサイトとかにある日付は

<?php echo date("Y/m/d");?>

で表示させれます。年、月、日ってことですね。

 

・変数

 中学校でよく見たやつです。phpではマークを使います。例えば、

$x=5 とすると $x+7=12 って感じです。

 

変数の決まりとしては、以下のものがあります。

f:id:Oomi:20200312222221j:image

数字や文字もいれることができるので、たくさん使う文字などを変数にしておくと後で書き換えが出たときにすごく便利。下の例だと、

 

f:id:Oomi:20200312222230j:image

 

一行目にはうえ部分の計算で12って表示が出て、二行目には「変数分かんねぇ」という文字が追加されます。もう一個便利なのは、

 

f:id:Oomi:20200312222237j:image

こんな風にすると変数の上書きができできます。らくちん~~!

 

 

・定数

他には、変数と違って再定義、上書き不可能な定数があります。これはdefine関数を使います。こんな風に、消費税の計算などにこれは便利。

f:id:Oomi:20200312222358j:image

 

・データ型

phpにはデータ型があります。こんな感じ。

f:id:Oomi:20200312222337j:image

 

4つでよかったなあ、と思います。他の言語だともっとあって覚えきれなかったので…。この辺使いながらしっかり覚えていきたいなあ。

 

 

ちょっとずつ勉強するごとにできることが増えたり、色んなページのコードを見たときになんとなくわかるようになって楽しい。phpも頑張ります~!

 

 

 

3/2インターン7回目 ワードプレス色々してみよう

インターンでした。今回はワードプレスの分からなかったところをきく回です。

 

ワードプレス

1.プラグインすごい

 今回の感想としては、プラグインすごいなあ、と思いました。めちゃくちゃやりたいことができるようになるプラグインが無料で公開されてる。インターネットとかで調べてみて、色々試してみたいです。すごく便利になります。

 

2.テーマ選びの大切さ

 個人的には、「こんな感じに作りたい!」っていうものが強くはなかったので気にしてなかったのですが、ワードプレスは簡単に作れる代わり、コードで1から作るのでなくテーマを使っています。そのため、かなりテーマによって、「こうしたいけどできない・難しい」ということがおきて、テーマを変えた方がいいかも?ってなるので、実際に作るときはかなり重要になる部分だなあ、と思いました。思い切って変えるのも大切ですね。

 

3.色々やってみることが大事

 今回私はそこまでいろいろ疑問が出てきていなかったんですが、もっと色々やっているメンバーがいっぱい疑問を持ってきたりしてて、もっと色々やってみておけばよかったなあ、と思いました。全部の機能試してみるとか。まだすべての機能使ってないので、やっぱりやればやった分慣れるし疑問も出るし、上達できるよなあ、とアタリマエだけど思いました。

 

 ほんとに今回もだけれど、このインターンで色々な確認ができたり、勉強ができたりしてるな、と思います。例えば、いっつもザーっと課題部分ぐらいしかできてないけどもっと色々試してみたほうがいいよね、ギリギリにしない方がいいよね、ってことだったり。先日やらかしたコミュニケーションのことだったり。なかなかコミュニケーションは時間だったりお願いであったり、相手のことを考えなくちゃいけなくても、大学生同士だとなあなあになって、注意やアドバイスをもらえることがないのですごく勉強になります。コミュニケーションと気遣いが下手なので…!

 

 技術的な面以外も、インターン通して勉強していきたいです。短いですが今回はおわり!

2/13 インターン6回目 WordPressを学ぶ

 ポケモンやってたらインターンの日になりました。剣盾はいいぞ。今なら感想文書けそう。

 

さて、インターンもついにワードプレスまでやってきました。ついにって感じもするけど、もう!?って感じもします。

 

〇初めに(前回の宿題)

 まず、宿題だったところ。メディアクエリのやつです。たぶん、コードはあっているのになぜかうまく反映されなくて、頭を抱えていたのですが、原因はコードの単語と単語の間に半角スペースがないことでした。なんか前もあったぞ…。

 

・コードの間の半角スペース

・{}の閉じ忘れ

・誤字脱字

 

よくこの三点でうまくいっていないことが多いので、これから気を付けていかないといけないなあ、と思います。思ってても見落としがちになる…。

 

CMSとは

 Contents Management Systemのこと。主にphp言語とデータベースの組み合わせで構成されたもののこと。今回習うwordpressCMSの一つです。

f:id:Oomi:20200214220659j:image

f:id:Oomi:20200214220703j:image

 

メリットとしては、すべてのブラウザ上で操作できたり、プログラミング知識が不要だったり、プラグインによって拡張ができるという点があるけど、

デメリットとしては、システムの癖になれる必要があったり(作った人の癖がシステムに出るため)、セキュリティ上の脆弱性がある。確かにパスワードとかめっちゃ頑張れば突破されそう。

 

wordpress

 ・テーマ

有料と無料のものがある。イメージに合ったテーマを探す。

・メディア

画像ファイルは容量に注意。10MB以上はアップできない。大き目でも1~2MBで十分。

PDFのアップ、ユーチューブ動画の埋め込み、動画のアップロードもできる。

・メリット

世界中の人が使っているので、検索で問題解決がしやすい。追加CSSでアレンジ可能。

 

 

実際に使ってみて思ったのは、めっちゃ簡単に、時間をかけずにできる、ということです。htmlとCSSだと、全部細かく打ちこまなくちゃいけなかったのに、書いてあるように入れていけば、すぐデザイン(テーマ)に反映されていく。すごーい!!確かに、プログラミングの知識がなくてもできる!これなら私でもがんばればできそう。

 

今回やってみて、実際にwordpressで作業していくのが楽しみになりました。CSSとかでいじることもあるだろうから、それも忘れないようにしつつ、楽しんで出来ていければいいなあと思います~

あともっとタッチタイピングも頑張ろうね…