【PHP】mysqliのプリペアドステートメント記述(SQLインジェクション対策)

2023-06-03

PHPでのSQLインジェクション対策ならプリペアドステートメントが有名です。 (プリペアド・ステートメントは静的プレースホルダ、バインド機構と呼ぶ場合もあるようです) PDO派ではなく、mysqli派の方へ向けたプリペアドステートメントの記述方法の紹介です。 コードを見ればなんとなく分かると思います。 prepare関数にて「?」を仕掛けた数だけ、bind_param関数の引数の数に関係します。 <削除 DELETE> phpStart $id = htmlspecialchars($_POST["id"]); $stmt = $mysqli->prepare("D...

RSSを自作PHPで作る為の日付をpubDateに逆変換する自作関数

2022-01-16

pubDateは独特でやっかいな表記型で扱いにくい。 <rss2.0 pubDateの書式> Sun, 16 Jan 2022 01:54:00 +0000 pubDateを通常の日時表記にする方法はネットに多く転がっているけど、逆はありませんでしたので、 特定の日付(日付指定)で通常の日時型(2022/01/16 00:00:00)をpubDateの書式に変換する関数を作成しました。 たかが日時表記の変換なので難易度が低いですが、pubDateは地味に面倒な書式です。 RSSを自力で作成する人はほとんどいないと思うので、マニアックな事象なのですが。 当ブログはブ...

VScodeの不要な新機能「ワークスペースの信頼がなんちゃら」を消し去る設定方法(Visual Studio Code)ビジュアルスタジオコード

2021-06-14


毎回「このワークスペース内のファイルの作成者を信頼しますか?」というポップアップが出るようになった。どうやら複数人で開発する向け?のおせっかいな制限モードの機能。 有能なエンジニアは個人プレー!こんなしょうもないセキュリティー厨向けの機能は一掃しましょうということで、さっそく! まずは左下のリストバンドみたいなアイコンを押して、「設定」へ 検索窓に「work」と打ってポチっとな。はい完了! ワークスペース関連は全部「false」で結構。 ワークスペースの信頼だって(笑)いいよいいよそこまで面倒見てもらわなくても。 個人での開発の場合は意味のない機...

【PHP】第何週目の何曜日は何日?を最短で算出する方法

2020-10-23

PHPのstrtotime関数は非常に便利で、カレンダーを使用した予約システムなどで活躍してくれます。 今回は、月毎に第一週目の水曜日、第二週目の水曜日は何日かを求める最短の方法をご紹介。 phpStart $y = 2020; //任意 $m = 10; //任意 $jd = cal_to_jd(CAL_GREGORIAN, $m, 1, $y); $month_name = jdmonthname($jd, 1); $first_wed_day = date("j", strtotime("first Wednesday of {$month_name} {$y}")...

ウイルス対策ソフトはいらない!サイトを見ただけで感染は理論上不可能。4点のことを守るだけでウイルス感染はしません

2019-09-28


パソコン使用歴15年で四六時中パソコンを使用しているヘビーユーザーです。 そんな私のパソコンは昔からずっと、 ・ウイルス対策ソフトなし ・WindowsUpdateは無効に設定 こんな状態ですが、何一つ異常ありません。今日もパソコンの調子は快晴です。 ちなみに私はネットバンクも利用しているし、仕事上、海外サイト(ちょっと危険っぽいサイト)でデザインに必要なフリー素材を探すことも頻繁に行っています。 ※この記事を最後まで読まずに真似しないでください。なぜ、私がウイルス対策ソフトなしで感染しないのかを根拠で説明します。 ▽なぜウイルス対策をインストールする...

2019年 PHPのSMTP送信はインストール不要のPHPMailerが手軽で最短!PEAR終了

2019-07-07

▽現役のメーラー「PHPMailer」ライブラリ ▽PHPMailerでSMTP送信ができたコードの紹介 ▽PHPMailerでSMTP送信の手順1「ダウンロード」 ▽PHPMailerでSMTP送信の手順2「ライブラリ読み込み」 ▽PHPMailerでSMTP送信の手順3「SMTPの設定」 ▽PHPMailerでSMTP送信の手順4「SMTP送信の実行」 ▽PHPMailerでSMTP送信の動作確認済みコード <現役のメーラー「PHPMailer」ライブラリ> 以前、迷惑メールになりにくいということでPEARのSMTP送信の記事を書きましたが、 PEARはPHP7になっ...

mysqliからPDOに記述を変えよう!接続・取得・追加・更新・削除の基本コード

2018-10-05

データベース周りは未だに「mysqli派」ですが、ようやくPDOを使ってみようと決断。 PHP5.1以降に標準で利用できるようになったようで、ライブラリの読み込みは必要がない。 基本となる、接続・取得・追加・更新・削除の一連を動作確認しました。 使い勝手は良さそうで、PEAR::DBはもう完全にオワコンであることがはっきりしました。 ※xamppでは下記コードでちゃんと動作しました。 phpStart //mysqlアカウント $DB['host'] = 'localhost'; $DB['user'] = 'user'; $DB['pass'] = 'pass'...

自作PHP派が既に時代遅れのPEAR::DBを試用で使ってみたので基本コード紹介|接続・取得・追加・更新・削除

2018-10-03

PHPのキャリアは10年くらいで、フレームワークは一切使用せず、独自PHPで作成をする派です。 誰よりもあらゆるポータルサイトを早く作る自信があり、開発コストもかなり下げられる我が誇りの技術。 かなりの大掛かりで複数人での開発ならフレームワークを覚える必要があるのだろうが、 基本一人で全てこなす案件しかしないので、覚える必要がない。個人的にはスピード第一。 データベース周りは「mysqli派」です。というのも大抵のレンタルサーバーはmysqlだから他のを使う機会がありませんでした。 そんな私が、重い腰をあげてPEARライブラリのPEAR::DBを試してみた。 DBの基本であ...

実は実装がすごく簡単なトピックスの予約投稿機能

2015-10-28

トピックスの管理画面で日付を自由に設定できるようにして、 現在より未来の日付の場合は表示しないようにするだけなので、 呼び出しの際に、WHERE文にひとつ追加するだけで予約投稿が実現。 htmlStart WHERE `updated` < NOW() htmlEnd 非常に実装が簡単で、需要がある機能なので、管理画面ではなるべく予約投稿の機能を実装すべし! ...

外部サイト(他ドメイン)のファイル存在確認

2013-05-05

画像ファイルがあるかないかを判断して、必要に応じてノーイメージ(now printing)を表示する時などに使用するファイル存在確認の代表的関数file_exists()。 phpStart $path = './log/item/12345.jpg'; if(file_exists($path)){ $img = $path; }else{ $img = '/img/noimage.jpg'; } phpEnd しかし、自サーバーならfile_exists関数でファイルがあるかないかを判断できるが、他ドメイン&他サーバーでは使用できないので、その場合はget_hea...

Javascriptで数値の先頭のゼロを削除する方法と、数字の先頭にゼロつける方法

2012-10-07

例えば「01」や「02」など、先頭にゼロがついている数値を「1」という数値に直す場合は、Number関数を使用します。 htmlStart var str = "05"; var num = Number(str); //結果 num == 5 htmlEnd 逆に決まった桁数で先頭にゼロをつけなければいけないケース(ゼロパディング)もよく出くわします。その場合は下記の方法がおそらく最短コード。 htmlStart var num = 5; var str = ('0' + num).slice(-2); //結果 str == '05' htmlEnd s...

生年月日から年齢取得

2012-08-16

プロフィールを登録させる際に年齢の項目を設ける場合は、年齢を入力させるのではなく、生年月日を入力してもらうのが基本です。年齢を入力させてしまうと、データ上その人はずーっと同じ年齢のままになってしまうからです。 生年月日から年齢を求めるの方法はいくつかあるみたいですが、一番短いのが以下の計算方式です。 <計算方式> phpStart $birth = 19811007; $age = floor((date('Ymd') - $birth) / 10000); phpEnd 計算方式は「(今日の日付 - 生年月日) ÷ 10000」で求められるみたいです。floor()...

この記事がお役に立てましたら是非シェアのご協力お願いします。