googleグラフとPHPでゴニョゴニョ…(ノ゚д゚(; ̄Д ̄)する奴作ってみた。

20151007

Logging


googleグラフとPHPでゴニョゴニョ…(ノ゚д゚(; ̄Д ̄)する奴作ってみた。
ソースとzipファイルを載せときます。ご自由に可変してお使いください。
PHPファイルが3つと保存ファイル(log)が1つできます。
パスワードはご自由にad.phpから変更可能です。
次頁などの機能はつけていません。
あくまでも、自分の体重管理のために作ってみた
ちょっとしたものです。
ちなみに自分、いま結構、デブってます(゚∀゚)
「デブって言わせない!!」
「誰もデブって言ってないよ!!」
「ゴニョゴニョ…(ノ゚д゚(; ̄Д ̄)あぁあああああ」
余談は置いといてメインはnot_fat_admin.phpです。
そちらのソースから追えば何とか読めると思います。
自分の心と同じでソースも汚いです。
コメント一切ないけどごめんね(´Д`)。
尚!!
動いているけど、正しく動いているかは不明。
間違ってたら「((´∀`))ケラケラ」笑いながら
直してお使いください。
あと、隠し要素でGET書き込みができるよ。
バグるけどニヒ。
DEMOサイト:zip358.com/not_fat/not_fat_admin.php
zipDL:not_fat.zip

<html>
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width" >
  <title>zip358.com:デブって言わせない!!管理がめん</title>
  <meta name="viewport" content="user-scalable=no,initial-scale = 1.0,maximum-scale = 1.0">
  <link rel="stylesheet" type="text/css" href="topcoat/etc/fonts/stylesheet.css">
  <link rel="stylesheet" type="text/css" href="topcoat/css/topcoat-desktop-dark.css">
  <link rel="stylesheet" type="text/css" href="topcoat/etc/css/main.css">
  <link rel="stylesheet" type="text/css" href="topcoat/etc/css/brackets.css"><!--[if lt IE 9]>
  <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  </head>
  <body style="margin: 100px;line-height:120%;background-color: #006d9d;color:#fff;">
      <form action ="not_fat_admin.php" method="post" >
          PASSWORD : <input type="password" name="pass" class="topcoat-text-input" placeholder="text"><br><br>
<?php
    $str ="";
    $matubi = array("31","28","31","30","31","30","31","31","30","31","30","31");
    $m = date("m");
    $year = date("Y");
    if(is_numeric($_GET["m"])){$m = htmlspecialchars($_GET["m"]);}
    if(is_numeric($_GET["y"])){$year = htmlspecialchars($_GET["y"]);}
    if ( $year%4 == 0 && $year%100 != 0 || $year%400 == 0 ) {
        $matubi[1] = 29;
    }
    $str.= "$m 月 <select name='day'>";
    for($i=1;$i<=$matubi[$m-1];$i++){
        $str.="<option value=$i>".$i."</option>";
    }
    $str.= "</select>日<br><br>\r\n";
    $str.= '体重 : <input type="text" name="fat"  class="topcoat-text-input" placeholder="text">Kg 例 55.55<br><br>';
    $str.= "<input type=\"hidden\" name=\"m\" value=$m>\r\n";
    $str.= "<input type=\"hidden\" name=\"y\" value=$year>\r\n";
    echo $str;
?>
          <input type="submit"class="topcoat-button--large--cta"  value="体重を記録する。"><br><br>
      </form>
      <iframe src="not_fat.php" style="border: none;" name="not_fat" width="910px" height="510px"></iframe>
<?php
    include 'ad.php';
?>
  </body>
</html>
<html>
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width" >
  <title>zip358.com:デブって言わせない!!</title>
    <script type="text/javascript" src="//www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['月/日', '体重'],
<?php
$filename = "not_fat".date("Y")."-".date("m").".log";
$fl= fopen($filename, "r");
$pt = ",";
$length = 0;
$str =array();
$i=0;
while ($csv_s = fgetcsv($fl, $length, $pt)){
    if($csv_s[1] == "00.00"){$csv_s[1] =0;}
    $str[]= "['".$csv_s[0]."',".$csv_s[1]."]";
}
$html_data = implode($pt."\r\n", $str);
echo $html_data;
?>
        ]);
        var options = {
          title: 'デブって言わせない!!',
          hAxis: {title: '月/日',  titleTextStyle: {color: '#333'}},
          vAxis: {minValue: 0}
        };
        var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 900px; height: 500px;"></div>
  </body>
</html>
<?php
//パスワードを任意の文字に変えてください。初期設定pass
$pass_w = "pass";
if($_SERVER["REQUEST_METHOD"] == "POST"){
    $err =null;
   // echo $_POST["y"].":".$_POST["m"].":".$_POST["day"].":".$_POST["fat"].":".$_POST["pass"]."<br>";
    if(!is_numeric($_POST["y"])){$err.= "年が不正です。<br>\r\n";}else{$y=htmlspecialchars($_POST["y"]);}
    if(!is_numeric($_POST["m"])){$err.= "月が不正です。<br>\r\n";}else{$m=htmlspecialchars($_POST["m"]);}
    if(!is_numeric($_POST["day"])){$err.= "日が不正です。<br>\r\n";}else{$day=htmlspecialchars($_POST["day"]);}
    if(!preg_match("/[0-9][0-9]\.[0-9][0-9]/",$_POST["fat"])){$err.= "体重が不正です。<br>\r\n<br>";}else{$fat=htmlspecialchars($_POST["fat"]);}
    if($_POST["pass"] !==$pass_w){$err.= "PASSが不正です。<br>\r\n";}
    echo "<br><br>".$err;
    if(!$err){
        $filename = "not_fat".$y."-".$m.".log";
        $fl= fopen($filename, "r");
        $pt = ",";
        $i=0;
        $length = 0;
        $csv_s_day = array();
        $csv_s_fat = array();
        while (($csv_s = fgetcsv($fl, $length, $pt))){
             $csv_s_day[]=$csv_s[0];
             $csv_s_fat[]=$csv_s[1];
        }
        fclose($fl);
        if ( $y%4 == 0 && $y%100 != 0 || $y%400 == 0 ) {
            $matubi[1] = 29;
        }
        //var_dump($csv_s_day);
        for($i=0;$i<$matubi[$m-1];$i++){
            $c_set[$i] = $m."/".($i+1).",0";
            $L = array_search($m."/".($i+1), $csv_s_day);
            if($L !==false){
                $c_set[$i] = $m."/".($i+1).",".$csv_s_fat[$L];
            }
            if($m."/".($i+1) == $m."/".$day){
                $c_set[$i] = $m."/".($i+1).",".$fat;
            }
        }
        $csv_str = implode("\r\n", $c_set);
        $fl= fopen($filename, "w");
        fwrite($fl, $csv_str);
        fclose($fl);
        $_POST = array();
        chmod($filename, 0666);
    }
}

 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, AM,