コメント

2024.02.20

Logging

おはようございます、あるサービスにコメント機能を付けようかなって思っているのですが、まだ検討中です。レスが付けれるようになったら荒れたりするのかなって思うところがあるので悩んでいます。

あるサービスは運用しだして結構な時間が経過しているですが、今頃になって伸びてきています。伸びてきているということは大変嬉しいのですが、取り扱いが難しくなってきているのですね。

megaphone speakers on wooden post
Photo by Jens Mahnke on Pexels.com

毎日のアクセスも3桁台あります、3桁台あって書き込んでくれる人はアレぐらいです。書き込み系は大体、そんなものなんですよ。大体の人は見てるだけで書き込みはしない、匿名とはいえ書き込みする人って少ないですね😌。

3桁台は少ないかどうか?、凄く多いものではなく今のところレンタルサーバーからお叱りが来るほどのものではないのですが、これから先、冨樫先生になにか話題になることが起きた時、サーバーがパンクするような気がしていて不安です。

「どうしようかな~」

明日へ続く

タグ

3桁台, Photo by Jens Mahnke on Pexels.com, アクセス, アレ, お叱り, コメント機能, サーバー, サービス, ところ, ところレンタルサーバー, , , 冨樫先生, 匿名, 多いもの, 時間, 検討中, , 話題,

DKIM/DMARCの利用設定などを

2024.02.09

Logging

おはようございます、DKIM/DMARCの利用設定などがさくらレンタルサーバーから簡単にできるようになりました。これで迷惑メールに振り分けられることが少なくなりそうです。さくらレンタルサーバーを選んでいてよかった~。恐らく他のレンタルサーバーも追随すると思いますが、国内一番で対応したのはさくらレンタルサーバーだと思います。

さくらインターネットは、国が使用するサーバーとしても初めて選ばれて、株価チャートは瀑上がりしていています。そして、さくらインターネットのサーバー拠点の一つ北海道ではサーバーの拡張に50億円投資するそうです。

【カリスマ経営者】さくらインターネット社長の多忙すぎる1日が想像以上にヤバかった・・・

さくらインターネットの社長(田中邦裕)さん、恐らく自分と同世代か何かですが落ち着きと茶目っ気の二面性を持ち合わせている方だとYOUTUBEの動画を見ていて思っていたんですが、攻めるときは攻めるという姿勢などを見て良いかなって感じます。

株は持っていないのですが、何処かのタイミングで保有しときたい株でもあります👍。

明日へ続く。

タグ

DKIM, DMARC, youtube, サーバー, サーバー拠点, さくらインターネット, さくらレンタルサーバー, タイミング, レンタルサーバー, 何処か, 同世代, , 姿勢, 拡張, , 株価チャート, 田中邦裕, 社長, 茶目っ気, 迷惑メール,

レンタルサーバーでことが足りた。python動くpip

2024.01.19

Logging

おはようございます、いままでVPSサーバーで動かしていたPython部分の処理がさくらレンタルサーバーで動くことが判明した。pipはさくらレンタルサーバーに入っていなかったのでPython Packaging Authority(pypa)からget-pip.pyをさくらレンタルサーバーのローカルにダウンロードし叩くとpipがインストールされます。

pipを実行する場合は、~/.local/bin/pipで実行可能です。インストール方法はご自身で調べてみてください、ここでは説明を割愛します。pipがインストール出来たのでライブラリがインストール可能になりました、機械学習用のライブラリとかもインストール可能ですがサーバーにかなりの負荷がかかりおそらく、アカウント停止もしくは警告を受けると思います。なので、機械学習などの使用は控えください!。

因みに自分は軽めのライブラリをローカルにインストールして走らすことが出来ました。

※ここでいうローカルとはHome配下のことを指しています。

なお、さくらレンタルサーバーにはPython3.8環境です、ライブラリが対応しているかなどの確認が必要になります。

明日へ続く。

追伸:どうもさくらレンタルサーバーの人に怒られたぽっい次の日には動かなくなっていた。

追伸:でけた~。ライブラリインストール先をファイル実行時に指定することで。

タグ

Authority, bin, get-pip.py, Home配下, local, pip, pypa, Python Packaging, Python部分, VPSサーバー, インストール, サーバー, さくらレンタルサーバー, ライブラリ, ライブラリインストール先, 実行, 機械学習, 警告, 負荷, 追伸,

もうすぐ10月です。華金は技術ネタ。

2023.09.29

Logging

おはようございます、ドメインの引っ越しをしていてネームサーバーの確認とかしたい場合があると思います、そういう時はターミナルかPowerShellを開いてこんな感じにCommandを打つといま、どちらのネームサーバーに偏っているかが分かります。

nslookup -type=ns example.com

ちょっとしたことですが、知っていると便利にサーバー移行出来ますよ。あとサーバー移行時にサーバーとサーバーを繋いで、データを転送する方法などもあります。

scp -r user@remoteHost:/remote1/dir /remote2/dir

これで転送する時の要注意は、隠しファイルを転送できたかどうかです。オプションでファイル時刻やパーテーションなどもそのまま引き継いで転送することが可能です。昔、このブログでも取り上げた事がある話なので、知っている人は知っている話かと思いますが、一応、今回、久しぶりにサーバー移行をしたので、その時の技術的な話でした。

red blue and yellow round lights
Photo by Rebecca Diack on Pexels.com

オマケ:この頃思うのですが、SSLが当たり前になって無料SSLで運営しているひとが多くなったと思いますが、VPSからVPSなら比較的にサーバー移行は楽ですが、それ以外、VPSからレンタルサーバーへとかの場合は一旦、SSLを無効にして移行するしか出来ないかなと思っているのですが、どうすればスムーズに移行することが可能なのかな?

明日へつづく😌。

タグ

-Command, DIR, example.com, ns, nslookup, r user@remoteHost, remote1, remote2, SCP, type, VPS, オマケ, サーバー, ターミナルかPowerShell, ネームサーバー, パーテーション, ひと, レンタルサーバー, 一旦, 要注意,

サーバーをVPSからレンタルサーバーへ移行。

2023.09.27

Logging

おはようございます、サーバーをVPSからレンタルサーバーへ移行しています。このまま順調にサーバー移行が進めば年内に、一つのWEBシステムを残してあとは全て移行が完了します。最後のWEBシステムもレンタルサーバーでは出来ない部分だけをAPI化してあとはレンタルサーバーに移行し、そこからAPIを叩くようにする事も可能かなと思っているので、最終的には全てのドメインをレンタルサーバーに移行出来るかもしれません。

いま、VPSで運用しているドメインは広告が付いているので移行する際は広告を一旦停止して作業しないといけないのと、サービスが不安定になるので恐らくアクセス数の多いサイトは深夜帯で移行するつもりです。ちょっとアクセス数が多いので個人サイト以外は告知して移行するつもりです。

恐らく一番乱暴に移動するのはこのサイトだと思います。ごめんなさい。

因みに、大半のドメインは先日、移行を終えています😌。

タグ

API, API化, VPS, WEBシステム, アクセス数, サーバー, サーバー移行, ドメイン, レンタルサーバー, 一旦, 全て, 全て移行, 大半, 年内, 広告, 最後, 深夜帯, 移行, 部分, ,

来月の広告収益が30%ダウンで思うこと。

2023.08.27

Logging

おはようございます、来月の広告収益が30%ダウンで思うこと。何故、30%ダウンしたのかが今のところ分かっていないので対応策が取れない。自分の熱烈なファンがいたのかも知れない?ネットの世界は広大ですかね、こんな自分にもコアなファンがいてもおかしくないと思います😤。

そんなコアファンがそっぽを向いたのかもしれません。でもアクセス数は増えているサイトも有り、回転数は良いのに全然、収益が増えないのは広告が明らかにミスマッチな気がしています。毎月、広告収入が入れば良いのですが自分の場合、8ヶ月一回ペースぐらいです。このペースが5ヶ月ペースになりそうだったのですが、この調子だと8ヶ月一回ペースに戻りそうです。

この収益は運営しているサーバー代に取って代わります。サーバー代を節約するために来年、今のサーバーからレンタルサーバーにほぼ移行しようかと考え中。VPSサーバーはダウングレードしようという考えを今考えていますが、もしかすると負担費が余裕で払えるようになるかも知れないから、そういう案があるというと思って頂ければと思います🏯。

タグ

VPSサーバー, コア, コアファン, サーバー, サーバー代, ベース, レンタルサーバー, 余裕, 収益, 回転数, 広告収入, 広告収益, 来年, 来月, , 毎月, , , 調子, 負担費,

DMMのアフェリエイトを始めてみました。

2023.08.17

Logging

おはようございます、DMMのアフェリエイトを始めてみました。始めてみたけれどこのブログには埋め込むことが出来なかったので、@tosajin_kochiで少量的にポストするので様子見します、結果が出ないようだったら辞めて何か違うことに変更してみます。何故、今になってDMMのアフェリエイトを始めたかといえば、APIを調べているうちに女優さんサーチのAPIというものがDMM.comさんにはあることを知り。これで少し小遣い稼ぎが出来るじゃないのかと思ったのがきっかけでした。

実際、このAPIを使用してみた結果。女優さんといってもR18系の女優さんが検索結果に表示され、広告のリンクもFANZAへ飛ぶようになっていたのでさくらレンタルサーバーやVPSでは使用できないので断念しました。色々調べているとR指定でもOKなサーバーがあることにはあるって事を知ったんだけども、なんだかそこまでして稼ぐのも何だなってのが頭をよぎり辞めました。

Creepy Nuts – かつて天才だった俺たちへ / THE FIRST TAKE

女優さんサーチというAPIにも難点もあります、女優さんの顔などもレスポンスとして受け取ることが出来るのですが、画像が荒く問題ありです。DMMさんのアフェリエイトの規約により画像加工などは駄目だと書かれていますので、使用するのは名前だけで名前から商品画像を再度表示するように切り替えれば、稼げる可能性はあるかなと思いますが、検索上位に表示させるのは至難かなと思います。

こういうことは誰でも考えるので、利益は出ないだろうと思います、ネットの世界では後発で当てるのは少々難しいです。

タグ

API, DMM, DMM.comさん, DMMさん, FANZA, tosajin_kochi, VPS, アフェリエイト, きっかけ, サーバー, さくらレンタルサーバー, レスポンス, 再度, 利益, 女優さんサーチ, 少し小遣い稼ぎ, 後発, 検索上位, 規約, 難点,

QiitaのCLIで思うことは一つだけ。

2023.08.10

Logging

おはようございます、QiitaのCLIのベータ版がリリースされてから少し時間が経ちましたが、まだ試せてはいないものの、これは大量に記事をUPする人には適しているように思えます。

自分としてはマークダウンファイルをアップロードをGUIで付けて欲しいなって思っています、そうすればCLIの設定ができない人でもお手軽にGithubやGitLabのREADMEをUPすることなどが可能かなと思っています。

そのうち、そういう機能も追加されると思います。Qiitaはどこまで作り込むのだろうか?ユーザーさんのご意見等も取り入れながら機能の追加などをされていると思いますが、そろそろ基本的なところは完成形になっているような気がします。

そして生成AIにより恐らくQiitaもアクセス数は以前より減ったのではないでしょうか?そう思うと新たな収入源をQiitaの中の人は模索しているのかも知れません。

プラットフォームとサーバーの話。

プラットフォームは認知されひとが集まりだしたら強いですよねぇ。ひとが集まりだしたら普通のサーバーでは捌き切れなくなるのでどうしてもAWSなどに移行しないといけないと思いますが、最初はVPSなどで初めて人を集客出来たら、移行するというのがベストかなって思っています。特に個人で開発しているものをAWSで運用しても恐らくサーバー費が嵩んでマイナスになると思うので、最初は小さく初めて上手くいきそうだったら、変更していくというのがベストだと思います。

そういう訳もあり近々、あるWEBサービスを今のサーバーから切り離そうと思っています、いつ頃になるかは未定ですが、そういう思案があります。そのあるWEBサービス、ほっといても集客出来だしたので正直不安ですね(・・;)。

タグ

AWS, cli, github, gitlab, GUI, qiita, README, VPS, いつ頃, うち, サーバー, サーバー費, ひと, プラットフォーム, ベータ版, マークダウンファイル, 収入源, 思案, 生成AI, ,

G-adsから収益が振り込まれました。

2023.06.26

Logging

おはようございます、G-adsから収益が振り込まれました。金額は上限を超えた分なのでまぁまぁ纏まった金額です。このサーバーの半月分のサーバー代をペイした形になります。もしこのサーバーが月500円だったら、黒字経営になると思いますが今のところ赤字経営です。

ほったらかしで収益が増えて行っているのは株式や投資信託などですね。いま、バブルらしいので増えて行っているけどバブルって弾けるからねぇっていうのが、今までの通説だったと思いますがなんか、バブルが弾けることはないかもなって思っていて、このまま高騰していくのではないかなって思っています。

今と昔との違いはビックデータや人工知能がなかったことにあると思っていて、バブルが弾けても最小の下落で終わるじゃないかなぁと思います。

話し戻して半年間で収益が得られるようになってきたのですが、月に高校生のお小遣い程度でも振り込まれれば違うよねって思っています。

働いている会社は副業OKな会社なので何か収益化したいなって思っています。この話は明日にでも書きます。

タグ

G-ads, サーバー, サーバー代, ところ赤字経営, バブル, ビックデータ, 上限, 下落, 人工知能, 副業OK, 半年間, 半月分, 収益, 収益化, 投資信託, , 最小, 通説, 金額, 黒字経営,

年間契約:サブスクディズニープラスを検討中。#再度検討中

2023.05.26

Logging

おはようございます。以前、サブスクディズニープラスに入会すると言っていたけど、まだ入会していません。来月か再来月には入会したいなとは思っているのだけど、サブスクが増えてきているように思えて見直ししないといけないなって思っています。

Review | The Mandalorian | Disney+

今、契約中のサブスクは、ネトフリ、アマプラ、ツイッター、イラストレーター、サーバー代ですね。この中で年間契約出来るものは年間契約で契約を結んでいます。サーバー代は高いので来年からは自宅サーバーで運用とか考えているのですが、サーバーのスペックは上がるのですけど実際、運用するとなると恐らくですね。セキュリティ上の面から回線を分けたいと思っています、今ある回線をサーバー運用と私用で使うのはやばくなくないかと素人目からすると思うので。

twitter logo on smartphone screen
Photo by greenwish _ on Pexels.com

ともあれ、これ以上、サブスクの契約を結ぶと痛いので、ディズニープラスの契約を結んだらツイッターのサブスク辞める可能性高いですね。有料会員にしてもフォロワーも増えることもないし、会員特典も今のところ、あまり特典があると言えない感じなので。

タグ

on Pexels.com, Photo by greenwish, アマプラ, イラストレーター, サーバー, サーバー運用, サブスク, サブスクディズニープラス, スペック, ツイッター, ディズニープラス, ネトフリ, フォロワー, 回線, 年間, 年間契約, 来年, 私用, 自宅サーバー, 運用,

サーバー運営を黒字化するまでに、もう少しです😁。

2023.05.01

Logging

おはようございます、5月になりましたね。2日前から自分は9連休です。

さて、サーバー運営を黒字化するまでに、もう少しです😁。あともう少しでサーバー代を相殺出来る収益になります。因みにワンコインのサーバーだったら毎月、黒字化を達成できているのですが、現在、運営に使用しているのはVPSサーバーで運営していて尚且つスペックは下の中あたりを使用しているので、ワンコインが3つぐらい必要です。なので、もう少し稼げないと黒字化出来ない。

黒字化は出来ていないのですけど、半分(上)ぐらいの収益は出ているので負担は半減出来ています。いや、本当に有り難いことだと思います。

働いているので、負担にはならないのですがこれが働いていない状態だったら負担になります。そうならないように黒字化で運営したいと思っていますし、もっとサービスも作りたいとも思っています。

GWを使ってサービスの骨組みぐらいは作りたいなって思っていますが、昔に比べてアイディアが出なくなっている気がします。あと、二番煎じでも良いので作ろうという気持ちがこの頃無くて具現化していないものがあるので、そういうサービスも休日を使って作っていきたいと思っています。

因みにさくらVPSを使用して運営しています。今どきなAWSのサーバー代は高額なので個人では難しいというか自分には難しいのです。運営しているサービスの収益化が大幅な増益が出るようになれば使用するようになると思います。それまでは当分、現在のサーバーを使用するつもりでいます。

タグ

AWS, GW, VPSサーバー, アイディア, サーバー, サーバー運営, さくらVPS, スペック, 中あたり, 二番煎じ, 休日, 具現化, 半分, 半減, 収益, 増益, 有り難いこと, 毎月, 骨組み, 黒字化,

今週はchatGPTに記事を量産してもらった。

2023.03.17

Logging

おはようございます、無停電電源装置を購入しようと思っています。そして7月に大阪に行きます、それも日帰りです。まだ飛行機の予約は取っていませんがそろそろ取らないと格安ぐらいの値段で行けないのでそろそろ予約するつもりでいます。

先日、JALが片道6000円のプランを打ち出し2日でプランが中止されました。問題はサーバーにアクセスが集中して捌ききれない状態になったことが原因です。JALってAWSなんかのサーバーじゃないだね。きっと国産サーバーを使用していそうな気がします。実際、AWSなんかのサーバーを使用して、アクセス集中時はサーバー増強するタイプだったら…サービス中止にならなかったのかな???

運良く予約が取れた人はラッキーですよね。これが投稿されている時には、予約していると思いますが、自分は早朝の便で大阪に行きその日の最終便で帰る予定でいます。因みに大阪と東京だと大阪へ行った回数の方が少ないのです、一年前だったかな、大阪へ行ったときも乗る便を間違えたこともあるぐらい田舎者。大阪はまだまだ土地勘が掴めていませんが、何度か行けばなれるだろうとも思っています。

大阪でばったり会ったら、声掛けして頂けたらと思います…。それにしても未だにプロペラ機なんですよね、大阪⇔高知間は・・・・。

タグ

AWS, JAL, ぐらい田舎者, サーバー, サーバー増強, プラン, 何度, 便, 値段, 回数, 国産サーバー, 土地勘, 日帰り, 早朝, 最終便, 未だにプロペラ機, 格安, 無停電電源装置, 飛行機, 高知間,

30万件のデータを扱っている方の話を聞いて一瞬😱となる。 #laravel #Queue #worker #jobs

2022.12.01

Logging

おはよう12月!!。皆さんおはようございます。今日から寒くなるそうですね。

先日、面談の中で30万件のデータを扱っている方の話を聞いて一瞬尻込みしましたが、自分でもその処理を捌くことが出来そうだなと思ったので、ダミーデータを作って今月中に捌いてみようと思います。なお、ローカルサーバーを使用して捌くのでレンタルサーバーやクラウドサーバーでメモリリークなんかで落ちたりしたらごめんなさい🙇。

因みに30万件のデーターをどう捌いているかといえば、非同期処理(Queue)で捌いているとの事。フレームワークはLaravelを使用し、非同期処理はララベルの機能であるキューを使用してバックエンドで処理を立ち上げているとの事。要は個々プロセス複数立ち上げて並列処理で動かすという事です、プロセスを立ち上げ過ぎたら、メモリ食いすぎてサーバー事態が落ちる可能性があるので別サーバーで動かすのが理想ぽっい、その場合はコネクションの設定してあげないといけない事やプロセスをどれぐらい立ち上がると良いのかなどの設定が必要みたいですね。

php artisan queue:table
php artisan migrate

ともあれ自分でダミーデータを用意して試してみないと感覚が掴めないし、実際上手くいくかなどが分からないので試してみます😳。

明日、1万件のダミーデーターを複製(コピペ)して30万件のエクセルファイル作る方法を記載します。

タグ

12, 30, jobs, Laravel, Queue, worker, エンド, キュー, クラウド, こと, サーバー, ダミー, データ, データー, バック, フレームワーク, プロセス, メモリ, ララベル, リーク, レンタル, ローカル, 一瞬, , 並列, , , 事態, 今日, 今月, 使用, 個々, 先日, 処理, , 可能性, 同期, , 機能, 皆さん, 自分, 複数, , , 面談,

Qiitaのfeedを取得して表示するだけのコード。 #php

2022.11.05

Logging

おはようございます、土曜日の朝ですね😗。

今日は文化の日にQiitaにUPしたfeedを取得して表示するだけのコードを書きました。見た目はこんな感じでQiitaの雰囲気を取り入れたデザインにしています。デモ版として実際にサーバーで起動しているモノです、feedを取得しているユーザーは自分を入れて3人です。

表示する人数が多くなるとページを描画する時間が遅くなるので実質、10人が限度かも知れないです。もし何人ものユーザーを取得したいと考えている方は表示部分と処理部分を別けて、尚且つ処理部分は非同期処理で変更することを推奨します。

尚、明日には2つに別けたプログラムコードを別記事として記載しますので、しばしお待ち下さいませ🙇。

今回のソースコードはこんな感じになってます。

<?php
    function get_Qiitafeed(string $feedUrl){
        $xml = @simplexml_load_file($feedUrl);
        if(isset($xml->entry)){
            print("<ul class='qiita_feed-list'>");
            foreach($xml->entry as $key=>$val){
                print("<li><a href='{$val->url}'>".$val->title."</a></li>");
            }
            print("</ul>");
        }
    }
?>
<!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">
<style>
    .qiita_feed-list > li{
        /* font-weight: bold; */
        color:aliceblue;
    }
    .qiita_feed-list > li > a{
        color:aliceblue;
    }
    body{
        background-color:#60b111;
    }
    .shadow-lg {
        box-shadow: 0 1rem 3rem rgba(255,255,255,.195)!important;
    }    
</style>
<title>Qiita-feed</title>
<?php
    require $_SERVER['DOCUMENT_ROOT'] ."/header_script.php";
?>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1 class="text-light">Qiita-feed</h1>
            </div>
        </div>
    </div>
    <div class="container mt-2">
        <?php
            $Id_List = ["taoka-toshiaki","mpyw","suin"];
            foreach ($Id_List as $key => $id) {
            ?>
        <div class="row shadow-lg p-3 mb-5 bg-body rounded">
            <div class="col-12">
                🌿<span class="text-light">://qiita.com/<?=$id?>/feed :[引用]</span>
                <?=get_Qiitafeed("https://qiita.com/".$id."/feed")?>
            </div>
        </div>            
            <?php
            }
        ?>
        Copyright <?=date("Y")?>  <a href="https://358tool.com">358tool.com</a>
    </div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.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>

タグ

10, 2, , feed, feedUrl, function, GET, lt, php, qiita, Qiitafeed, string, UP, お待ち, コード, こと, サーバー, ソース, デザイン, デモ版, プログラム, ページ, もの, ユーザー, 人数, 今回, 今日, 何人, 処理, 別記事, 取得, 同期, 土曜日, 変更, 実質, 実際, 感じ, 推奨, 描画, 文化の日, , 明日, 時間, , 自分, 表示, 見た目, 記載, 起動, 部分, 限度, 雰囲気,

staticかdynamicか、php-fpmの話。#php #apache

2022.11.01

Logging

おはようございます、メモリが肥大化して落ちました🤮。

先週の朝、メモリが肥大化して落ちてしまいました。今まではphp-fpmを1時間置きに再起動していましたが、それを変更した途端。メモリを食ってしまい落ちたわけです。

php-fpmの対応はこちらのサイトを参考にしました、尚、対応方法はそちらの記事を参照ください。その記事を読んでいて思ったことはやはりサーバーを増強したいということです。

でもVPSレンタルサーバーはサクサク表示させるには、結構お金がかかってしまいます、だったら固定IPを引いて自宅サーバーで運用した方が良いのかもしれないなってこの頃、思っています。

そうすればメモリはかなり詰めるし処理もそれなりに早くなります。恐らく瞬速で表示されるようになりますが、震災などが起きると忽ちダウンしてしまいますよね。

そう考えると・・・微妙ですね。

やはりVPSサーバーをもう一つ借りて調整するか、VPSサーバーと自宅サーバーを同期して運用するかだと…。

タグ

, Apache, dynamic, IP, php, php-fpm, static, VPS, お金, かなり, こちら, こと, サーバー, サイト, そちら, それ, それなり, ダウン, はり, メモリ, もう一つ, レンタル, わけ, , 先週, 再起動, 処理, 参照, 参考, 固定, 増強, 変更, 対応, 微妙, , 方法, , 瞬速, 自宅, 表示, 記事, , 途端, 運用, 震災, ,

phpでソケット受信をする事だけ覚えとけば良い。#php #code

2022.10.27

Logging

おはようございます。Socket.ioというサービスをご存知ですか。あれ良いですよね。

さて、Socketとはいう意味は割愛させて頂き、知っていることを前提に話しますとPHPでSocketサーバーは立てれないじゃないかなって今のところ思っています。localhostや0.0.0.0とかならSocketサーバーは立てれるけど、ドメイン有りきでは難しいような気がします。

なので、Socket.ioなんかを使用してnode.jsなんかでサーバーを立てるのが定石かと思います。尚、webSocketのサーバーに対してPHPで送受信は可能です。要するにクライアント側はPHPでも可能ですね。

自分もAPIサーバーに対して常時通信処理を行っています。

PHPライブラリの使用して接続を確立しています、ライブラリはratchetという有名所のライブラリを使用しています。

composer require ratchet/pawl
<?php

require __DIR__ . '/vendor/autoload.php';

\Ratchet\Client\connect('wss://example.com')->then(function($conn) {
    $conn->on('message', function($msg) use ($conn) {
        echo "Received: {$msg}\n";
        $conn->close();
    });

    $conn->send('Hello World!');
}, function ($e) {
    echo "Could not connect: {$e->getMessage()}\n";
});

上記のようなPHPのソースコードで送受信が可能です😋

タグ

0.0.0.0, API, Code, Composer, io, JS, localhost, node, php, ra, ratchet, require, Socket, webSocket, あれ, クライアント, こと, ご存知, サーバー, サービス, ソケット, ところ, ドメイン, なん, ライブラリ, , , 使用, 処理, 前提, 割愛, 受信, 可能, 名所, 定石, 常時, 意味, 接続, , , 確立, 自分, 送受信, 通信,

そういやインフラ系やサーバーサイドのYOUTUBERってあまり知らないよね。

2022.10.26

Logging

おはようございます。先日、コロナワクチンを接種して熱が出たので昨日、薬を飲みました。本日は通常と変わらないですという予約投稿を書いている日曜日の夜。

さて、今日はサーバーサイドのYOUTUBERを見かけたのでご紹介です、お名前はうんちゃまさん、何故、そんな名前なのかや動画をまだ三本しか見ていないので、どんな人なのか等は分からない部分は有るものの。そんな悪人さんではないみたいなので、今回、ご紹介します。

マイクラサーバーのセキュリティ対策って何をするの?【マイクラサーバーお悩み相談室】

サーバーを建てるに当ってどういう所を気にしているのかとか、自分の知見はどの程度なのかの答え合わせが出来て良かったと思っています。

因みにうんちゃまさんは、マイクラサーバーを運営している人です、自分も昔、マイクラサーバーを運営したいなと思って友人にマイクラサーバーは儲かるのか質問した事があります。結果、儲からないとの返答を得たので結局、運営せずに今に至っています。うんちゃまさんは、有志などがいて何とかなっているらしいです。自分もそういうITエンジニアの横のつながりが欲しいなというこの頃。

トイウコトデ、うんちゃまさんのYOUTUBEチャンネルはこちら

散財系鯖主うんちゃま

タグ

YOUTUBER, インフラ, うん, コロナ, ご紹介, サーバー, マイクラ, ワクチン, 三本, 予約, , , , 今回, 今日, , 先日, 動画, 友人, 名前, , 悪人, , 投稿, 接種, 日曜日, , 昨日, 有志, 本日, , , 知見, 程度, 答え, 結果, 自分, , 質問, 返答, 通常, 運営, 部分,

Next.jsやNuxt.js.コレやアレやでport80は使えない。

2022.10.15

Logging

おはようございます、土日は雨が降るとか降らないとか🥕。

さて、Node.jsを飛び越えRact.js、Vue.jsを飛び越えてNext.jsNuxt.jsの事を調べてたりデモページを起動してみたりして、わかったこと。コレはアプリ開発の為の道具なんだという事を改めて認識。

オープンなWebサーバーで動くように設計されていない。ポート80番上で動くように設計されていないのだから、この理由はnode.jsのインストール仕様や動作仕様が関係しているような気がします。

TypescriptとNext.jsをアプリ開発しながら学んでみよう【Typescript入門】

Next.jsやNuxt.jsが出来た背景はHTMLコードを記入したりするのが面倒くさいからだと…w。だからこういうフレームワークが出来たんだろう。フレームワークの概念はLaravel等と概念的にはあまり変わりないので、まぁそんなにって思うけど、初学者はVue.jsを勉強してNode.jsを触った後にRact.js、Next.jsが良いと思います。因みにVue.jsのフレームワークがNuxt.jsです。

Next.jsでlocalhost:3000で表示させるのは簡単なだけど、独自ドメインで表示する方法はドキュメント以外に表示されていなかった。ググっても出てこない事もあるのだなと・・・。

ツイッターにメモとして呟いて置きましたので、そちらを参照ください。この独自ドメインを使う調査に数十分使用してしまった。この時間、とても勿体無いメンターが欲しいなって思います。

タグ

80, html, JS, Laravel, NEXT, node, nuxt, port, Ract, vue, web, アプリ, アレ, インストール, コード, こと, コレ, サーバー, デモ, フレームワーク, ページ, ポート, , 仕様, 初学者, 勉強, 動作, 土日, , 概念, , , 理由, 背景, 記入, 設計, 認識, 起動, 道具, 開発, 関係, ,

さくらVPSの仕様なのか、分からないけど。

2022.10.14

Logging

おはようございます、昨日は暖かい陽気でしたね🫠。

さて、昨日ドハマリして数時間、時間を費やしてしまった問題が有りました。結論から言えばOSのバージョンの関係で上手くいかなかった。さくらの中の人(開発者)、OSバージョンアップした際の挙動を確認して無さそうな気がします。

どんなトラブルになったのかと言えば、こんな感じ。

作業用VPSサーバーを設置してWEBのコントロールパネルからssh鍵の設定して作業に取り掛かろうとテラターム(ローカル)でログインした所、エラーが出る。

何度、トライしてもパーミッションが駄目だよと弾かれるので、ウインドウズでユーザーの設定なんかを変更したりしたのだけど駄目だった。

リナックスやMacからだとログインできるだよね、なのでコレはWindowsの問題だと思っていた、パーミッション原因だと思っていたのだけど、前サーバーはssh鍵付きでログイン出来てたので変だなと思い、前サーバーのssh鍵を変更してみたら、こちらはすんなりとログイン出来てしまった。

ここで何が違うかと言えば、OSのバージョンだけ8系と9系の違いでログイン出来なくなる。恐らくこちら側の設定がどうこうではなく、何か・・・の接続時のデータ送受信で変になっている気がします。

この事象をさくらVPSに問い合わせしていないので、原因は分からないだけど恐らくOSのバージョンの違いで今のところ発生している問題だと思います。

タグ

Mac, OS, SSH, VPS, web, Windows, アップ, ウィンドウズ, エラー, コレ, コントロール, サーバー, さくら, ターム, テラ, ドハマリ, トライ, トラブル, バージョン, パーミッション, パネル, ユーザー, リナックス, ローカル, ログイン, , , 仕様, 何度, 作業, 原因, 問題, , 変更, 感じ, , 挙動, , 昨日, 時間, , 確認, 結論, 設定, 設置, , 鍵付き, 開発者, 関係, 陽気, , 駄目,

制限付きのクロンを無限寿限無にする方法。 #php #無限 #cron

2022.10.12

Logging

おはようございます🦏。昔の文章を読んでくれて今の記事を読まないユーザーさんがいます、凹む😖。

さて、今日はさくらレンタルサーバーでcronを制限以上に使う方法を数年前に書いた記事が未だに読まれたりするのでプログラムコードを直してタイトルも直してQiitaGithubにUPしました。

そのUPした記事があまりアクセスが跳ねなくて少しがっくりしたのがスポーツの日の朝の事です。Qiitaは何だか触りの記事かとても専門性の高い記事が人気を集めるだなって事を、この頃理解したのですが、自分は何方にも寄っていない記事なので跳ねないのかも知れません。

ソースコード貼り付けて置きます。尚、使い方などはQiitaGithubを参照してください。

<?php
date_default_timezone_set('Asia/Tokyo');
class cron
{
    public function __construct(mixed $filepath = "")
    {
        $val = @file_get_contents($this->pval($filepath));
        $obj_ = @json_decode($this->pval($val));
        $obj = (object)[];
        foreach ($obj_ as $key => $value) {
            $obj->name = "month";
            $obj->val = $value->m;
            if ($flg = $this->trigger_check($obj,"m",1,12)) {
                $obj->name = "day";
                $obj->val = $value->d;
                if ($flg = $this->trigger_check($obj,"d",1,31)) {
                    $obj->name = "hour";
                    $obj->val = $value->H;
                    if ($flg = $this->trigger_check($obj,"H",0,23)) {
                        $obj->name = "minutes";
                        $obj->val = $value->i;
                        if ($flg = $this->trigger_check($obj,"i",0,59)) {
                            $obj->name = "week";
                            $obj->val = implode(",", $value->w);
                            if ($flg = $this->trigger_check($obj,"w",0,0)) {
                                $this->command($value->command);
                            }
                        }
                    }
                }
            }
        }
    }
    public function command(mixed $command_val = "")
    {
        $command_val = $this->pval($command_val);
        exec($command_val . " > /dev/null &");
        // print "よろしくお願いします~~~!!".PHP_EOL;
        return true;
    }

    public function pval(mixed $val = "")
    {
        if (is_array($val)) {
            foreach ($val as $key => $value) {
                $val[$key] = strip_tags($value);
            }
        } else {
            $val = strip_tags($val);
        }
        return $val;
    }

    public function trigger_check(mixed $variable = "",mixed $d="",int $min=0 ,int $max=0)
    {
        if (!$variable) return false;
        if ($variable->val === "*") return true;
        switch ($variable->name) {
            case 'week':
                $value = @explode(",", $variable->val);
                return (int)$value[(int)date($d)] === 1 ? true : false;
                break;
            default:
                if (preg_match("/^(\*\/[0-9]{1,})$/", $variable->val)) {
                    $value = @explode("*/", $variable->val)[1];
                    if (is_numeric($value) && $value >= $min && $value <= $max) {
                        return (int)date($d) % $value === 0 ? true : false;
                    }
                }
                if (preg_match("/^([0-9]{1,}\,{1,})/", $variable->val)) {
                    $value = @explode(",", $variable->val);
                    $value = array_map('intval', $value);
                    return in_array((int)date($d), $value, true) === true ? true : false;
                }

                $value = (int)$variable->val;
                if (is_numeric($value) && $value >= $min && $value <= $max) {
                    return $value === (int)date($d) ? true : false;
                }
                return false;
                break;
        }
        return false;
    }
}

if($argv[1]){
    //argv
    new cron($argv[1]);
}


タグ

39, Asia, class, cron, date, default, github, lt, php, public, qiita, set, timezone, Tokyo, UP, アクセス, クロン, コード, サーバー, さくら, スポーツ, ソース, タイトル, プログラム, ユーザー, レンタル, , 人気, , 今日, 何方, 使い方, 制限, 参照, 寿限無, 専門性, 少し, , 文章, 方法, , , , 未だ, 無限, 理解, 自分, 記事, ,

WP予約投稿ツイートプラグイン作り方。#php言語 #code #v2

2022.10.11

Logging

おはようございます😤 お仕事に飢えてます…寒い季節ですね…。

さて、今日はWP予約投稿ツイートプラグイン作り方を記載していきます。ワードプレスでプラグインを作る場合はWordPressの下記の場所に任意のフォルダを作り、その中にディレクトリ名(任意名)と同じファイル名でphpファイルを作ります。※昔の名残なので今は命名が違っても動くかも知れませんが・・・。

cd /wp-content/plugins
mkdir mytweets
vi mytweets.php

そして、命名したファイル名を開き、ファイルの上部に下記のコメントを記載します。プラグイン名やプラグインの説明、プラグインバージョンをそれぞれ変更して頂き保存、その後サーバーサイドにアップロードします(フォルダごと)。

<?php
/*
Plugin Name: My tweets
Description: tweets
Version: 1.0
*/

これで何も動作しないプラグインが出来上がります。

後はコマンドラインからプラグインフォルダにcomposerをインストールしtwitteroauthのライブラリを入れます。

此処までが前手順です。此処までで挫折した人は結構いると思います🙄。

因みに此処までの事がすんなりと出来る人は、このブログの情報は必要ないものです。なのでココからはソースコードを記載します。WP予約投稿ツイートプラグインなんてオチャノコサイサイだと思います。

<?php
/*
Plugin Name: My tweets
Description: tweets
Version: 1.0
*/
if (!defined('ABSPATH')) exit;
require_once  "tw-v2-config.php";
require_once  "./vendor/autoload.php";

use Abraham\TwitterOAuth\TwitterOAuth;

function mytweets($new_status, $old_status, $post)
{
    
    if ($new_status == 'publish' && $old_status != 'publish') {
        try {
            $connection = new TwitterOAuth(APIKEY, APIKEYSECRET, ACCESSTOKEN, ACCESSTOKENSECRET);
            $connection->setApiVersion('2');
            $response = $connection->post('tweets', ['text' => get_the_title($post->ID) . "\n" . get_permalink($post->ID)], true);
        } catch (\Throwable $th) {
            //throw $th;
        }
    }
}
add_action('transition_post_status', 'mytweets', 10, 3);

上記のコードを記載した上で上書き保存&アップロードします。その後ワードプレスの管理画面よりプラグインを有効にして出来上がり、今回はtwitteroauthのライブラリを使用しましたがcrulなどのを理解している人はライブラリは特に必要ないのかなとも思います。ライブラリを使用すればお手軽ですが、万が一何かあった時に困るのでライブラリを使用せずにコードを書くという方もいらっしゃると思います。

自分も極力、公式のライブラリしか使わないようにしています🙇。

トイウコデ、ワードプレスのプラグインの作り方でした。

タグ

2, cd, Code, description, lt, mkdir, My, mytweets, name, php, plugin, plugins, Tweets, Vers, vI, WordPress, wp, wp-content, アップロード, お仕事, コメント, サーバー, それぞれ, ツイート, ディレクトリ, バージョン, ファイル, フォルダ, プラグイン, プレス, ワード, 上部, 下記, , 予約, , 今日, 任意, 作り方, 保存, 名残, 命名, 場合, 場所, 変更, 季節, , 投稿, , 言語, 記載, 説明,

Dockerは楽だなという事を今頃理解しましたよ。 #vbox #docker

2022.10.03

Logging

おはようございます、月曜日の朝はテンション低めな方も多いはず😇。

さて、今日は先週の木曜日と金曜日にふと今後のためにDockerをもう少し触ってみようと思い作業終了後触ってみました、触れて気づいた事は開発環境を作るのがとても楽だということ(気づくの遅い?🫠)。自分は昔の人間なのでvisualboxばかり触っていたのですがDockerは素晴らしい。サーバー周りが得意な人にイメージを作ってもらってそれを共有すれば皆、同じ環境下で開発が出来るので良いという事に今頃気づいた・・・。

 docker run -it -d -v C:\var\www\html\:/var/www/html --privileged -p 80:80 --name こんてな命名 イメージid /sbin/init

※Visualboxでも可能ですけどね。Dockerのだとそこが楽だしマウント(フォルダ共有)もスムーズに行くので自分は良いなと感じました。

ちょっと残念だった点は自宅で作業している中、バッファローのNAS🍆に作業ファイルを入れているのですが、それとは共有出来なかった点です、対応として実PCをrobocopyしてNASと同期を取るという形にしました。これで問題はなくテスト環境下で開発ができます。尚、高級なNASではそういう問題なく上手くいくそうですよ。※NASはバックアップデータになりました。

robocopy <コピー元> <コピー先> /E /DCOPY:DAT

尚、mirのオプションにしなかったのには理由があります。コピー元のファイルが消えたり、ディレクトリが破損した場合、コピー先のファイルやディレクトリが消えて無くなるらしいので・・・。完璧なミラーリングは辞めました。

こんな感じで快適なテスト環境が作れます(上記のコマンド参考に)。

タグ

--privileged, -p, -v, 80, D-, docker, html, ID, init, IT, name, run, sbin, var, vbox, Visualbox, www, イメージ, こと, こんてな, サーバー, スムーズ, そこ, それ, ため, テンション, パス, フォルダ, マウント, , , 人間, 今後, 今日, 今頃, 低め, 作業, 先週, 共有, 可能, 周り, 命名, 得意, , , 月曜日, , 木曜日, 理解, 環境, , 終了, 自分, , 金曜日, 開発,

有難う🎉一年と七ヶ月と二十九日😌で達成。

2022.09.30

Logging

おはようございます、御機嫌よう😋。

アイキャッチー画像とタイトルでお分かりかと思いますが、振り込み金額の上限を超えた為、振り込まれます。この振り込まれたお金の使い道はまだ決まっていませんが、大切に使います😌。

毎月、大体レンタルサーバー費用と相殺出来る金額を稼いでいるようです。先月からサービスを稼働させて3つのサービスで運用しています。これにより今月からまぁまぁな金額が発生してきましたが、それでもこれだけで生きてはいけません。

毎月、15万ぐらい稼いでいる人は強者ですね。やっぱりYOUTUBE始めた方が良いのかな🤔。昔、1000人の登録者でもYOUTUBEは小学生(高学年)のお年玉ぐらい入ると聞いた事があります。今は広告単価が下がっているようなので、もう少し低いかも知れませんが放っといても稼ぎがでるというのは、素晴らしい事ですね。

自分の今後の運営目標は、毎月、お金が振り込まれるようになる事です。これを達成出来れば何とかなりそうな気がします。今の現状、クラウドワークスの仕事が取れなかったら投資で何とか引き落としペイ出来る感じで生きているので・・・。ちゃんと収入が発生するシステムを構築したいなって切実に思います。

タグ

1000, 15, , youtube, あい, お分かり, お年玉, お金, キャッチー, これ, これだけ, サーバー, サービス, タイトル, レンタル, , , , 上限, , 二十九, , , 今後, 今月, 使い道, 先月, 単価, 大体, 大切, 学年, 小学生, 広告, 強者, , , 毎月, , 画像, 発生, 登録者, 目標, 相殺, 稼働, 自分, 費用, 運営, 運用, 達成, 金額,

Sqliteで作った簡易掲示板のコードを配布致します。#php #code

2022.09.20

Logging

おはようございます。台風は過ぎ去りましたがせっかくの三連休が残念です💦。

今日は先日、Sqliteを使用して簡易掲示板を作ってみましたのでコードを配布致します、尚、PHP8の環境下で動作させています(PHP7系でも動作すると思います)。

Sqliteってnow()関数がなかったりだとか、Deleteする時に、noカラムを昇順しlimitを使用して削除出来ないだとか、いろいろとMysqlとは違う所があり、面倒だなと思いながらコードを書きました、尚、SqliteはWebサーバーの階層に置かないように、置いても良いですが・・・。そのままの状態だと誰でもダウンロードが可能になってしまいますのでご注意ください。自分は地下に眠らしています😅。

一応、二重投稿防止の為に20秒経過しないと再投稿出来ないようにしています😌。トライしていない事は禁止ワード等がありません🤔。つけようと思ったのですがまぁ良いかなと、、、。

動作している環境のリンクはこちら。

https://reborn9.sakura.ne.jp/

軸となるPHPのソースコードを2つ貼っときますね。

<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!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/5.1.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link rel="stylesheet" href="assets/css/style.css?<?= time() ?>">
    <title>掲示板</title>
</head>

<body class="p-3 text-white">
    <div class="p-4 shadow rounded" style="background-color:#d6dbdf;">
        <div class="container mt-5">
            <div class="row">
            <div class="col-12 text-center">
                <h1 class="shadow" style="color:#195a57;">掲示板::version 2.5</h1>
            </div>
                <div class="col-12">
                    <div class="input-group shadow rounded">
                        <div class="input-group-append">
                            <span class="input-group-text bg-dark text-white" id="my-addon">ニックネーム</span>
                        </div>
                        <input class="form-control" type="text" name="name" placeholder="ニックネームを入力" aria-describedby="my-addon">
                    </div>
                    <div class="form-group shadow rounded">
                        <label for="my-textarea">コメント</label>
                        <textarea id="my-textarea" class="form-control" name="comment" rows="7"></textarea>
                    </div>
                    <button id="btn" class="mt-2 btn btn-info text-white shadow rounded" type="button">投稿する</button>
                </div>
            </div>
        </div>
        <div class="container mt-5">
            <div class="row">
                <div id="view" class="col-12"></div>
            </div>
        </div>
    </div>
    <footer>
        <a href="/">TOP</a> :: © Reborn9.sakura.ne.jp <?=date("Y")?>
    </footer>
    <input type="hidden" name="csrf_token" value="<?= $csrf_token ?>">
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.min.js"></script>
    <script src="assets/js/main.js?<?= time() ?>"></script>
</body>

</html>
<?php
class db
{
    var $pdo = null;
    function __construct()
    {
        try {
            $this->pdo = new PDO("sqlite:../../bbs.sqlite3");
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        //code...
        } catch (\Throwable $th) {
            //throw $th;
            print $th->getMessage();
        }
    }
    function select_limit()
    {
        if($this->pdo){
            $stmt = $this->pdo->prepare('select * from bbs order by no desc limit 0,5');
            $stmt->execute();
            $result = $stmt->fetchAll();
            $stmt = null;
            $this->pdo = null;
            return new view($result);
        }
    }
    function insert($name,$comment,$sns_cnt=0)
    {

        try {
            $stmt = $this->pdo->prepare('INSERT INTO bbs (`time`,`name`,`comment`,sns_cnt)values(strftime(\'%Y年%m月%d日 %H時%M分%S秒\',CURRENT_TIMESTAMP, \'localtime\'),:name,:comment,:sns_cnt)');
            $stmt->bindParam(':name', $name, PDO::PARAM_STR);
            $stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
            $stmt->bindParam(':sns_cnt', $sns_cnt, PDO::PARAM_INT);
            $stmt->execute();
            $stmt = $this->pdo->prepare('DELETE FROM bbs WHERE bbs.no = (SELECT no from bbs ORDER BY no ASC LIMIT 1);');
            $stmt->execute();
            $stmt = null;
            $this->pdo = null;
            return true;
        } catch (\Throwable $th) {
            print $th->getMessage();
            return false;
        }
    }
}

class view{
    var $item = null;
    function __construct($item)
    {
        $this->item = $item;        
    }
    function view_item($item="")
    {
        try {
            $item = $item?$item:$this->item;
            ob_start();
            ?>
            
            <?php
            foreach($item as $key=>$value){
                ?>
                <div class="mt-2 row txtbox shadow rounded">
                <div class="col-3 name_<?=$value["no"]?> rounded-start fs-6">
                    ニックネーム::<?=$value["name"]?>さん
                </div>
                <div class="col-9 time_<?=$value["no"]?> fs-6">
                    投稿日時::<?=$value["time"]?>
                </div>
                <div class="col-12 comment_<?=$value["no"]?>">
                    <?= nl2br($value["comment"])?>
                </div>
                <div class="col-12 sns_cnt_<?=$value["no"]?>">
                    <!-- <?=$value["sns_cnt"]?> -->
                </div>
                </div>
                <?php
            }        
            ?>
                
            <?php
            $ret["view"]= ob_get_clean();
            $ret["msg"]= "done";
    
        } catch (\Throwable $th) {
            //throw $th;
            $ret["msg"] = "error";
        }
        return $ret;
    }
}

session_start();
$ret = null;
$mode =  xss_defence($_POST["mode"]);
// $time =  ;
$name =  xss_defence($_POST["name"]);
$comment =  xss_defence($_POST["comment"]);
$sns_cnt =  (int)xss_defence($_POST["sns_cnt"]);
if (isset($_POST["csrf_token"]) 
 && $_POST["csrf_token"] === $_SESSION['csrf_token'] && (function($t){
    return time() - $t > 20?true:false;
 })($_SESSION["save"])) {
    if($mode==="save"){
        $name = !preg_replace("/[ | ]/","",$name)?"匿名":$name;
        $comment = !preg_replace("/[ | ]/","",$comment)?"":$comment;
        if($comment){
            $db = new db();
            $db->insert($name,$comment);
            $_SESSION["save"] = time();
        }
    }
    $db = null;
    $db = new db();
    $ret = $db->select_limit()->view_item();
    print  json_encode($ret);
}
function xss_defence($value){
    if(is_array($value)){
        foreach($value as $key=>$val){
            $value["$key"] = strip_tags($val);
            $value["$key"] = htmlspecialchars($value["$key"],ENT_QUOTES);
        }

    }else{
        $value = strip_tags($value);
        $value = htmlspecialchars($value);
    }
    return $value;
}

配布コードはこちらです。

タグ

20, 7, 8, Code, Delete, LIMIT, MYSQL, no, Now, php, Sqlite, web, いろいろ, カラム, コード, ご注意, サーバー, せっかく, そのまま, ダウンロード, トライ, ワード, 三連, , , 今日, , 使用, 先日, 削除, 動作, 可能, 台風, 地下, , 投稿, 掲示, 昇順, , 残念, , 状態, 環境, 禁止, 簡易, 経過, 自分, , , 配布, 関数, 防止, 階層, 面倒,

オニギリペイ🍙と歩む道。#闇の奥は深いぞ #笑えない話

2022.09.12

Logging

おはよう御座います🙇。脆弱性の動画(徳丸先生の動画を)をどんどん見ています。

昔、勤めていた会社にはイロイロと脆弱性があり、それが今でも残っている気がします。例えばこれは消えていると思いたいのですが、クレジット決済のログをサーバーに蓄積出来るようにしていました。

おしゃべりひろゆきメーカー 笑えない話をひろゆきAIに語ってもらった笑えない🤐。

これ本当はしたら駄目なんですけどね。やっちゃっているです、パーミッション対策や鍵かけているですけども元に返っていたら危ういですね、蓄積データは年々溜まっていきます。これを辞めたいと言ったのですが、また決済が失敗したら駄目だからという事で残った脆弱性です。これを辞めないと言ったのは社長ですから仕方がありません。

自分は社長に結構意見を言っていたので煙たい存在だったかも知れません。入社当時は役に立ちたいという思いがありましたが、段々と疑問を持ちはじめていきました。一番の信頼が薄れていったのは仕様を教えてくれなかった事にあります。どういう様に動作すれば正しいのか、それが分からない状態でリリースしてお客様からクレームが来たこともあります。

そういう日々の積み重ねが大きくなり、社長との関係が希薄になりシステムに影響していったように思えます、自分がもう少しニュアンスを変えて話していたら違っていたかもと猛省しています。

言葉遣いは大事ですよ。昔の職場に戻れるなら戻りたいですが、そうもいかないような分かれ方をしていますからね、無理ですね。システムからカート回りまで、今でも頭に入っているので自分なら1週間で全店舗のシステムを改修出来ますが、後任がどこまで出来るかは分からないです。

タグ

AI, いろいろ, おしゃべり, オニギリ, クレジット, これ, サーバー, それ, データ, パーミッション, ひろゆき, ペイ, メーカー, ログ, , , , 仕方, 会社, 信頼, , 先生, 入社, 動画, 失敗, , 存在, 対策, 当時, , 徳丸, 意見, , 本当, 段々, , 決済, 疑問, 社長, 脆弱性, 自分, 蓄積, , , , , 駄目,