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

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

Python と Java と Go と Node.js と PHP と Ruby のサポート状況について (2023.10)

オープンソース系のプログラム言語のセキュリティサポートの期限をまとめました。他の方の参考になれば幸いです。

# Python のサポート状況

サポートが有効な Python のバージョンは **Python 3.8, 3.9, 3.10, 3.11, 3.12** です。
3.8 は1年以内にサポート終了の予定です。

|バージョン系列|最新バージョン|リリース日|バグ修正の対応期間|セキュリティ修正の対応期間|
|—|—|—|—|—|
|**Python 3.12**|3.12.0|[2023年10月2日](https://peps.python.org/pep-0693/)|[**サポート内**](https://peps.python.org/pep-0693/#bugfix-releases)|[**2028年10月**](https://peps.python.org/pep-0693/#lifespan)|
|**Python 3.11**|3.11.6|[2022年10月24日](https://peps.python.org/pep-0664/#

元記事を表示

【PHP】TRON の “Transfer from” の実装

# 【PHP】TRON の “Transfer from” の実装

PHP で TRON の “Transfer from” 機能を実装するには、TRON ブロックチェーンとのインタラクションが必要です。一般的なアプローチは、TRON の公式 PHP API または他のサードパーティのライブラリを使用する方法です。[参照](https://github.com/fwx5618177/PHP-Torn-Transfer-From)

本記事は、ウェブページ上で TRON ブロックチェーンとのインタラクションを可能にする TRON の公式ウォレット、TRONLink を使用した例を提供しています。

**TRONLink とは**:

TRONLink は、ウェブページ上で TRON ブロックチェーンとのインタラクションを可能にする TRON の公式ウォレットです。TRONLink には、Chrome 拡張バージョンとウェブバージョンの 2 つのバージョンがあります。本記事では、ウェブバージョンを使用しています。

## 2. 基本セットアップ

1. [Composer](https:

元記事を表示

$_ENVがすっからかん

variables_order: GPCSのときは、`$_ENV`が空になります。回避するには、`getenv(‘PWD’)`を使いましょう。
すべての環境変数がほしいなら、`getenv()`を実行しましょう

“`php

元記事を表示

静的解析ツールで生まれたSQLインジェクション

Security.Tokyo #2 で発表した、CakePHPの脆弱性 CVE-2023-22727の話です。
CakePHPはいいぞ

元記事を表示

Laravel Requestで403 Forbiddenエラーが発生

初心者SEの備忘録。。

[発生状況]
Laravelにて、、
実行すると403 Forbiddenエラーが発生。
どうやら、バリデーションを行うために作成したFormRequestを使うとエラーが出るみたい。

“`app\Http\Controllers\TestController.php
public function update(Int $id, TestRequest $request)
//↑引数が、Request $requestだとエラーは出ない、TestRequest $requestだとエラーが出る
{
return $this->TestService->updateTestInfo($id, $request);
}
“`

Requestファイルは、コマンドで作成したもの。特に変なところはない。
“`
php artisan make:request TestRequest
“`

と思ったら、ここに原因があったーー!

[解決方法]
作成したRequestファイル内のauthorize()のreturnをfals

元記事を表示

nginx でユーザーディレクトリから PHP スクリプト

ネットからいくつかの情報 (Github gist, Stack Exchange) を集めたが、どうもうまくいかない。ユーザーディレクトリの location ブロックには正しく入り、php ファイルの存在も確認できるが、実行すると 404 ばかり。

元記事を表示

VSCodeでPHPをローカル実行してみた

ひょんなことからphpコードをいただいたのだが、手元でパッと確認するにはどうしたら良いのかな、と思って調べた。(いつもはDocker使っちゃってる)
なんやアプリダウンロードせぇだの出てきたんだが…なんと、VSCodeの拡張機能で簡単にローカルサーバーを立ち上げられるらしい!
それが一番簡単じゃん!やってみよう!

## 必要なもの
– VSCode
– 動かしたいphpのソース

## 手順
1. VSCodeで`PHP Server`という拡張機能を探してインストールする
2. `index.php`など実行したいファイルを開き、ウィンドウ右上にある青いボタンを押す
3. ブラウザで実行されたphpファイルが開かれる!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490854/b6d344ae-716e-4ea1-e423-f38bed76b595.png)

## 注意
上記手順で実行ボタン押したら`php not found`って怒られた。
その場合、設定で`Phpserv

元記事を表示

IBMi db2へ、PHP ODBCから接続する

### 導入
こんにちは。phpでお仕事してます。
お仕事の傍、php-srcのコントリビュータもしています。

今回、phpの`odbc_connect()`および`odbc_pconnect()`の改修をするにあたり、いろんなODBCドライバの挙動を見る必要が出てきてIBMi db2に初めて触ることになりました。

日本語にしろ英語にしろまとまった情報源がなく、かなり手探りで接続までたどり着いたので、備忘録を兼ねて記事にすることにしました

なお、この記事では

– DBにPUB400のIBMi db2を使用
– phpは8.4(執筆時点のphp-src masterブランチのビルド)、localのdocker ubuntu22.04環境

での操作の備忘録となります(ただし、php-srcのビルドは本記事の趣旨と逸れるので、割愛します)。

### IBMi db2とは
IBMiに搭載されているdb2のことです。IBMiについての説明はwikipedia先生に任せます。

[IBMi(Wikipedia)](https://ja.wikipedia.org/wiki/IBM_i)

元記事を表示

PHP勉強記録(1日目) – DB接続を共通化 / 見出し部分を一部だけ表示

# 1.はじめに

今日から記録として、その日自分がした勉強の記録を残していこうと思います。
途中から始めようと思ったので、初歩からのスタートではないのですが…
現在Udemyの教材などで勉強中!

# 2.PHPでのDB接続を共通化

“`dbconnect.php

“`
“`index.php

“`
毎回DBの接続の情報を記載するの手間かかるなぁと思っていた時にちょうど教材で解説してくれて助かった。
間違えそうな箇所はなさそうなので、一番最後に付ける;を忘れないように気を付ける。

# 3.見出し部分を一部だけ表示させる。

“`index.php
[PHP] バージョン比較にはversion_compare()を使おう

## 結論

PHPでバージョン比較をする時は、[version_compare()](https://www.php.net/manual/ja/function.version-compare) を使おう

> version_compare()は、ふたつの “PHP 標準” バージョン 番号文字列を比較します。

## サンプル

### 自前で書く場合

“`php
$app_version = ‘5.3.0’;
if ($app_version >= ‘5.3.0’) {
echo($app_version); // 5.3.0
}
“`

こんなふうに書けば自力でバージョン比較できる
・・・けど、

### こんな時に注意⚠️

プレリリース版の`5.3.0-dev` と、`5.3.0` を比較する場合、結果が異なる

“`php
$app_version = ‘5.3.0-dev’;
if ($app_version >= ‘5.3.0’) {
echo($app_version); // 5.3.0-dev
}
“`

“`php
$app_v

元記事を表示

[PHP] Yiiフレームワークの特徴

# Yiiフレームワークとは

Yiiフレームワークは、PHPで書かれた高性能なWebアプリケーションフレームワークの一つです。特に大規模なWebアプリケーションの開発に適しており、短時間で効率的にアプリケーションを構築することができます。

? ポイント: YiiはPHPで書かれたWebアプリケーションフレームワークです。

## なぜYiiフレームワークが選ばれるのか

1. **高速性**: Yiiは、ページの読み込み速度やデータベースのクエリ速度を最適化するためのツールを多数備えています。

? ポイント: Yiiは高速なページ読み込みを実現します。

2. **拡張性**: Yiiはモジュールやウィジェットといった拡張機能をサポートしており、カスタマイズが容易です。

? ポイント: カスタマイズがしやすいのがYiiの特徴です。

3. **セキュリティ**: SQLインジェクションやクロスサイトスクリプティングなどのWeb攻撃からアプリケーションを守るための機能が組み込まれています。

? ポイント: Yiiはセキュリティ面でも信頼性が高

元記事を表示

PHPでLINEのクローンアプリを作成

メッセージを送受信ができるアプリを作ってみました。

![ezgif.com-video-to-gif (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3353802/d2ba3585-5a12-cf79-04f1-3352280f652e.gif)

# リポジトリをclone

“`bash
git clone https://github.com/gong-cha/line-clone
“`

ソースコード

https://github.com/gong-cha/line-clone

# 実装した機能

– 新規登録
– ログイン
– ログアウト
– アカウント削除
– リアルタイムメッセージ受信
– 画像投稿
– アイコン表示
– 既読機能
– ユーザー一覧に最新のメッセージ表示

# 意識したこと

– プリペアードステートメント
– 飲んす機能
– デザイン

# リアルタイムメッセージの手法の検討

**ブラウザに通知する方法の検討**
– WebSockets

元記事を表示

PHPのコードレビューこんなんやってる(その2)

# 概要
意外とそんなにパターン無いのではと思い、整理と今後の備忘がてら記載してみました。実際にメンバーにしたレビュー内容をもとにしています。今回はこれ。

※写真は全く関係ない

## ちなみに前回はこちら

https://qiita.com/WdknWdkn/items/fa653a1f153a64d92b10

# 前提
以下の内容を踏まえてもらえるとひょっとしたら何かの参考になる度合いが
* PHPです
* 1年目にしたレビューが元になっています

# レビュー内容

* ifの条件文が複雑なので分解して早期return
* ifの条件文とtrue/falseの意味を入れ替えて条件を分解

## ifの条件文が複雑なので早期return

### before
“`PHP
function sample()
{
if ($hogeFlg !== true || !($hugaInfo === ‘xxx’ || $piyoInfo === ‘yyy’ |

元記事を表示

PHP+MySQLでユーザーログインシステムを作成(覚書)

PHPでユーザーログインシステムを作成するための備忘録

データベースにユーザー情報を保存します。
ユーザー名とパスワードを使用し、ログイン認証を行いセッションを使用してログイン状態を管理します。
### データベースのセットアップ

ユーザー情報を保存するテーブルを作成します。
“`sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL
);
“`
### login.php|PHPファイルの作成
ログインページ、ログインフォームの作成をします。
“`php

元記事を表示

Laravel でCSVダウンロードと画面遷移を同時に行う方法

# 結果:セッションに入れる
セッションに入れてblade側でリダイレクト。

#### web.php
“`php
// ダウンロードできるようにルートを書いておきます。
Route::get(‘/download-csv’, [App\Http\Controllers\HomeController::class, ‘downloadCsv’])->name(‘download.csv’);
“`
#### CsvController
“`php
use Illuminate\Support\Facades\Session;

// exportCsv()にCSV出力の処理を書いてます。
$file = $this->exportCsv($request);
// セッションに入れる
Session::flash(‘csv.file’, $file);
“`

#### HomeController
“`php
public function downloadCsv(Request $request)
{
$file = $request->get(‘file’);

元記事を表示

Livewireって結局何なんだ…?

## はじめに

Livewireとは、「 Laravel の快適さをそのままに、動的インターフェイスの構築をシンプルにする Laravel 用のフルスタックフレームワーク 」だそうです。
それって結局何ができるの…..??となってしまったので何ができるのか調べてみました。

## そもそもLivewireとは?

Livewireは、LaravelというPHPフレームワークをベースにした、PHPで書かれた動的なコンポーネントライブラリです。簡単に言えば、JavaScriptをあまり使わずに、リアルタイムで動的なウェブアプリケーションを開発できるツールです。

## Livewireを使うメリットは?

Livewireを使用すると、JavaScriptの知識がない開発者でも、比較的簡単にリアルタイムでのUI更新や動的なウェブアプリケーションの開発が可能です。また、マルチページアプリケーションとしてのアプローチもサポートしており、SEOの最適化やバックエンドのスキルを活かしながら、ユーザー体験を向上させることができます。

## Livewireのできること

* #### リア

元記事を表示

PHP勉強記録(1日目)

1.はじめに

今日から記録として、その日自分がした勉強の記録を残していこうと思います。
途中から始めようと思ったので、初歩からのスタートではないのですが…
現在Udemyの教材などで勉強中!

2.PHPでのDB接続を共通化

“`dbconnect.php

“`
“`index.php

“`
毎回DBの接続の情報を記載するの手間かかるなぁと思っていた時にちょうど教材で解説してくれて助かった。
間違えそうな箇所はなさそうなので、一番最後に付ける;を忘れないように気を付ける。

3.見出し部分を一部だけ表示させる。

“`index.php
WordPress Classic Themeのレイアウトを関数で行う

通常レイアウトが複数あるサイトでは`get_template_part`等で読み込んだテンプレート内にて`is_*`系でレイアウト振り分けを行うと思いますが、
結構な割合で作った本人も仕様を把握できなくなったり、Let’s Repeat Yourselfになりがちだと思います。

そこで、BladeやSmartyの様に呼び出し元で部分的な拡張ができるレイアウト関数(クラス)を作成してみました(BladeやSmartyをインストールすれば早い話ですが…)。

## 関数例

“`php

元記事を表示

Laravelでの期間検索時の期間重複データ取得条件を考えた話

こちらの記事は以下に移動しました。

[https://youta-ms.online/tec/laravel_period_search](https://youta-ms.online/tec/laravel_period_search)

元記事を表示

【PHP】エラー:syntax error, unexpected token “endwhile”, expecting “elseif” or “else” or “endif”

# はじめに
* Udemyで一言掲示板を作成する動画を見ていた時に出たエラー。
* エラーコード : **Fatal error:syntax error, unexpected token “endwhile”, expecting “elseif” or “else” or “endif”**
# 1. 原因
* エラーコードを翻訳すると、「“`予期しないトークン ‘endwhile’ が見つかりました。’elseif’ または ‘else’ または ‘endif’ が期待されています。“`」
* > endifが無いまま、endwhileが先に来てしまったので、階層がちぐはぐになってしまっています。
* 参考文献に記載されていた原因を元に自分の書いたコードを確認したが、if構文に対する「else」も「endif」もちゃんと記述してあった。
* もう一度じっくりコードを観ているとphpの開始タグの違和感に気づいた。
“`php

“`
* 「**

元記事を表示

OTHERカテゴリの最新記事