@Blog
過去の蓄積を見るために書く日記.
googleグラフとPHPでゴニョゴニョ…(ノ゚д゚(; ̄Д ̄)する奴作ってみた。
文字数[6003文字] この記事は8分30秒で読めます.
この投稿は1年以上前に公開されました。 現在の情報とは異なる可能性がありますので、ご了承ください。
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);
}
}
374番目の投稿です/292 回表示されています.
中の人🏠️
AIによるおすすめ記事
著者名
@taoka_toshiaki
※この記事は著者が30代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
最近よく読まれている記事(過去3ヶ月)
タグ
コメントを残す