PHP関連のことを調べてみた2022年08月16日

PHP関連のことを調べてみた2022年08月16日

WordPressで自作テーブルを検索できるようにした

本稿は下記案件の続きです。併せてご参照下さい。

https://qiita.com/mindwood/items/85c365e2ab03df0ccf7e

前回は、データベースに商品情報テーブルを作成し、ホームページで各商品の価格を表示できるようにしました。
そうなると欲が出てきます。
せっかく信頼できるデータがWeb/DBサーバにあるのだから、検索できた方が便利ですよね。

サービスセンターには、卸売業者や小売業者、代理店から一般消費者まで、じつに様々な関係先から、商品に関するお問い合わせがあります。
その対応は、内製のMicrosoft Accessアプリケーションで捌きますが、関係先が自己解決できるなら皆にとってハッピーです。

ということで作りましたよ。簡単なので是非やってみて下さい。

# 検索フォームを作ろう
画像のような検索フォームを作成し、トップページに置きました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/70d57db8-0d64-62fb-92

元記事を表示

Python,JavaScript,PHP,Ruby,Perlの入門の比較

Python,JavaScript,PHP,Ruby,Perlの入門の比較

# Python

https://qiita.com/ponnhide/items/870f0e6b1ae50f201f07

# JavaScript

https://qiita.com/ab-boy_ringo/items/23f60e051e3022f2a599

# PHP

https://qiita.com/mackeyTA/items/069900b5c2366fb30e3a

# Ruby

https://qiita.com/oekazuma/items/6daa19248353c6a81146

# Perl

https://perlzemi.com/

元記事を表示

VSCodeでTypeScriptのHTML埋め込み開発

# 概要

HTMLへのタグへのTypeScript埋め込みは公式ではサポートされていないのでVSCodeのHTMLモードで埋め込んでもTypeScript部分でエラーが出ます。
当たり前ですが、TypeScriptモードにするとHTML部分でエラーがでます。
HTMLモードではTypeScript部分が、TypeScriptモードではHTML部分でエラーが出ないようにしてみた。

# 方針

– そのままブラウザで実行してもとりあえず動く(余計な表示はしない)ように
– VSCodeのHTMLモード・TypeScriptモードでそれぞれエラーが出ないように
– PHPで実行すると別フォルダにちゃんとしたHTMLファイルを生成できるように

# TypeScript埋め込み

TypeScriptコードの実行にはJavaScriptへのトランスパイルが必要です、
一応Webブラウザで実行するライブラリはあるのですが、TypeScript対応のライブラリは調べた限り相当古いのしかなかったので、
今回はちゃんとメンテナンスされてそうなBabel Standaloneを使うこと

元記事を表示

【PHPUnit】ポイントの計算などのテストは固定値よりFakerを使う方がよい

## 環境
Laravel v9.5.1 (PHP v8.1.3)

## Tips:ポイントの計算のテストはFakerを使う

#### ポイントを合計するメソッドのテスト

“`$amount1“` “`$amount2“`にそれぞれ数字のレンジに幅を持たせて、どんな数字の組み合わせのケースでも動くことを検証できるようにする。
ランダム性を持たせた方が網羅性が増すようなものはFakerを使う方がいい。

“`php
public function testSumPoints()
{
$user = User::factory()->create();
$amount1 = Faker\Factory::create()->randomFloat(1, 10, 100);
$amount2 = Faker\Factory::create()->randomFloat(1, 10, 100);

$results = PointHistory::sumPoints($user->id);
$this->assertEquals($r

元記事を表示

【PHP】画像のサイズや容量、ファイル形式でバリデーションをかける

# はじめに
こんにちは、

フォームを作る際、名前や生年月日とともに写真等の画像ファイルを送信させるとき、あるかと思います。

今回はそういった際の画像にたいしてバリデーションをかけるやり方を解説しようと思います。

# 入力画面

まずは基本となるフォームです。

inputタグのtype属性をfileにしてください。
これにより、ファイルのアップロードボタンを設置できます。

また、formタグのenctype属性をmultipart/form-dataにしてください。
画像をsubmitする際は必須となります。

“`php:entry.php

写真
XSS Sample PHP

# はじめに

:cat:XSSのチェックのためにどんなもの打ち込めばいいの?
:bear:本当にそれ攻撃のコードとして機能しているの?
:whale:この対策だけで問題ないかを自分で打ち込んで確認したいのだが、、

みたいな私の中の住人達のモヤモヤがあったので作ってみました!のご紹介記事となります!

基本github参考でよろしくお願いします!

このパターン抜けてない?みたいのあれご指摘よろしくお願いいたします!

あとコード等少し微調整しているので少し動画とか違います。ご了承ください。

# 注意

docker使ったことがないや、Dockerで使用しているipアドレスとかよく分からないだとgithubだけではちょっと説明不足かと思っています。すみません。

# 実際のリポジトリ

https://github.com/sachiko-kame/XSSPHPSample

# 実際確認してる動画

![XSSサンプル.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133940/4aaa70da

元記事を表示

Python,JavaScript,PHP,Ruby,Perlの基本文法の比較

Python,JavaScript,PHP,Ruby,Perlの基本文法の比較

# Python

https://qiita.com/AI_Academy/items/b97b2178b4d10abe0adb

# JavaScript

https://qiita.com/Fendo181/items/cca476da99e8f09b6b97

# PHP

https://qiita.com/shosho/items/ffbb44eeec9d68b21d99

# Ruby

https://qiita.com/Fendo181/items/eb2cb17f32d99aa01f59

# Perl

https://perlzemi.com/blog/20091226126425.html

元記事を表示

Laravelでシンプルなページネーションを作ってみた

# 概要
「デフォルトのページネーションが使いづらい」
「よくある「<」(一個前に移動するやつ)とか「<<」(最初に移動するやつ)があまりしっくりこない(個人的な感覚)」 と思ったので、しんぷるいずざべすとなページネーションを、以下の記事をアレンジして作成しました。 [参考にした株式会社ゆめみさんの記事](https://qiita.com/akkino_D-En/items/f591eefda1c2f0f760df) # 完成形 ![スクリーンショット 2022-08-13 14.24.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1092366/a4009a7c-50a3-eff1-5d83-8ddfadb98ba6.png) # 開発環境 - PHP 7.4.27 - Laravel 6.20.35 # 作り方 まずは[マニュアル](https://readouble.com/laravel/6.x/ja/pagination.html)のコマンドを実行します。 ```:コマンド

元記事を表示

【SOLIDの原則】オープン・クローズドの原則(OCP)について

# はじめに

https://qiita.com/s_tatsuki/items/470d8b0372f345ad75af

前回、社内勉強会にて上記の記事を発表させてもらい、
後日コメントで、
「次は、SOLID原則(要検索)の理解を目指すと、良い感じ」といただいたので
気になり、このテーマにした背景です。

またその原則の中でも
特に、オープン・クローズドの原則が
SOLIDの原則が目指している
「良い設計」をもっともよく反映している原則とあったので
深ぼって勉強してみました。

また今回の記事はほぼこちらの動画を参考に
文字を起こし、ご理解のほどお願いします?‍♂️

登壇者:後藤 秀宣(@hidenorigoto)さん

# SOLIDの原則とは

> SOLID原則とは、オブジェクト指向プログラミングにおいて、変更しやすい・理解しやすい・再利用しやすいモジュール(クラスや関数などの、ソフトウェアのを構成する部品)を設計・開発するための原則のことです。ソフトウェアエンジ

元記事を表示

【PHP】なぜ初期化をするのか?

# コード
“`PHP

元記事を表示

【PHP】PHPの関数の型の指定(引数)

# コード
“`PHP

元記事を表示

PhpStormの重さ改善

# 概要
PhpStormが重く、フリーズすることが多いので改善方法を調査しました。
結果、割り当てるメモリを増やすことでフリーズなく動作するようになったので、改善手順を記載します。
# 環境
OS:Windows
PhpStormのバージョン:2022.1.3
# 手順
1. [ヘルプ]>[メモリ設定を変更]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015414/b75aa8da-5af6-debe-cdfb-272aaca6ecfe.png)
2. [最大ヒープサイズ]を増やし、[保存して再起動]を押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015414/1b1c917c-c887-6c80-57ed-f940eb199ffe.png)

元記事を表示

OpenBlocks IoTをWEBサーバにする

OpenBlocks IoT をWEBサーバにする方法です。
OpenBlocks IoT をセンサー類のゲートウェイとして使用し、さらにWEBサーバとすることができれば、OpenBlocks IoT 1台でセンサーからのデータを入力しモニターする等のシステムを稼働させることも可能となります。
![Screenshot from 2022-08-14 10-28-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/5b26ce5c-cdbb-4e5c-ea82-1b55f186c504.png)
FW4搭載の OpenBlocks IoT を対象とした解説です。FW4非搭載の OpenBlocks IoT については、汎用OSが裸で搭載されているため、それぞれのOSに応じた手段でWEBページの実装と配信が可能であり、それは難しいことではないためわざわざ解説する必要はないでしょう。

>FW4とは?という方はこのサイトを参照してください。
>[IoTゲートウェイソフトウェア FW4](ht

元記事を表示

チュートリアル記事を丁寧に追った結果起こったHeroku Build failed “Script @php artisan package:discover –ansi handling the post-autoload-dump event returned with error code 255”

# はじめに
Docker によって Laravel 環境を構築し、Heroku にデプロイするこちらのチュートリアル記事

https://qiita.com/roughstorm/items/f9f86a7048c06c7d6544

を参考にして取り組んでいたところ、Heroku での自動デプロイに失敗しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916638/579bae00-8edf-f67f-a7d0-5b15e85c901b.png)

> Script @php artisan package:discover –ansi handling the post-autoload-dump event returned with error code 255

上記のエラーは View build log で出てくるログの最後の方にあるエラー文の抜粋です。

この記事では初学者なりに格闘した内容を書きます。

# 単刀直入に言うと
**PHP のバージョン

元記事を表示

数字と文字リテラルを使わずFizzBuzz

### TL;DR
* [第5回 KusoKoudoKaigi | KusoKoudoKaigi](https://kusokoudo.love/kaigi/5/)
* こんなのやってたの知らなかった
* 応募しそこねたので15分で書いた。むしろこのエントリ書くほうが時間かかった。
* 以前書いたやつのリバイバル作品

### 動くやつ
* https://3v4l.org/djZu7

### コード

“`php
f($i);
$this->b($i);
if (ob_get_contents() == fa

元記事を表示

Goのcryptoで暗号化(AES-GCM)された文字列をPHPで復号した

Goのaesパッケージ(crypto/aes)で暗号化された文字列を、PHPで復号したときのことを備忘録がてらまとめます。

# 前提
– Go 1.13
– PHP 8.0
– AES-256-GCM
PHP歴は1年超、Goは書けないけどなんとなく読める。
今回の平文は、仕様上すべてが短い英単語である。

# GoのAES-GCMの仕様
認証タグ(tag)が暗号化後のバイナリに連結される。
“`
[暗号][tag(16Byte)]
“`
ivとtagの長さは次のコードの153行目あたりで定義されている。
https://go.dev/src/crypto/cipher/gcm.go
“`
const (
gcmBlockSize = 16
gcmTagSize = 16
gcmMinimumTagSize = 12 // NIST SP 800-38D recommends tags with 12 or more bytes.
gcmStandardNonceSize = 12
)
“`

つまり、末尾16Byteをtagと

元記事を表示

PHP 一定文字列以上は…に省略するコード

# 概要

– 一定文字数以上は`文字列…`のように文字列を変換するコードをメモ的に記載する。

# コード

– 下記のように記載することで`$limit`に入れた文字列をオーバーした場合`…`に省略する事ができる。

“`php
= $limit) {
$str = mb_substr($str, 0, $limit) . ‘…’;
}

echo $str;
“`

– 例えば下記のように記載すると「ありが…」と出力される。

“`php
= $limit) {
$str = mb_substr($str, 0, $limit) . ‘…’;
}

元記事を表示

「速習 Laravel 改訂2版」誤記

概要

「速習 Laravel 改訂2版」誤記の内容についてサンプルの通りにコードを書いても動かなかったため、自分でコードを訂正しています。

誤記と思われる点と訂正コードを他の学習者のために投稿します。
まだ経験浅い立場なので見当違いであればご指摘ください。

環境

win10 home
PHP 8.1.6
MariaDB 10.4.24

コード

P205 create.blade.php 4行目
x “`

“`
o “`

“`

P210 hello/list.blade.php 27行目
x “`id}}/show”>詳細“`

元記事を表示

【BladeOne】CSRF対策

# はじめに
Laravel感覚で途中まで実装できていましたが、CSRF対策のところで躓きました。
実装するのに少し時間がかかってしまいました。
同じように悩む方の参考になればと思います。

## インストールがまだの方
[こちらの記事](https://qiita.com/Shogongon/items/80ae1a2183d0fb2d1c02)が参考になります。

## 注意
追記 8月15日
「ログイン済み」であることが条件と記載しておりましたがそのような条件はありません。
注意の内容自体が間違った内容でした。
取り消し線で消させて頂きます。
注意自体が間違っているとは…本当にすみません…
~~下記内容は「厳密なCSRFの用語の定義」を満たしていません。~~
~~CSRFの前提条件として「ログイン済み」であることが条件のためです。~~
~~あくまでもサンプルソースであることのご理解願います。~~

# 結論
※注意:session_start();でセッションの処理を開始しておく必要があります。
– CSRFトークンの送信側
“`php:form.php

元記事を表示

VSCodeで利用できるクイックフィックスはありませんが出た時の対処方法(PHP)

# 動機
文法的に間違ってない+エラーも出なく、出力されるのに、クイックフィックスはありませんと出てきたので気になって調べてみました。
# 要点
1.PHP Suggest : Basicのチェックを外す
2.PHP Intelephenseを導入する。

# PHP Suggest : Basicのチェックの外し方
1.「ファイル>ユーザー設定>設定」と進む。
2.Suggest:Basicと検索し、チェックを外す。

# PHP Intelephenseの導入の方法
1.拡張機能ボタンを押す。
2.PHP Intelephenseと検索する
3.インストールボタンを押す。

#結果
この方法を試すと、治りました。
もし同じ症状が出ているなら、試してみてください。

# 参考サイト
https://trios.pro/visual-studio-code-how-to-use/
https://yama-itech.net/visual-studio-code-recommend-setting-php

元記事を表示

OTHERカテゴリの最新記事