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);
    }
}

 

タグ

, AM,