@Blog{zip358.com}
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。
イロレーティングシステムをPHPで起こす.生成AIに検証してもらう.
2024.12.04
おはよう御座います.イロレーティングシステムをPHPで起こす.生成AIに検証してもらう.このコードには問題があります.K値にマイナスを入れるとバグるという事なのでその対策が事前に必要になります.このコードは生成AIが生成したものを別の生成AIに検証してもらいました.
とても便利です、わざわざコードを書かなくて良いところがとても便利ですが少し味気無い.
因みにこのコードは某O社のブログ連載を目にしたのがきっかけです.待てど暮せど連載が遅いのでこちらで記載した訳です.この頃、某O社のブログは停滞しています、恐らくそれほどアクセスビューも無さそうな気がします.
簡単にできるようで難しさを実感したのか、成功したのかは分かりませんが自分の見解はそれほどのアクセス数は出てないと思っています.
<?php
class EloRatingSystem {
private $kFactor; // K値(調整係数)
public function __construct($kFactor = 32) {
$this->kFactor = $kFactor;
}
/**
* レーティング計算
* @param float $playerRating プレイヤーの現在のレーティング
* @param float $opponentRating 対戦相手のレーティング
* @param float $result 試合結果 (1: 勝ち, 0: 負け, 0.5: 引き分け)
* @return float 更新後のレーティング
*/
public function calculateNewRating($playerRating, $opponentRating, $result) {
// 期待勝率を計算
$expectedScore = 1 / (1 + pow(10, ($opponentRating - $playerRating) / 400));
// 新しいレーティングを計算
$newRating = $playerRating + $this->kFactor * ($result - $expectedScore);
return $newRating;
}
}
// 使用例
$eloSystem = new EloRatingSystem(32);
$player1Rating = 1600; // プレイヤー1の初期レーティング
$player2Rating = 1500; // プレイヤー2の初期レーティング
$result = 1; // プレイヤー1が勝利 (勝ち: 1, 負け: 0, 引き分け: 0.5)
$newPlayer1Rating = $eloSystem->calculateNewRating($player1Rating, $player2Rating, $result);
$newPlayer2Rating = $eloSystem->calculateNewRating($player2Rating, $player1Rating, 1 - $result);
echo "プレイヤー1の新しいレーティング: $newPlayer1Rating\n";
echo "プレイヤー2の新しいレーティング: $newPlayer2Rating\n";
短期間に結果が出たとしても長期的に持続可能かという事も課題になります.一番は継続するという事が難しいです.自分みたいに継続できるのは稀なんだといろいろな人をみてきて思いました.
明日へ続く
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
NHKの番組を検索してデスクトップ通知するWEBアプリを作ろうとしている.
2024.09.26
おはようございます.NHKの番組を検索してデスクトップ通知するWEBアプリを作ろうとしています.NHK番組表はAPIから取得しそれを検索及びデスクトップ通知する機能を自分のために作ろうとしています.環境としてはPHP8.3で動き、フレームワークはLaravelを使用.フロント側はReatで作ったものをBABELで変換してJsとして動かしています.
因みに動作しているところはこんな感じですね.
今週の土曜日に一通りのことが出来るようにして一旦公開しようと思っています.最初は自分だけが使用できるものにしてバグ等がなければ正式に告知して運用していこうと思っています.
あまり重要はなさそうだけども、nasuneを使っている人なら分かるかも知れないけど番組名で録画予約する機能がないので不定期な番組は録画予約できないのが、作ろうと思ったきっかけです.何故、NHKの番組表しか無いのかは番組表のAPIはNHKしかなかったからです、クローラーを作って取得する手もあるのだけど、自分は民法で見るのは固定番組なので時間設定で事足りるから、こういう仕様になってます.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
API, BABEL, JS, Laravel, nasune, NHK, NHK番組表, Reat, きっかけ, クローラー, デスクトップ, バグ, フレームワーク, 一旦, 仕様, 固定番組, 土曜日, 最初, 民法, 録画,
エネルギーを得るためには力を使わないといけない.それが戦争の根源.
2024.09.16
おはようございます.この世から戦争がなくなれば良いのにって思うだけども進化の過程で必用だった、動物を狩って食するという行為、この行為が遺伝的に刻まれているホモサピエンス最大のバグ.今となっては人類最大のバグなのかも.
エネルギーを得るためには食するという行為が必用だけども.これもいずれ遺伝子改造で消えていくのだろうなって思っている.光を浴びるだけでエネルギーに変換する人類2.0が誕生するかもしれない、誕生するまえに争いというバグで人類が滅亡する可能性もある.
馬鹿なことを書いてみたけど、実際に人類が人類2.0に進化する場合、エネルギーをどう摂取するかは大事な課題かと思います.また、巷ではAIブームだけど、これからの子供たちは遺伝子研究の分野に進むことが良いんじゃないかな.プログラミングを勉強している人たちが大人になる頃には、自然言語処理でコードを生成してくれる事が普通になり、最終的にはプログラミング言語は機械語しか残らないと思っているので、今からプログラミングを勉強している人達は無駄にはならないけれど、20年後に職業として存在しているかは疑問ですね.
プログラミングは誰もが知っているレベルになるから、これからは遺伝子分野に焦点を当てた方が良いと思っている派です.
たまにはお花畑的な記事もよいですねえw.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
AIブーム, エネルギー, この世, バグ, プログラミング, プログラミング言語, ホモサピエンス最大, まえ, 人類, 分野, 巷, 必用, 戦争, 焦点, 職業, 進化, 過程, 遺伝子分野, 遺伝子改造, 遺伝子研究,
居住証明書が必要になった件。
2024.01.30
おはようございます、アドセンスからお支払い時にシンガポール使うから居住証明が必要だよって警告が出た話。マイナンバーカードや免許証でも証明書のかわりになるみたいなんだけど、マイナカードも免許証も有効期限があるので、その都度更新申請しなくてはならないらしいので、自分は税務署へ居住証明を申請してきました。
地方の税務署ってがらがら誰も開始直後にお客さんはいなかったので、すんなり申請できるかと思いきや住民票がいるらしく、申請書と住民票を提出しなくてはならないので翌日、再度申請に行きました。
その日のうちに発行してくれるとの事だったけど、待たなくてはならないので再再度翌日に取りに行き手間が結構かかりましたよ。そんな事が起きないためにPDF入力ファイルが税務署ホームページにあるので、手書きが面倒なひとは事前にダウンロードして記入して提出することをオススメします。
なお、官公庁のPDF入力ファイルは公式のAcrobatソフトで入力しないと日本語が入力出来ないので注意が必要です。エッジやChromeで開いて編集すると日本語漢字が入力出来ないというバグみたいなことが発生します。
明日へ続く。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Acrobatソフト, Chrome, Photo by Palu Malerba on Pexels.com, アドセンス, エッジ, かわり, シンガポール, バグ, ひと, マイナカード, 住民票, 免許証, 再度申請, 官公庁, 居住証明, 手書き, 手間, 税務署, 税務署ホームページ, 警告,
EC管理ツールを制作中です。
2023.08.22
おはようございます、EC管理ツールを制作中です。夏季休暇に少し前に前進しましたが、まだまだ作り込まないといけない部分は多くあります。ある程度、機能を追加したらリリースしたいと思いますが、現在のペースで行うとおそらく来年になりそうな気がします。あんまり頑張りすぎるとテンションが下がりそうなので自分のペースで徐々に作り上げていこうと思います。
個人開発として始めてとなるちょっと大掛かりなサービスですが、これが皆さまに受け入れられるかは未知数ですね。サブスクか無料で提供するかも含めてまだ未知数。お金を取りたいとは思っているけれど、値段設定はどうすれば良いかや規約などもちゃんとしとかないとなぁとか、いろいろお金を取るとなるとそこらへんも大事になるから・・・ね。因みにサポートは一切行わないようにしてバグなどは報告として送れる形にするつもりです。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
EC管理ツール, サブスク, サポート, そこらへん, テンション, バグ, ベース, 個人開発, 値段設定, 制作中, 報告, 夏季休暇, 少し前, 形, 未知数, 来年, 機能, 皆さま, 良いかや規約, 部分,
この世界が仮想世界だと証明されたらどうなるか?
2023.08.09
おはようございます、この世界が仮想世界だと証明されたらどうなるか?100%この世界が仮想世界だと証明される事はない、証明されたとしても次の日にはバグの修正が走りその証明は間違っているものになるだろうというのが自分の考察です。
なので、創造者がこの世界を維持したいと思っている限り、この世界が仮想世界だと証明することは永遠に出来ないと思います。逆にもう良いやと思った瞬間、この世界は崩壊もしくは消滅する可能性がある。
またメンテナンスのため、仮想世界を止めたとしても仮想世界で生きている人達にとっては何も分からないのである。時が止まったとしても何も理解することは出来ない。
自分はこの世界は仮想世界だと思っている派ですね。理由は無から有に変換されることはない恐らくないと思っているからです。初期の宇宙は無だったというこれ、なんだかハードディスクの書き込みが無い状態に似ていて、ビッグバンがOSのインストールに似ているようにも思えます。そして人がスーパーコンピューターを使用して気象予測などをシュミレーションする試みをしていますよね。人でもここまでの事が出来るのだから文明の進んだ知的生命体はそれ以上のことが可能だと思っています。恐らくひともそのうち初期の地球をシュミレーション出来るようになると思います。
まぁそんな理由から仮想世界だと思っているのです。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
OS, インストール, うち初期, スーパーコンピューター, ハードディスク, バグ, ビッグバン, メンテナンス, 初期, 地球, 宇宙, 崩壊, 文明, 有, 気象予測, 派, 無, 知的生命体, 考察, 証明,
GW最終日。総括してみました、出来ないことだらけ?
2023.05.07
おはようございます、机の中を整理するとほとんどがゴミ🚯だった中の人です。さて、GWでやろうと決めていて出来なかったことは、個人開発だけかな。プログラミングはしていたのですが、バグの修正やちょっとした機能追加が主でアプリをリリースした、WEBサービスをリリースしたとかはない感じですね。
机の中を整理していたら、昔のアイディアノートが出てきたりして大きな収穫でした。今見るとヘンテコなもので、このままリリースしたりすると決済部分などの障壁になるじゃないかなと思うサービスですが、アイディアは面白いというのがチラホラあったので良かったです。
今、二番煎じのサービスを無料でリリースしてみたいなという事を考えていて、簡単なものから時間がかかる物までなんか作ってみたい気がします。気がするだけで終わるかも知れませんが・・・。
あと、このブログをテンプレート部分をどうにかしたいなとも思っています。今のテンプレートのデザインを組み込めるようにしないと何れ、WordPressのバージョンアップで現行のテンプレート使用できなくなる可能性(フルサイト編集 (Full site editing, FSE))もあるので、これは近いうちに対応したいと思っています。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
FSE, Full site editing, GW, WordPress, アイディア, アイディアノート, ゴミ, テンプレート, テンプレート部分, バグ, プログラミング, ヘンテコ, 二番煎じ, 修正, 収穫, 昔, 机, 現行, 近いうち, 障壁,
国民年金の支払いシステムにはバグがある!!
2023.03.22
おはようございます、国民年金の支払いシステムにはバグがある事が分かりましたので、ご報告したいのですが、いま、そのバグの手続き中なのでバグの内容は控えさせてもらいます。問題が解決したらこちらのブログの記事として掲載するととも、あの河野さんに問い合わせメールでも送ろうかと思います(半分本気)。
因みに今まで国民年金を支払ってきましたが、4月から厚生年金に切り替えられます有り難いことです。フルリモートで働き始めて、もう3ヶ月が経つのかと思うと感慨深いです。何より今までのフルリモートとは違い、全てをフルリモートで完結するので、何だかいまも不思議な感覚に陥ってしまいます。自宅で働くのは不思議ですよね。
因みに働く部屋と休む部屋は別にしています。そして端末のアカウントも別にしています。本当なら回線も別回線を引きたいところなのですが、そこはVPNに頼っている感じです‥。
そんな感じで頑張りたいと思っています😄。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
VPN, アカウント, システム, バグ, フルリモート, 全て, 別回線, 半分, 厚生年金, 問題, 回線, 国民年金, 感じ, 感慨, 感覚, 手続き中, 河野さん, 端末, 自宅, 部屋,
サーバーの引っ越しのヒントです。いや答えですねw😌
2022.06.16
おはようございます。あと一ヶ月もすれば炎天下の下でお仕事をする人もいるでしょう。大変ですね。
昔はよくサーバーの引っ越しを仕事でしていました。代わりに誰か出来る人もいなかったので自分が行っていましたが、サーバーの引っ越しほど時間のかかる仕事はありません。
scp -r -p /var/www/html/ user@example.com:/home/user/www/
scp [コピー元のファイル] [コピー先のユーザー名@コピー先のホスト] [コピー先のファイル]
何より責任、重大ですから色々と経験して思ったのは、サーバーの移行作業後に何らかの「動かない」というバグとりを速やかに行えるかどうかが大事かと思います。それはある意味、経験が物を言う世界かもしれません。こんなズブの素人でも少しだけサーバーの事を理解できたので、今思えば良いことなのかもしれません。
因みに上記に記述しているコマンドを旧サーバー環境で実行すれば新サーバーへファイル転送出来ます。いちいちFTPソフトでダウンロードしてアップロードするという事を行わなくて良いです。そして何よりパーミッションやタイムスタンプまで引き継いでくれるので便利かと思います。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
-p, -r, com, example, home, html, SCP, user, var, w, www, お仕事, こと, コピー, コマンド, サーバー, それ, どり, バグ, ヒント, ファイル, ホスト, ユーザー, 一, 上記, 下, 世界, 事, 人, 今, 仕事, 何より, 作業, 大事, 大変, 実行, 少し, 引っ越し, 意味, 昔, 時間, 炎天下, 物, 理解, 環境, 移行, 答え, 素人, 経験, 自分, 色々, 記述, 誰, 責任,
最新記事を非広告記事で読みたい方用のページを作りましたよ😏。
2022.02.14
おはようございます、俊足で朝からコードを書いたりしていました😌。
さて、自分のサイトを広告無しだったら読んでも良いという人が少なからずいると思いまして、この度、テキストオンリーのページを作りました。このページでは最新記事しか読めません、過去記事を読みたい方はzip358.comよりサイトを参照くださいませ。
非広告ページ👇
https://zip358.com/tool/blog-non-ads/
因みにページの表示速度が若干遅いです、これはサーバーの処理に依存するものですのでこれ以上、速度を上げることは今の所出来ません。また、どんなプログラムなのか知りたいという方もいると思いますのでソースコードを掲載致します。これを非広告ページで見ると英字文字がずらっと並んでいるように見えると思いますが、バグではないですので悪しからず(ソースコードを記載した部分が表示されているだけです)。
尚、ソースコードを見てRSSだけで読み込みが出来そうだねって、指摘する人もいるかと思いますが自分のサイトのRSSは記事の中身が出力されない仕様でして、このようなコードになっています。取得できる方はもっと表示速度は早くなると思います・・・。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<title>RSS 非広告 blog-zip358.com</title>
</head>
<body>
<div class="container">
<div class="row">
<?php
$rss = @simplexml_load_file("https://zip358.com/feed");
if($rss){
ob_start();
foreach($rss->channel->item as $key=>$val){
?>
<div class="col-12">
<p class="h3" ><?=$val->title?>[<a href="<?=$val->link?>">*読みやすい記事へ*</a>]</p>
<p class="h4" ><?=$val->pubDate?> by <a href="https://twitter.com/zip358com">@zip358com</a></p>
<p><?=context($val->link)?></p>
</div>
<?php
}
print ob_get_flush();
}
?>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
</body>
</html>
<?php
/**
* @param $link string
* @return $reslut string
*/
function context($link=null){
$reslut = "";
if(is_null($link))return $reslut;
$htmldata = @file_get_contents($link);
$dom = new DOMDocument();
$html = mb_convert_encoding($htmldata, "HTML-ENTITIES", 'UTF-8');
@$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$reslut = $xpath->query("//*[@id=\"article\"]/div[3]")[0]->textContent;
return $reslut;
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
358, blog-non-ads, com, https, tool, www, zip, オンリー, コード, こと, これ, サーバー, サイト, ソース, ソースコ, テキスト, バグ, プログラム, ページ, もの, 人, 今, 依存, 俊足, 処理, 参照, 広告, 度, 所, 掲載, 文字, 方, 最新, 朝, 自分, 若干, 英字, 表示, 記事, 記載, 速度, 過去, 部分,
パスコードをランダムで生成するコードです。JavaScriptで書いてみました。
2021.08.27
今日は朝から蒸し暑さを感じます。あの一週間も続いた雨はどこに行ってしまったのでしょうか?東京では立て続けに悲惨な事件が起きています、報道することにより模倣犯を増やしているような気がします。
さて、今日はパスコード(パスワード)をランダムで生成するコードをJavaScriptで書いてみました。パスコードの強度はそれ程、高くないかもしれませんが一応、パスコードを生成する事が出来ます。ソースコードを書いていてうっかりミスをしてしまいまして、無限ループを発生させてバグ取りに5分ぐらい費やしました。ループした原因は違う変数を判断文で使っていたという初歩的なミスです。この頃はそういうミスは稀ですが・・・その結果、無限ループに陥っていました。
パスコードというものを作ってみて案外簡単に作れるものだと実感。これを作る前にパスコードメーカーを作成するという動画を見ました。githubにソースコードも記載していましたので考え方は参考にしましたがコードは違うと思います。たにぐちさんの動画はvue.jsを使用してパスコードを作っているのに対して、自分はネイティブjsでパスコードを生成しているという違いがあります。
https://zip358.com/tool/PassCode/
document.getElementById("btn1").addEventListener("click", () => {
const mode = {
mode0: !document.getElementById("mode0").value ? 8 : document.getElementById("mode0").value,
mode1: document.getElementById("mode1").checked ? true : false,
mode2: document.getElementById("mode2").checked ? true : false,
mode3: document.getElementById("mode3").checked ? true : false,
mode4: document.getElementById("mode4").checked ? true : false
};
const data = {
txt_cnt: mode.mode0,
txt1: mode.mode1 ? "0123456789" : "",
txt2: mode.mode2 ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ" : "",
txt3: mode.mode3 ? "abcdefghijklmnopqrstuvwxyz" : "",
txt4: mode.mode4 ? "#$&*@+-" : "",
};
// console.log(mode,data);
let str = "";
if (mode.mode1 || mode.mode2 || mode.mode3 || mode.mode4) {
let txt_str = data.txt1 + data.txt2 + data.txt3 + data.txt4;
do {
str = "";
for (let i = 1; i <= data.txt_cnt; i++) {
str = str + txt_str.substr((getRandomInt(txt_str.length) - 1), 1);
}
} while ((() => {
let flg = [];
flg[0] = mode.mode1 ? /[0-9]/.test(str) : true;
flg[1] = mode.mode2 ? /[A-Z]/.test(str) : true;
flg[2] = mode.mode3 ? /[a-z]/.test(str) : true;
flg[3] = mode.mode4 ? /[#|$|&|*|@|+|\-]/.test(str) : true;
return (() => {
let f = true;
for (const key in flg) {
if (!flg[key]) {
f = false;
}
}
return f;
})();
return false;
})() === false);
document.getElementById("view").value = str;
} else {
alert("どれかを選択してください");
}
});
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
5, github, javascript, コード, こと, これ, ソース, どこ, バグ, パスコード, パスワード, ミス, メーカー, もの, ランダム, ループ, 一, 事, 事件, 今日, 作成, 判断, 前, 動画, 原因, 報道, 変数, 実感, 強度, 悲惨, 文, 朝, 東京, 模倣犯, 気, 無限, 生成, 発生, 立て続け, 簡単, 結果, 記載, 雨, 頃,
プログラミングは世界共通語なのかも。
2020.10.26
英語がわからない方でもプログラミングコードを見れば何を書いているのか、わかってしまうのでそういう意味でプログラミングは世界共通語なのかもしれないなと思います。プログラミングで会話ができるそんなプログラミング言語ができたら、それはITエンジニアにとってかなり朗報なのかもしれないなとふと思いました。
そうなればバグの指摘なども簡単になるし、意思疎通も簡単に。これからITエンジニアになりたい方は英語は必須ですね。英語がわかれば海外からの仕事もうけれるし会社に雇われないフリーランスの仕事も軌道に乗りやすいかと思います。クラウドワークスやランサーズなどでは中々厳しいですね…。それで生活ができる人はほんの一部のひとだと思います。
お小遣い稼ぎならクラウドワークスやランサーズで出来るかと思いますが、生計を立てる事はほとんどの人が出来ないでしょう、なのでもしクラウドワークスやランサーズのような仕事の請負を行って生活していくには海外でも同じような活動を行っていかなければならいでしょう。
そういう意味でも英語は必須。新たな世界共通語を秀才なITエンジニアが開発してくれれば話は変わりますが、今の処、英語ができれば海外から仕事が取れます。因みに翻訳に頼らない日常の英会話ができると尚良いと。トイウコトデ、それらが出来ない方は、自分も含め学ばなければなりません。
地球語を読んで想像したことでした。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
IT, エンジニア, お小遣い, かなり, クラウド, コード, これ, それ, バグ, ひと, フリー, プログラミング, ほとんど, ランサーズ, ランス, ワークス, 一部, 世界, 事, 人, 仕事, 会社, 会話, 何, 共通語, 必須, 意味, 意思, 指摘, 方, 朗報, 海外, 生活, 生計, 疎通, 簡単, 英語, 言語, 請負, 軌道,
自動化の波。
2020.09.11
自動化の波がすぐそこまで来ているような気がする。ITエンジニアの驚異はノーコードアプリだと感じます。あれはかなり驚異です。カスタマイズが柔軟性をましていくと思います、その背景には人工知能技術による自動プログラム技術の進化が著しい。
自動化の話で言えばFF7Rでは人工知能がゲームをプレイしてバグを感知するそうです、こういうのは今までテストプレイする人がいて、その人達が人海戦術でこなしていたことですが、スクウェアエニックスではそれを自動化し24時間体制でバグ取りしています。この方法は他社のゲームメーカーも取り入れるでしょう。
人工知能が出来ることは何なのか、必ず正しい答えがある、ルールが存在する。この2つがある仕事は全て人工知能に自動化されることは間違いないでしょう。いまは置き換わっていなくとも徐々に人工知能に仕事は奪われていき、7割の人は解雇されるかと思います。あと30年後にはほとんどのホワイトカラーの仕事は何も規制を設けなければ人工知能に置き換わってしまうと思います。
最後に残されているのは労働の仕事やクリエイティブ、サービス業になりますが、クリエイティブな仕事も徐々に人工知能に置き換わってしまうと自分は思っています、なので最終的にロボットでは出来ない仕事だけ残ると思います。
ただ、それはまだまだ先の話でありますが、近いうちにITエンジニアの仕事は人工知能に置き換わってしまうとは思っています。それは今後、10年の間に起きると思います。なのでこの職業で働けるのもあと10年ぐらいだなと・・・。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
2, 24, 30, 7, FF, IT, アプリ, あれ, いま, エンジニア, カスタマイズ, かなり, ゲーム, ゲームメーカー, コード, こと, スクウェアエニックス, そこ, それ, テスト, ノー, バグ, プレイ, プログラム, ほとんど, ホワイトカラー, ルール, 人, 人工, 人海戦術, 仕事, 他社, 体制, 何, 全て, 存在, 感知, 技術, 方法, 柔軟性, 気, 波, 知能, 答え, 背景, 自動, 規制, 解雇, 話, 進化, 驚異,
わざわざ対策した、これでも。
2020.06.18
非同期通信する部分にデータ投げてアクセスカウンターをわざわざ増やしてくれる人がいたので、わざわざ対策した、これでも抜けてくるようだと違法な領域かと思います。
わざわざ対策しないといけないというのが、自分としては変だなと思うところ。
何故、そこまでするのか・・・。
意味がわからないが…。
そもそもあんぽんたんな自分に関わっても意味がないのではと思っている。トイレで目が覚めてアレ、アクセスが増えていると思って・・・。
一時間ばかり、ぼーけーってして10分ぐらい、対策用のコードを書いてバグとりして、まぁネタになるので今、ブログを書いています。
話全然変わるけど、Twitterで音声投稿が可能になるだってさってのをタイムラインで見てすぐにRTしました。
実装されたら面白そうだけど、いろいろと問題も出てきそうだと思います。デジタルツールってそういう所がありますよね。
ちなみに話戻して、ページを切り替えるとアクセスカウンターは増えます。その対応は出来ますがしません。どうぞアクセスカウンターを増やしてください。SEO的にもとても有り難いことなので・・・。
アクセスカウンターが増えて得することはあるけど、損することはないじゃないかと思います。初めて訪問されるユーザーにとってはアクセス数が多いページは信頼されやすいです。仕様的にはアクセスカウンター増えやすい仕様にあえてしてますよ。
数字マジック、数の印象は大体あると思います。客が並んでいるお店はもしかしたら美味しいかもと思い込むのと同じです。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
10, rt, Twitter, アクセス, アクセスカウンター, アレ, あんぽんたん, いろいろ, コード, これ, そこ, タイムライン, ツール, データ, デジタル, トイレ, ところ, ネタ, バグ, ブログ, ページ, わざわざ, 一, 人, 今, 可能, 同期, 問題, 変, 実装, 対策, 意味, 所, 投稿, 目, 自分, 話, 通信, 違法, 部分, 音声, 領域,
WEBお問い合わせフォームのお値段はいったい幾ら?
2020.01.17
WEBお問い合わせフォームのお値段はいったい幾らなのか?
堀江貴文氏はデジタルの値段は限りなくゼロに近くなると言っていたけど、無料のWEB申し込みフォームやお問い合わせフォームはある。自分もお問い合わせフォームの簡易的な物を作ってみましたのでファイルをアップしますね。
テンプレートエンジンとしてtwig3.0を使用しています、そのため動作環境はPHP7.2以上になります。ソースコードの可変は行って構いません、またこのソースコードの動作保証などは致しません。WEB担当者様が確認を行いバグ等があれば修正を行ってください。
尚、Composerでtwigをインストール済みという事が前提となります。また送信部分やエラー処理についてはご自身で機能の追加が必要となります。
サンプルページ
https://zip358.com/tool/request/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>お問い合わせ</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"></script>
<script src="js/common.js"></script>
<style>
.jumbotron {
background-color: #2bd4d0;
color: #fff;
}
.btn-primary {
color: #fff;
background-color: #2bd4d0 !important;
border-color: #2bd4d0 !important;
}
.input-group-text {
background-color: #2bd4d0;
border: 1px solid #2bd4d0;
}
</style>
</head>
<body>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<h1 class="display-4">お問い合わせ</h1>
<p class="lead">必須項目を入力し送信ボタンを押してください。<br>DEMOのため送信はできません</p>
</div>
<div class="alert alert-warning" id="error_sendmail" role="alert">
</div>
</div>
<form action="index.php" method="POST">
<div class="container">
<div class="row">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">お名前[必須]</span>
</div>
<input type="text" name="name" class="form-control" id="name" placeholder="name" value="{{name}}">
</div>
<div class="alert alert-warning" id="error_name" role="alert">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">メールアドレス[必須]</span>
</div>
<input type="email" name="email" class="form-control" id="email" placeholder="name@example.com"
value="{{email}}">
</div>
<div class="alert alert-warning" id="error_email" role="alert">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" name="twitter_account" class="form-control" placeholder="twitter account"
aria-label="twitter account" aria-describedby="basic-addon1" value="{{twitter_account}}">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">お問い合わせ内容[必須]</span>
</div>
<select name="meun" class="form-control" id="exampleFormControlSelect1">
{% for selectop in meun_option %}
<option value="{{selectop.value}}" {{ selectop.value == selectoped ? " selected":"" }}>
{{selectop.name}}</option>
{% endfor %}
</select>
</div>
<div class="alert alert-warning" id="error_meun" role="alert">
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">コメント[必須]</span>
</div>
<textarea name="comment" rows="10" class="form-control" aria-label="コメント">{{comment}}</textarea>
</div>
</div>
<div class="row">
<footer class="blockquote-footer">
<small class="text-muted">
ご自由に記入ください。
</small>
</footer>
</div>
<div class="alert alert-warning" id="error_comment" role="alert">
</div>
<button type="submit" class="mt-2 btn btn-primary btn-lg btn-block">送信する</button>
</div>
</form>
</body>
</html>
<?php
session_start();
require __DIR__ . '/vendor/autoload.php';
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
$loader = new FilesystemLoader(__DIR__.'/templates');
$twig = new Environment($loader);
$meun_option = json_decode(file_get_contents("js/select.json"));
$form = ["name","email","twitter_account","meun","comment"];
$data = [];
if($_POST){
foreach($_POST as $key=>$val){
$_SESSION[$key] = strip_tags($val);
}
}
if($_SESSION){
foreach($_SESSION as $key=>$val){
$_SESSION[$key] = strip_tags($val);
}
}
foreach($form as $key => $val){
$data[$val] = $_SESSION[$val]?$_SESSION[$val]:"";
}
extract($data);
print $twig->render('index.html.twig',["name"=>$name,"email"=>$email,"twitter_account"=>$twitter_account,"selectoped"=>$meun,"comment" => $comment,"meun_option"=>$meun_option]);
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
3.0, 358, 7.2, com, Composer, DOCTYPE, gt, html, https, lt, php, request, tool, Twig, web, www, zip, アップ, インストール, エラー, エンジン, お問い合わせ, コード, ご自身, サンプル, ゼロ, ソース, ため, デジタル, テンプレート, バグ, ファイル, フォーム, ページ, 事, 使用, 保証, 修正, 値段, 処理, 前提, 動作, 堀江貴文, 幾ら, 必要, 担当者, 機能, 無料, 物, 環境, 確認, 簡易的, 自分, 追加, 送信, 部分,
iPhoneXは欲しいけど見送りな訳。
2017.09.13
iPhoneXは欲しいけど見送りな訳は
至って簡単なことなんだけど、リニューアルされた端末だから
いろいろと問題が起きる可能性が高いと思います、なので自分は今回の
iPhoneXは見送ります。今回買いなのは、おそらくiPhone8やiPhone8 Plusなのではないかな?
iPhone8などは今回が最終形態な感じだと思うので・・・。
ハード的なバグなども比較的にないような感じがします。
恐らくだけど、iPhone9は販売されないじゃないのか?
これからは先に販売される端末は名称が変更されそう例えば
iPhoneXの次期端末はiPhoneX-1とかそういう名称に変わりそうな予感がします。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
iPhone8, iPhone8 Plus, iPhone9, iPhoneX, iPhoneX-1, ハード的, バグ, 予感, 可能性, 名称, 探求, 最終形態, 次期端末, 見送り, 覚醒, 訳, 道しるべ,
ios9.2.1がリリースした、即インストールするべし!?なぜ?
2016.01.20
ios9.2.1がリリースした、即インストールするべし!?なぜ?
その訳はパーセンテージで残量を表示している方はお気づきだと思いますが、残量にバグがあり
バッテリーを消費しても一向に残量が減らないというバグがあるからです。
今日の朝、ios9.2.1のアップデートを行ったところバグが解決されました。アップデート前は
残量が90%だったものがアップデート後は65%まで減りました。
今回のios9.2.1のアップデートはバグの修正とセキュリティーのアップデートが主になります。
ちなみにios10ではLTEより100倍高速通信ができるLi-Wiの機能が搭載される可能性があるらしいです。
100倍高速通信・・・通勤時に動画などを見たりする人には需要がありそうですが・・・
そう使わない自分みたいなタイプには宝の持ち腐れみたいな気がします。
それよりもLTEの通信料金を値下げしてもらいたいものです。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
10, 100, 65, 9.2.1, 90, iOS, Li-Wi, LTE, アップデート, インストール, セキュリティー, それ, タイプ, ところ, パーセンテージ, バグ, バッテリー, もの, リリース, 人, 今回, 今日, 修正, 値下げ, 動画, 可能性, 宝の持ち腐れ, 搭載, 料金, 方, 朝, 機能, 残量, 気, 消費, 自分, 表示, 解決, 訳, 通信, 通勤, 需要, 高速,
WEBセキュリティと人為的なバグ。
2015.12.06
先日、人為的なミス(コードミス)のため、何度かテスト用のファイルなどが
WEB上から吹っ飛んで消えちゃったっていう事象が発生した。
原因は自分のコードの書き方のミスだった・・・。
それに気付くまで謎の事象だった。
最初に自分がまず疑ったのがハッキングだったが
サーバ会社からの返答は侵入した痕跡がないとの事で
疑わしきは実行ファイルということだった。
結果、調べていくと実行ファイルのメソッドに
値が入っていなかったため一部のディレクトリを
消して良い所を全部ディレクトリが一括で消していた。
書いたのは自分です。
大体、バグっていうのは書いた本人は気づきにくいもの。
特にエラーがないバグはテストを行った時に出現したりして
そのバグ取りに大体、必死になることが多い。
結局、原因を見つけたのは社長だったという話ですが
今回のことで自社のサーバを持つことになったのが
何とも言えないのだ。
今回の原因は過信と浅いネットワーク知識やWEB知識が
問題になったんだろうと思う。そういう事もあって
WEBセキュリティ教室という本を購入したが・・・
これが今までのsqlインジェクションとかよりも深い内容の
攻撃手法が書かれていて正直、いまの自分には
半分程度の理解しか得れなかった。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
sqlインジェクション, Webセキュリティ教室, エラー, サーバ, サーバ会社, バグ, バグ取り, メソッド, 事象, 何度かテスト用, 全部ディレクトリ, 原因, 実行ファイル, 徳丸浩, 書き方, 浅いネットワーク知識, 痕跡, 過信,
cakePHPを勉強しています。
2015.06.28
cakePHPを勉強しています。昨日から丸一日、ブログ更新もそっちのけでcakePHPで掲示板の作成をしてましてました。何とかベースが制作出来た感じですが、まだまだ改良するべきところが多いので公開まではしばらくかかると思います。勉強していてつまずいて参考書が必要だなと思ったわけですがいまのところ、購入していません。
一番のつまずきは、ファイル名やDB名などを名前の振り方やモデルやビューなどの関係などありとあらゆる事を理解するのに時間がかかりました。間違っていないはずなのにと思っていた事柄がうまく行かなかったわけが凄く単純なミスだったりと・・・言うこともあり。そのバグを探すのにかなりの時間を潰しました。結果的にこういう積み重ねで覚えていくしか無いだろうと思いますが、出来ないと時間だけが過ぎてしまい休みが台無しになってしまいます。
トイウコトデ、本日は休日を消化します(´∀`)。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
cakePHP, DB名, つまずき, トイウコトデ, ところ, バグ, ビュー, ファイル名, ベース, モデル, 事柄, 休み, 休日, 作成, 公開, 参考書, 振り方, 掲示板, 時間, 積み重ね,
朝早起きしてWPを削除してWP4.2を入れ直してた。
2015.04.28
朝早起きしてWPを削除してWP4.2を入れ直してた。WP4.1とかからアップデートするとおそらくプラグインが影響して記事の新規投稿や編集が出来なくなるというバグがあるみたいです。WordPressJPの対応を待つより、バッアップを取ってDBを削除して再度、新規にWPを入れ直した方が良いと判断して、早起きしてゴニョゴニョと作業してました。がっしかしpingリストのバッアップを取っていなかった事が発覚!!
また同じようなことをしそうなのでリストUPしときます。
http://blog.goo.ne.jp/XMLRPC
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://ping.bloggers.jp/rpc/
http://ping.exblog.jp/xmlrpc
http://ping.fc2.com/
http://api.my.yahoo.com/RPC2
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
db, pingリスト, WordPressJP, WP4.1, WP4.2, アップ, ゴニョゴニョ, バグ, プラグイン, 再度, 新規投稿, 朝, 発覚, 編集, 記事,
Accessのさんぷるコードができましたので(´Д`)貼っときます。
2014.08.21
突貫工事で作ったのでバグは多少あると思いますが{例えばsql インジェクション対策とか。}、Accessのsampleコードができましたので貼っときます。なお、これで何が出来るかって言えばDBの修正、追加、削除といった基本的な動きをします{挙動不審ぎみ嘘!?}。若干、ソースコードを弄くれば使い回しが出来るようにしております。飯くったり他のことをしながらもガリガリとコードを書きました。ちなみにAccessのViewerをマイクロソフトからダウンロードすると動作すると思います。ファイルは下記からダウンロードください。 追記:暇な時に改良していきますので( ゚д゚)ノ ヨロシクとコメントも暇があれば書いときます。そして無駄なコードがありますが、それも軽量していくつもりです(`・ω・´)。ちなみにいまはDBを空にすると落ちますので・・・・(直しました。)。?samplezip358.zip?[https://zip358.com/tool/samplezip358.zip][08/21 11:26]
Option Compare Database Public db_x As Long Public max As Variant Function sel_all(tablename As Variant, tal_valname As Variant) As Variant Dim x As Long Dim y As Long Dim sql As String Dim RS As DAO.Recordset Dim db As DAO.Database Dim hoge(999, 999) As Variant Dim val_n As Variant Dim val As Variant Set db = CurrentDb sql = "SELECT * FROM " & tablename & " ORDER BY ID ASC;" MsgBox sql Set RS = db.OpenRecordset(sql) Do Until RS.EOF For y = 0 To UBound(tal_valname) hoge(x, y) = RS.Fields(tal_valname(y)) Next y RS.MoveNext x = x + 1 Loop Set db = CurrentDb sql = "SELECT MAX(ID) as maxs FROM " & tablename & ";" MsgBox sql Set RS = db.OpenRecordset(sql) max = RS.Fields("maxs") db_x = x - 1 Set db = Nothing sel_all = hoge End Function Function up_in(chk As Boolean, tablename As Variant, tal_valname As Variant, tal_val As Variant, ID As Long) As Variant Dim sql As String Dim RS As DAO.Recordset Dim db As DAO.Database Dim hoge_valname As String Dim hoge_val As String Dim hoge As Variant If chk = True Then For i = 0 To UBound(tal_valname) hoge_valname = hoge_valname & tal_valname(i) & ", " Next i hoge_val = sql_str(tal_val, "", "", True) sql = "INSERT INTO " & tablename & " (" & Left(hoge_valname, Len(hoge_valname) - 2) & ")VALUES (" & hoge_val & ");" Else hoge_valn_val = sql_str("", tal_valname, tal_val, False) sql = "Update " & tablename & " Set " & hoge_valn_val & " WHERE ID = " & ID & ";" End If MsgBox sql Set db = CurrentDb db.Execute (sql) Set db = Nothing up_in = True End Function Function del(tablename As Variant, tal_valname As Variant, tal_val As Variant) As Variant Dim sql As String Dim RS As DAO.Recordset Dim db As DAO.Database Dim hoge As Variant sql = "DELETE FROM " & tablename & " WHERE " & tal_valname & " = " & tal_val & ";" MsgBox sql Set db = CurrentDb db.Execute (sql) Set db = Nothing del = True End Function Function sql_str(hoge As Variant, tal_valname As Variant, tal_val As Variant, chk As Boolean) As Variant Dim i As Long Dim hoge_str As Variant If chk = True Then For i = 0 To UBound(hoge) If IsNumeric(hoge(i)) Then hoge_str = hoge_str & hoge(i) & ", " Else hoge_str = hoge_str & "'" & hoge(i) & "', " End If Next i Else For i = 0 To UBound(tal_valname) If IsNumeric(tal_val(i)) Then hoge_str = hoge_str & tal_valname(i) & " = " & tal_val(i) & ", " Else hoge_str = hoge_str & tal_valname(i) & " = '" & tal_val(i) & "', " End If Next i End If sql_str = Left(hoge_str, Len(hoge_str) - 2) End Function
↑クラスdbソースコード
Option Compare Database Dim max As Long Dim ID As Long Dim val_val As Variant Private Sub Form_Load() lod End Sub Sub lod() Dim db As db_db Dim val_name As Variant Dim x As Long Set db = New db_db val_name = Array("ID", "表題", "数値", "文字") val_val = db.sel_all("tableone", val_name) max = db.max + 1 If cmb.ListCount > 0 Then For x = 0 To cmb.ListCount - 1 cmb.RemoveItem 0 Next End If For x = 0 To db.db_x cmb.AddItem val_val(x, 1) Next Set db = Nothing End Sub Private Sub cmb_Click() If cmb.ListIndex >= 0 Then Viw cmb.ListIndex End If End Sub Private Sub del_btn_Click() Dim db As db_db Dim hoge As Variant Set db = New db_db val_name = Array("ID", "表題", "数値", "文字") If ID > 0 And max > 1 Then hoge = db.del("tableone", "ID", ID) End If Set db = Nothing lod End Sub Private Sub in_btn_Click() Dim db As db_db Dim val_name As Variant Dim val As Variant Dim hoge As Variant chkchk val_name = Array("ID", "表題", "数値", "文字") val = Array(max, cmb, suuzi, moji) Set db = New db_db hoge = db.up_in(True, "tableone", val_name, val, max) Set db = Nothing lod End Sub Private Sub upd_btn_Click() Dim db As db_db Dim val_name As Variant Dim val As Variant Dim hoge As Variant chkchk val_name = Array("表題", "数値", "文字") val = Array(cmb, suuzi, moji) Set db = New db_db If ID > 0 And max > 1 Then hoge = db.up_in(False, "tableone", val_name, val, ID) End If Set db = Nothing lod End Sub Sub Viw(i As Long) ID = val_val(i, 0) suuzi = val_val(i, 2) moji = val_val(i, 3) End Sub Sub chkchk() If IsNumeric(suuzi) Then If suuzi > 9999 Then suuzi = 9999 End If Else suuzi = 0 End If If IsNumeric(moji) Then moji = "文字が不正>" & moji End If If IsNumeric(cmb) Then cmb = "文字が不正>" & cmb End If End Sub
↑formソースコード
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
35, 358, access, db, https, sample, samplezip, SQL, Viewer, www, zip, いま, インジェクション, コード, こと, コメント, これ, サンプル, ソース, それ, ダウンロード, つもり, バグ, ファイル, マイクロソフト, ヨロシク, 下記, 他, 何, 修正, 削除, 動作, 嘘, 対策, 工事, 改良, 時, 暇, 無駄, 空, 突貫, 若干, 軽量, 追加, 追記, 飯,