PHP関連のことを調べてみた

PHP関連のことを調べてみた

Laravelのログイン機能の認証処理のカスタマイズ(emailカラムとpasswordカラム以外で認証する)

イントロ

Laravelのログイン機能を実装するぞ!!!!!

* メールアドレス
* パスワード

**上記の項目で認証を行うのが定番だけど、これらを変えたいからカスタマイズする!**

* **ユーザーコード**
* パスワード(**`password`カラムじゃないパスワードを管理しているカラムから参照したい!**)

フォームから入力されたこれらの値でな!

というのがこの記事のざっくりとした内容です。

働いている現場によっては下記のようなことを言われることがあります。

* メールアドレスじゃないのをログイン時には使いたいからメールアドレス以外でログインできるようにしたい

* ユーザーテーブルのパスワードは`password`って名前のカラムで管理してなくて、`hoge_password`ってカラムで管理する

…ということがあるので備忘録として残します。
~~私自身が仕事でやるのに方法が見つからなくてすごい焦った~~

「そんなこと簡単にできるのか?」と思いましたが、やってみたら結構簡単でした!

バージョン

Laravel

元記事を表示

EloquentのorWhereメソッドの使い方とSQLの論理評価について

:::note

AI要約

– orWhereメソッドは、複数の条件のいずれかを満たすレコードを取得します
– 基本的な使い方では、statusがactiveまたはroleがadminのユーザーを取得します
– 複数のorWhereを連続して使用して、さらに多くの条件を追加できます
– クロージャを使うと、複雑な条件をグループ化してネストできます
– SQLのOR条件は、左辺がTRUEの場合、右辺の評価をスキップする短絡評価を行います

:::

## はじめに
`orWhere`を使ってると何やら評価されていない条件があると感じたので調べたら条件分岐のORと同じ評価基準なんですね
せっかくですので`orWhere`の使い方と評価基準についてまとめてみましたのでぜひご覧ください!

## orWhereメソッドの基本的な使い方
`orWhere`メソッドを使用すると、複数の条件のうちどれか一つでも満たすレコードが取得できます

### 基本的な`orWhere`の使用
“`php
$users = User

元記事を表示

ZipArchiveのopenの結果が分かり難い時のメモ

## openの結果が分かり難い

ZIPをopenしようとしたけど、エラーになる。
そこで、結果を出力すると以下の様になってします。

“`example.php
$zip = new ZipArchive;
$res = $zip->open($filename);
echo ‘result: ‘, $res, “\n”;
// result: 1
“`
## 定数の値が何か分からない

仕方ないので、PHPのドキュメント見に行くと、今度は定数の説明はあるがその定数の値が何か分からない。

## 結論

マップを作った。

“`zip_reason.php

元記事を表示

【Laravel】プロジェクト事前準備③~PHPデバッグ環境構築

# Xdebugとは
PHPのデバッグツール(拡張機能モジュール・エクステンション)のことです。

# 前提条件
PHP(XAMPP)・Composerのインストールが完了していること。
以下の記事の続きです。
**PHP(XAMPP)**

https://qiita.com/moko_san/items/b3b7d6000db68735aa14

**Composer**

https://qiita.com/moko_san/items/6b69d408d2ba0eccdb88

# 1. Xdebugのインストール
### ① インストーラのダウンロード
**(1) 以下内容(PHPの環境情報)を全てコピー**
![XAMPP21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2846445/a8b92210-7f42-c282-8e65-67dc52c1fccb.png)
**(2) 以下サイト内のテキストエリアに(1)でコピーした内容を貼り付けます。**
  https://xdebug.

元記事を表示

【CakePHP5】CodeSnifferをGitHubActionsで使う

# はじめに

こんにちは、エンジニアのkeitaMaxです。

前回CodeSnifferをローカルでコマンドを打って実行したので、今回はPushした時にGitHub上で実行するようにしようと思います。

https://qiita.com/keitaMax/items/3147a3e56c4c2a3b8fde

# GitHubActionsの設定ファイルの作成

`.github/workflows/phpcs.yml`ファイルを作成します。

“`yml:phpcs.yml
name: phpcs

on: [pull_request]

jobs:
phpcs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src
steps:
– uses: actions/checkout@v2
– name: dokcer-compose up
run: |
docker-compose up -d

元記事を表示

Laravel 11 の開発環境をdockerで実現する方法

Laravel 11でのWebアプリ開発環境を、docker上に実現する方法を紹介します。

# ゴール

– WindowsやMac上に、dockerを使ったLaravel 11開発環境を作る。
– サーバーはnginx, php, mysqlを別にする。
– Viteの利点であるページリロード無しでのCSS/JS更新を実現する。
– Laravel MixではなくViteを使う

# 前提

– PHP 8の知識がある
– Laravel 11の知識がある
– Laravel 11に必要な環境構築ができる
– Dockerで簡単な環境構築ができる

本投稿ではWindowsを使っているので、MacやLinuxで合わないところは読み替えてください。

# Dockerに各サーバーを準備する

目指すフォルダ構成はこんな感じにします。(Docker関連のみ)

“`
l11dev (プロジェクトフォルダ)
├ docker
│ ├ mysql
│ │ └ (中身たくさん)
│ ├ nginx
│ │ ├ logs
│ │ ├ default.conf
│ │ └ Dockerfile

元記事を表示

はじめてのLaravel 〜 Laravel Bootcampで遊ぶ #1

# はじめに
みなさんこんにちはハッサクと申します。
普段仕事ではPHP(バニラ)でWeb開発とPythonでのAI開発、個人開発ではFlutterとSupabaseを使用して趣味のライブイベント運営で使用するチケットアプリの制作なんかを行なっております。

最近PHPのフレームワークを導入して、VueとかReactとか触ってみたいなと思い、片手間でコツコツ触ってみることにしたので開発日記のようにLaravel Bootcampの学習をまとめていこうと思います

# Laravel Bootcampとは

https://bootcamp.laravel.com/

Laravel Bootcampは無料のコースでモダンなアプリケーションを構築する方法を学べるサイトです。
3種類のコースによって「Chirper」という小規模のブログプラットフォームを構築するチュートリアルのようです。

## コース一覧
1. Blade
Laravelの標準テンプレートエンジンのBladeを使用するコース
2. Livewire
JavaScriptを使用せず、BladeとPHPによって動的な機能を作

元記事を表示

mail()関数でエンベロープFromを指定する

![php001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3668800/27e692d0-b598-c044-ec95-7527afce1888.png)

web制作でPHPを利用している方は多いのではないでしょうか?

実際、WordPressを始めとするCMSの多くはPHPで作成されております。

PHPではメール関数が用意されておりプログラムから簡単にメール送信を行う事が出来ます。

ですが、デフォルト設定のままメール送信を行うと、送信元が下記の様になります。

“`
「実行ユーザー@サーバー名」
“`

その為、場合によっては迷惑メールとして認識され拒否される可能性がございます。

また、利用ドメインとサーバー名が異なる場合、バウンスメール等も受信できなります。

そこで今回はメール関数を使用する際のエンベロープFromの設定方法をご紹介します。

## エンベロープFromとは

エンベロープFromとFromヘッダーは異なる役割がございます。

Fromヘッダーは、メール本文

元記事を表示

PHPの繰り返し処理をマスター

こんにちは、KoenigWolfです。今日の記事では、PHPでの繰り返し処理について詳しく解説します。前回はfor文について学びましたが、今回はwhile文、do-while文、break文、continue文についても説明します。

## for文の復習

前回学んだfor文の基本構造は以下の通りです。

“`php

“`

このコードは、「こんにちは」を10回出力します。

## while文

while文は、条件がtrueである限り繰り返し処理を行う構文です。構造は非常にシンプルです。

“`php

“`

このコードは、for文と同様に「こんにちは」を10回出力します。

## do-while文

do-while文は、まず処理を行い、その後に条件をチェックします。したがって、条件がfalseであっても最低1回は処

元記事を表示

PHPのif文について解説

こんにちは、KoenigWolfです。今日はPHPのif文について解説します。if文を使うことで、プログラムに条件を設定し、その条件に応じた処理を行うことができます。これにより、単なる電卓以上の複雑なロジックを実装できるようになります。では、早速始めましょう。

#### 準備
1. **XAMPPの起動**
XAMPPのコントロールパネルを開き、Apacheをスタートさせます。

2. **Visual Studio Codeの起動**
Visual Studio Codeを開き、「C:\xampp\htdocs」に新しいフォルダーを作成します。フォルダー名は「chapter6」とし、その中に「index.php」を作成します。

3. **テンプレートの作成**
index.phpに以下のテンプレートを記述します。

“`php




PHPの変数とは何か?

皆さんこんにちは、KoenigWolfです。よろしくお願いします。今回もPHPによるWebアプリ開発講座の続きをやっていきます。今回はPHPの「変数」について説明していきたいと思います。

### 変数とは何か?

変数とは、プログラム中で値を格納するための名前付きの場所のことです。これにより、値を簡単に再利用したり、操作したりすることができます。変数はプログラミングを始めたばかりの方が挫折しがちなポイントですが、しっかり理解して次に進みましょう。

### 変数の宣言と使用方法

1. **変数の基本**
– PHPでは、変数はドルマーク($)で始まります。
– 変数名は、半角英数字とアンダースコア(_)で構成されます。数字で始めることはできません。
– 例:
“`php

“`

### 実際にコードを書いてみる

それでは、変数を使ったプログラムを書いてみましょう。

# 1. **XAMPPを

元記事を表示

PHPComplete: 複数のPHPバージョンを一括インストール

brewworks logo

以前紹介した、[Macで複数のバージョンのPHPを同時に使う](https://qiita.com/koriym/items/17662cd9c44c43081bf9#%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7%E9%81%B8%E6%8A%9E)のニューバージョンです。

複数のPHPバージョンを簡単に一度にインストールできる便利なHomebrewフォーミュラ「PHPComplete」を紹介します。

## PHPCompleteとは?

PHPCompleteは、複数のPHPバージョンを一度にインストールできるHomebrewフォーミュラです。XDebugやその他のPECLパッケージも含まれています。

## 他との

元記事を表示

ローカル開発環境構築ってそもそも何?なぜそんなものが必要なの?

こんにちは、KoenigWolfです。今日は前回の「PHPでWebアプリを開発する」という講座の次の記事になります。前回の記事で、PHPがそもそも何なのか理解していただけたと思います。PHPはHTMLを自動で作成したり、データを管理することができる言語です。PHPを使えば、HTMLやCSSだけでは作れないようなWebサイトやサービスを開発することができます。

今回の記事では、皆さんがPHPでWebサイトやサービスを開発する前に必要な「ローカル開発環境の構築」について説明します。ローカル開発環境って何?と思う方もいるでしょう。この記事を読めば、ローカル開発環境構築がどんな作業を指すのか、なぜ必要なのかが理解できるはずです。

### ローカル開発環境とは?

ローカル開発環境とは、自分のPC上でWeb開発を行うための環境を整えることです。具体的には、PHPやWebサーバーを自分のPCにインストールして、実際に動作するかどうかを確認できる環境を作ることを指します。

Webアプリケーションを作る際、最終的にはサーバーにセットアップしてWeb上に公開します。サーバーとは、皆さんが使っている

元記事を表示

BrewWorks: シンプルなPHP開発環境構築

## はじめ

PHPでWeb開発を始めようと思ったものの、環境構築で躓いた経験はありませんか? XAMPPやDockerなど、様々なツールがありますが、初心者にとってはそれらの設定自体が大きな壁になることがあったり、簡単なものはその後の柔軟性に欠けたりします。

そこで今回は、Mac用の新しいツール「[BrewWorks](https://github.com/koriym/homebrew-brewworks)」を使って、簡単にPHP開発環境を構築する方法をご紹介します。BrewWorksを使えば、複雑な設定なしで、すぐにPHPの開発を始められ、その後の拡張も柔軟です。

## BrewWorksのインストール

まず、BrewWorksをインストールしましょう。BrewWorksはHomebrewを利用するので、まだHome

元記事を表示

PHPってそもそも何ができるの?PHPとは?

こんにちは、KoenigWolfです。今日はHTMLとCSSの勉強を終えた人向けに、PHPによるWebアプリケーションの話をしていきたいと思います。これに関してはいくつかのシリーズものとして連載していきたいと思っています。直近の予定としては、今回の記事では「PHPってそもそも何ができるの?」という話をしていきたいと思います。次回の記事では、皆さんのPC上、ローカルPCでPHPを動かすためのツールであるMAMPやXAMPPなどを紹介していきたいと思います。

さて、今日はHTMLとCSSの勉強を終え、次に何を勉強するか迷っている人向けに、PHPについてお話ししたいと思います。その前に、HTMLとCSSを初めて学び、ある程度サイトを作れるようになってきた方が、更なるスキルアップとして大きく2つの方向性があります。1つはサイト制作、もう1つはWebアプリ開発です。

サイト制作の方向に進みたいという方は、次にJavaScriptやjQueryを学ぶことになります。Webアプリ開発に進みたいという方は、PHPやRubyなどのプログラミング言語を勉強することになります。もちろん他にも選択肢はあ

元記事を表示

XAMPP5.6.40でXdebugをインストールしVSCodeでデバッグしてみた

今回は久々にPHPの開発を行った。
PHP5で開発する必要があったため、少々手こずりました。
なのでメモメモ

## Xdebugのインストール
基本phpinfoで表示された画面をコピーして
https://xdebug.org/wizard
のサイトに貼り付けると有効なXdebugのバージョンを教えてくれるのですが、
今回はPHP5.6が古すぎるとのことでサポートしませんとのメッセージが表示されてしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1339052/b70af6da-219e-321b-5afd-b2e4e3752b63.png)

調べるとXdebug2.5.5が対応しているみたいです。
PHP5.5VC11TS(64bit)をダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1339052/e82960ae-5d97-63d9-fb2b-ace05c

元記事を表示

JavaScriptのみで非同期通信

チェックボックスの状態を取得し、apiで表示を変更するサンプル
“`
async function entertainer_api() {
api_val = getValue(“api_val”);
let form = new FormData();
form.append(“api_val”, api_val);
const url = “/api.php”;
await fetch(url, {
method: ‘POST’,
body: form,
})
.then(response => response.json())
.then(data => {
var update_ul = document.getElementById(“re_ul”);
update_ul.innerHTML = “”;
if(data.retuen_list) {
re_ul.innerHTML = data.retuen_list;
}
})
.catch(error => {
console.error(‘通信に失敗しました’,

元記事を表示

PHPでワンタイムパスワードのリプレイ攻撃対策

使用済みのワンタイムパスワードを再利用できないようにするには、**データベースやキャッシュに保存**する方法が一般的です。以下に、PHPでデータベースとキャッシュを利用した具体的な対策例を紹介します。

**データベースを利用する場合**

1. データベースにテーブルを作成し、以下のカラムを定義します。
* `user_id`: ユーザーID
* `otp`: ワンタイムパスワード
* `timestamp`: ワンタイムパスワードの生成時刻

2. ワンタイムパスワードを生成したら、データベースにレコードを挿入します。

“`php
prepare(‘INSERT INTO otps

元記事を表示

PHPでワンタイムパスワードのブルートフォース攻撃対策

## ワンタイムパスワード検証試行回数制限の実装

ワンタイムパスワードの検証試行回数制限は、ブルートフォース攻撃対策として有効な手段です。ここでは、**PHPで特定のIPアドレスに対して10分間に10回までの試行に制限をかける実装例**を紹介します。

**実装方法**

1. **データベースに試行回数管理テーブルを作成**

“`sql
CREATE TABLE otp_attempts (
ip_address VARCHAR(255) NOT NULL,
first_attempt_at TIMESTAMP NOT NULL,
attempt_count INT NOT NULL DEFAULT 0
);
“`

2. **ワンタイムパスワード検証処理に試行回数制限チェックを追加**

“`php

元記事を表示

【CakePHP5】Migrationを作成してテーブルを作成する

# はじめに

こんにちは、エンジニアのkeitaMaxです。

以前Dockerで作成した環境を使って、テーブルを作成しようと思います。

https://qiita.com/keitaMax/items/6152aa9fff66bee4e887

# Migrationファイルを作成

以下コマンドでMigrationファイルを作成します。

“`
bin/cake bake migration CreateArticles created modified
“`

すると、`src/config/Migration/20240614233400_CreateArticles.php`ファイルが作成されます。

“`php:20240614233400_CreateArticles.php

元記事を表示

OTHERカテゴリの最新記事