Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21109

怠惰な大学生が楽単サイト作ったら2万アクセスきた

$
0
0

初投稿です。

はじめに

大学生が求めがちな楽単。サークルや部活に所属しているとその情報は手に入れやすいですが、そういったところに所属していない人にはあまりその情報は回ってこないものです。さらに今年の新入生には例のあのウイルスの影響で授業の情報とか入ってきません。この状況では学生によって不利が生まれると思ったので授業のクチコミサイトを作りました。
実際はプログラミング初心者が最初に作りがちな典型的な掲示板です。しかし、思いの外需要があり、 いや、本当は需要あるとわかってた。2万アクセスを得ました。
これを観ている方の中で大学生の方がおりましたらコピペして作ってみてはいかがでしょうか。

リンク

https://ishiike.matrix.jp

開発環境

macOS Catalina (10.15.4)
Visual Studio Code (1.35.1)
PHP (7.3.16)

サイトの構成

ishiike.png
※その他のページは夏期集中講義など

各曜日のPHPのコード

index.htmlは割愛

<?php//書き込まれたテキストの関数と何も書き込まれなかった場合のエラーメッセージの関数を最初に定義$error_message1="";$error_message2="";$error_message3="";$error_message4="";$posted_message="";$class_name=(isset($_POST["class_name"])===true)?$_POST["class_name"]:"";$timetable=(isset($_POST["timetable"])==true)?$_POST["timetable"]:"";$teacher_name=(isset($_POST["teacher_name"])==true)?$_POST["teacher_name"]:"";$comment=(isset($_POST["comment"])===true)?trim($_POST["comment"]):"";//改行を削除//テキストデータを1行ずつ取得して表示するため改行不可(改善したい)$comment=str_replace(array("\r\n","\r","\n"),'',$comment);//すべての項目に書き込まれたか判定//足りている場合テキストファイルに保存//足りない場合エラーメッセージを代入if(isset($_POST["send"])===true){if($class_name==="")$error_message1="授業の名前を入力してください";if($timetable==="")$error_message2="何時間目か入力してください";if($teacher_name==="")$error_message3="先生の名前を入力してください";if($comment==="")$error_message4="コメントを入力してください";if($error_message1===""&&$error_message2===""&&$error_message3===""&&$error_message4===""){$fp=fopen("[曜日名].txt","a");fwrite($fp,$class_name."\t".$timetable."\t".$teacher_name."\t".$comment."\n");$posted_message="書き込みに成功しました。";}}//テキストファイルの読み込み$fp=fopen("[曜日名].txt","r");//テキストデータを1行ずつ取得し空白で分けて配列に$dataArr=array();while($res=fgets($fp)){$tmp=explode("\t",$res);$arr=array("class_name"=>$tmp[0],"timetable"=>$tmp[1],"teacher_name"=>$tmp[2],"comment"=>$tmp[3]);$dataArr[]=$arr;}?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><htmllang="ja"><head><metahttp-equiv="content-type"content="text/html; charset=utf-8"/><title>石池|Ishiike [曜日名]</title><linkrel="icon"href="ishiike_logo.png"type="image/png"></head><body><header><h1><ahref="https://ishiike.matrix.jp"><imgsrc="ishiike_logo.png"width="210px"height="100px"></a>【曜日名】</h1></header><?phpecho$posted_message;?><formmethod="post"action="">授業名:<inputtype="text"name="class_name"value="<?phpecho$class_name;?>"style="font-size:1em;"><?phpecho$error_message1;?><br>時間:<inputtype="text"name="timetable"value="<?phpecho$timetable;?>"style="font-size:1em;"><?phpecho$error_message2;?><br>先生の名前:<inputtype="text"name="teacher_name"value="<?phpecho$teacher_name;?>"style="font-size:1em;"><?phpecho$error_message3;?><br>コメント:<textareaname="comment"rows="4"cols="80"style="font-size:1em;"><?phpecho$comment;?></textarea><?phpecho$error_message4;?><br><br><inputtype="submit"name="send"value="投稿"rows="2"cols="4"style="font-size:2em;"></form><dl><!-- 配列をそれぞれ表示 --><?phpforeach($dataArras$data):?><p><spanstyle="font-size:20px;"><?phpechohtmlspecialchars($data["class_name"]);?> : <?phpechohtmlspecialchars($data["timetable"]);?> : <?phpechohtmlspecialchars($data["teacher_name"]);?><br><?phpechohtmlspecialchars($data["comment"]);?></span></p><?phpendforeach;?></dl><br><ahref="https://ishiike.matrix.jp/">ホーム</a></body></html>

※サークルのページは[サークル名]と[コメント]の2項目

最後に

開設当初は授業だけでしたがサークルのページを追加したらもっとアクセスが増えました。
実はこれを作ろうとしたときPHPにはそれまで触れたことはなく学びながら探り探りで作ったものです。
セキュリティ的にもたくさんの不安を抱えてるものとなっていると思います。
そういった点はご指摘いただけると幸いです。


Viewing all articles
Browse latest Browse all 21109

Trending Articles