<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[369codeさんのフィード]]></title><description><![CDATA[Zennの369codeさん（@369code）のRSSフィードです]]></description><link>https://zenn.dev/369code</link><image><url>https://static.zenn.studio/user-upload/avatar/25d8875e1a.jpeg</url><title>369codeさんのフィード</title><link>https://zenn.dev/369code</link></image><generator>zenn.dev</generator><lastBuildDate>Thu, 11 Jun 2026 06:27:11 GMT</lastBuildDate><atom:link href="https://zenn.dev/369code/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[記事やLPのNG表現を自動検出するPHPライブラリを作った【薬機法・景品表示法チェッカー】]]></title><description><![CDATA[
 はじめに
「絶対に効きます！今だけ半額！」
こういう広告文、よく見かける。でも、薬機法や景品表示法に引っかかるNG表現だということを知らずに使っている人は多い。

記事やLPを納品した後に「この表現、使えません」と差し戻される
広告審査が通らない原因がわからない
そもそも何がNGで何がOKなのか判断基準がない

特にフリーランスのライターや制作会社にとって、薬機法・景品表示法のチェックは地味だけど避けて通れない作業だと思います。
自分自身もこの問題によく直面した過去があるので、テキストを貼り付けるだけでNG表現を検出するPHPライブラリを作ってOSSとして公開してみました。
http...]]></description><link>https://zenn.dev/369code/articles/121cbae389ac5e</link><guid isPermaLink="true">https://zenn.dev/369code/articles/121cbae389ac5e</guid><pubDate>Thu, 09 Apr 2026 21:36:04 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--0hpNBk8l--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E8%25A8%2598%25E4%25BA%258B%25E3%2582%2584LP%25E3%2581%25AENG%25E8%25A1%25A8%25E7%258F%25BE%25E3%2582%2592%25E8%2587%25AA%25E5%258B%2595%25E6%25A4%259C%25E5%2587%25BA%25E3%2581%2599%25E3%2582%258BPHP%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25AA%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%25E3%2580%2590%25E8%2596%25AC%25E6%25A9%259F%25E6%25B3%2595%25E3%2583%25BB%25E6%2599%25AF%25E5%2593%2581%25E8%25A1%25A8%25E7%25A4%25BA%25E6%25B3%2595%25E3%2583%2581%25E3%2582%25A7%25E3%2583%2583%25E3%2582%25AB%25E3%2583%25BC%25E3%2580%2591%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[決済サービス審査を通すための特商法ページを自動生成するPHPライブラリを作った]]></title><description><![CDATA[
 はじめに
決済サービスの審査で「特定商取引法に基づく表示ページの記載が不十分です」の回答で落とされた経験はないだろうか。
フリーランスや個人事業主がネットで商品やサービスを売ろうとするとき、必ずぶつかる壁がある。それが特商法ページだ。

「会社概要と何が違うの？」
「何を書けばいいか分からない」
「コピペで作ったら審査が通らなかった」

こういった声をよく聞く。自分自身もその一人だったので、解決するためのPHPライブラリを作ってOSSとして公開した。
https://github.com/369work/tokusho-generator


 使い方

 Webツールとして（非エン...]]></description><link>https://zenn.dev/369code/articles/2a2ac23e128323</link><guid isPermaLink="true">https://zenn.dev/369code/articles/2a2ac23e128323</guid><pubDate>Sun, 05 Apr 2026 22:36:29 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--s-2srpZQ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E6%25B1%25BA%25E6%25B8%2588%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2593%25E3%2582%25B9%25E5%25AF%25A9%25E6%259F%25BB%25E3%2582%2592%25E9%2580%259A%25E3%2581%2599%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E7%2589%25B9%25E5%2595%2586%25E6%25B3%2595%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E3%2582%2592%25E8%2587%25AA%25E5%258B%2595%25E7%2594%259F%25E6%2588%2590%25E3%2581%2599%25E3%2582%258BPHP%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25AA%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[WordPressでミニマルなポートフォリオサイトを作る【コード不要】]]></title><description><![CDATA[ポートフォリオサイトを作りたいけど、デザインに時間をかけたくない。そんなときに使えるWordPressテーマの組み合わせを紹介します。


 どこで作るか、という話
「ポートフォリオを作りたい」と思ったとき、選択肢はいくつかあります。Wix や Squarespace はすぐ始められるけど、デザインの自由度に限界がある。Notion や Zenn はブログには向いているけど、「作品を見せる」ための構成を作るには少し窮屈。
WordPress は自由度が高い分、「じゃあデザインどうするか」という問題がついてまわります。テーマを選んで有効化しても、なんとなくありきたりな見た目になりがち。

...]]></description><link>https://zenn.dev/369code/articles/27f813dfde331b</link><guid isPermaLink="true">https://zenn.dev/369code/articles/27f813dfde331b</guid><pubDate>Sat, 04 Apr 2026 20:44:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--lLJWuyVn--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WordPress%25E3%2581%25A7%25E3%2583%259F%25E3%2583%258B%25E3%2583%259E%25E3%2583%25AB%25E3%2581%25AA%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25AA%25E3%2582%25AA%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2588%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258B%25E3%2580%2590%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E4%25B8%258D%25E8%25A6%2581%25E3%2580%2591%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravel11 マルチ認証環境でのセッション管理をカスタマイズ]]></title><description><![CDATA[
 はじめに
Laravelでマルチ認証（User認証&amp;Admin認証など）を実装する際、デフォルトのセッション管理では問題が発生します。具体的には、AdminとUserの両方が同じuser_idカラムを使用するため、Admin認証時にもuser_idにAdminのIDが格納されてしまいます。
この記事では、この問題を解決するためのカスタムセッションハンドラーの実装方法を紹介します。

 前提知識：Laravelのセッション設定

 セッション設定ファイル
Laravelのセッション設定はconfig/session.phpに保存されます。デフォルトではdatabaseドライバー...]]></description><link>https://zenn.dev/369code/articles/82e8c5e90eddae</link><guid isPermaLink="true">https://zenn.dev/369code/articles/82e8c5e90eddae</guid><pubDate>Tue, 09 Sep 2025 11:09:54 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--0TKPYhhh--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel11%2520%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E8%25AA%258D%25E8%25A8%25BC%25E7%2592%25B0%25E5%25A2%2583%25E3%2581%25A7%25E3%2581%25AE%25E3%2582%25BB%25E3%2583%2583%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E7%25AE%25A1%25E7%2590%2586%25E3%2582%2592%25E3%2582%25AB%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%259E%25E3%2582%25A4%25E3%2582%25BA%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[WordPress 公式テーマの制作（ブロックテーマ編）]]></title><description><![CDATA[さて前回こんな記事を書いたわけですが、
https://zenn.dev/369code/articles/6360fe969cde71
今回は流行りのブロックテーマについて書いていこうと思います。
自分が作る際に、そこそこ検索したのですが、まじでがっつり書かれてるサイトがほぼないのですよ。
なので結構手探りでやっていった感じですね。
Create Block Themeなんていうプラグインもあるらしいですが、これは半分以上できあがってから知りましたね。使ってみたんですが、自分のしたいことには使えなかった感じ。
あ、でもtheme.jsonを簡単に記載できるって点は評価します(笑)。

...]]></description><link>https://zenn.dev/369code/articles/b05a8a76d4a2da</link><guid isPermaLink="true">https://zenn.dev/369code/articles/b05a8a76d4a2da</guid><pubDate>Sun, 06 Jul 2025 06:49:43 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--SJDFxXoF--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WordPress%2520%25E5%2585%25AC%25E5%25BC%258F%25E3%2583%2586%25E3%2583%25BC%25E3%2583%259E%25E3%2581%25AE%25E5%2588%25B6%25E4%25BD%259C%25EF%25BC%2588%25E3%2583%2596%25E3%2583%25AD%25E3%2583%2583%25E3%2582%25AF%25E3%2583%2586%25E3%2583%25BC%25E3%2583%259E%25E7%25B7%25A8%25EF%25BC%2589%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[WordPressのテーマを翻訳しよう（Poedit 編）]]></title><description><![CDATA[
 はじめに
WordPressテーマを日本語化するには、次のような関数を使ってテキストを出力します：
_e('文字列', 'テキストドメイン');
__('文字列', 'テキストドメイン');
ここで使われている「テキストドメイン」は、翻訳対象の文字列を識別するためのテーマごとの一意なIDで英数字で構成されています。


 テキストドメインの確認・設定
通常、テーマの style.css の冒頭に次のような記述があります：
/*
Theme Name: Hoge
Text Domain: hoge
Domain Path: /languages
*/


Text Domain はテー...]]></description><link>https://zenn.dev/369code/articles/32b56aa482a129</link><guid isPermaLink="true">https://zenn.dev/369code/articles/32b56aa482a129</guid><pubDate>Thu, 22 May 2025 09:20:35 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--j6pUunYv--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WordPress%25E3%2581%25AE%25E3%2583%2586%25E3%2583%25BC%25E3%2583%259E%25E3%2582%2592%25E7%25BF%25BB%25E8%25A8%25B3%25E3%2581%2597%25E3%2582%2588%25E3%2581%2586%25EF%25BC%2588Poedit%2520%25E7%25B7%25A8%25EF%25BC%2589%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[ユーザーが使いやすいログインフォームを作る]]></title><description><![CDATA[ログインフォームは、ほとんどのWebサイトで必要不可欠な要素です。
制作者にとって頻繁に作るパーツだからこそ、使いやすく、そして安全に設計することがとても重要になります。
今回は、どのデバイスでも快適に使えるログインフォームを作るためのTipsをまとめました。
安全策についてはまた別の機会に。

 最低限押さえたいフォームのマークアップ
基本的なマークアップは以下のようになります。
 &lt;form&gt;
    &lt;label for="email"&gt;メールアドレス&lt;/label&gt;
    &lt;input type="email" id="email" n...]]></description><link>https://zenn.dev/369code/articles/20146a0c988bbb</link><guid isPermaLink="true">https://zenn.dev/369code/articles/20146a0c988bbb</guid><pubDate>Mon, 28 Apr 2025 05:16:42 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--OdSFn2b0--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B6%25E3%2583%25BC%25E3%2581%258C%25E4%25BD%25BF%25E3%2581%2584%25E3%2582%2584%25E3%2581%2599%25E3%2581%2584%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25BC%25E3%2583%25A0%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravelセットアップしたら最初にすること]]></title><description><![CDATA[Laravelのインストール・セットアップは別記事参照で。
ここからが本番です。
まずはビューを整えるところから始めます。

 オリジナルのViewを作ろう
Bladeで作ってる場合、app/resources/viewsのlayoutsフォルダに初期でapp.bladep.php/guest.blade.phpが入ってます。guestがログイン前・appがログイン後で使うBladeになってます。
サイトを作るとき、ログインしてないページ・ログイン後と分けるのは、マイページ（ダッシュボード）やログインページくらいじゃないかなと。
なので汎用で使えるViewをまず作ります。
まず、app/...]]></description><link>https://zenn.dev/369code/articles/b6384de0a3a730</link><guid isPermaLink="true">https://zenn.dev/369code/articles/b6384de0a3a730</guid><pubDate>Fri, 25 Apr 2025 07:30:48 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--fwWbQULz--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2597%25E3%2581%2597%25E3%2581%259F%25E3%2582%2589%25E6%259C%2580%25E5%2588%259D%25E3%2581%25AB%25E3%2581%2599%25E3%2582%258B%25E3%2581%2593%25E3%2581%25A8%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[LaravelでBreeze使ってるなら、簡単に2段階認証にできるぞ]]></title><description><![CDATA[最近は認証で2段階認証とか2要素認証ってほぼ必須ですよね。
Google Authenticatorを使って2要素認証を実装する記事は前回書きました。
Laravelに2要素認証を実装しよう
今回は、Breezeに標準で搭載されてるメール認証の機能（MustVerifyEmail）を使って、簡単に二段階認証を実装したいと思います。
通常ログイン→メールアドレスにログインコードを送付→認証フォームにコード入力→認証OK→ダッシュボードの流れになります。

 現在の実装状況
前提条件として、LaravelにBreezeが実装されていること。
MustVerifyEmailが稼働していること。...]]></description><link>https://zenn.dev/369code/articles/eaf8d0c2d6011d</link><guid isPermaLink="true">https://zenn.dev/369code/articles/eaf8d0c2d6011d</guid><pubDate>Sun, 16 Mar 2025 06:15:19 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--c7T9vLWD--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25A7Breeze%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E3%2582%258B%25E3%2581%25AA%25E3%2582%2589%25E3%2580%2581%25E7%25B0%25A1%25E5%258D%2598%25E3%2581%25AB2%25E6%25AE%25B5%25E9%259A%258E%25E8%25AA%258D%25E8%25A8%25BC%25E3%2581%25AB%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258B%25E3%2581%259E%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravel11・Breeze ログインしたら、ログイン前のページに戻る]]></title><description><![CDATA[良く実装するコードなので備忘録.
Laravel11・Breezeを実装済みのBladeのケース。

 ログイン前のURLを保存する
まず、ログインページにアクセスするその直前のURLをセッションに保存します。
AuthディレクトリのAuthenticatedSessionControllerのcreateで行います。

AuthenticatedSessionController.php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;

public function create(Request $re...]]></description><link>https://zenn.dev/369code/articles/596a15cc80802d</link><guid isPermaLink="true">https://zenn.dev/369code/articles/596a15cc80802d</guid><pubDate>Wed, 05 Feb 2025 04:40:55 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--NJ4FF4Zv--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel11%25E3%2583%25BBBreeze%2520%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2581%2597%25E3%2581%259F%25E3%2582%2589%25E3%2580%2581%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E5%2589%258D%25E3%2581%25AE%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E3%2581%25AB%25E6%2588%25BB%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[PHPでのFile Upload のやりかた]]></title><description><![CDATA[今はやり方をしっかり知らなくてもCMSとかFrameworkのライブラリで簡単にできちゃうのがUpload。
Uploadの方法を書いて！ってAIに言ったらできちゃうしね。
でも、これをあえてPUREなPHPで書いて仕組みをちゃんと知りたいねと。
基本の基本を書いていこうと思います。

 まずはPHPの設定から
php.iniというPHPの設定ファイルが存在します。
その中でPHPのアップロードが許可されているかを確認します。
また、アップロードが許可されていても、ファイルサイズ・アップロード時間の指定もあります。
その辺をしっかり確認してみましょう。

php.ini

// アップロ...]]></description><link>https://zenn.dev/369code/articles/97543a0877886f</link><guid isPermaLink="true">https://zenn.dev/369code/articles/97543a0877886f</guid><pubDate>Sun, 22 Dec 2024 12:26:08 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--w6V3ZpGj--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:PHP%25E3%2581%25A7%25E3%2581%25AEFile%2520Upload%2520%25E3%2581%25AE%25E3%2582%2584%25E3%2582%258A%25E3%2581%258B%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[WordPressの公式テーマ制作方法　-クラシックテーマ編-]]></title><description><![CDATA[独自テーマを制作する方法は過去の記事で掲載してます。
WordPressの自作テーマで簡単サイト制作
今回はWordPressの公式にも提出できる、正式な方法でのテーマ制作というものについて記載します。
WordPressのテーマには大きく2種類あり、クラシックテーマとブロックテーマがあります。
クラシックテーマは、主にPHPファイルを使用してサイトを構築し、ブロックテーマでは、HTMLファイルとJSONファイルでサイトを構築するという違いがあります。
最近では、ハイブリッドテーマという、ブロックスタイルサポートを使用できるクラシックテーマもあります。
この記事では、まずクラシックテーマ...]]></description><link>https://zenn.dev/369code/articles/6360fe969cde71</link><guid isPermaLink="true">https://zenn.dev/369code/articles/6360fe969cde71</guid><pubDate>Thu, 28 Nov 2024 11:31:13 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--WPVmJRxU--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:WordPress%25E3%2581%25AE%25E5%2585%25AC%25E5%25BC%258F%25E3%2583%2586%25E3%2583%25BC%25E3%2583%259E%25E5%2588%25B6%25E4%25BD%259C%25E6%2596%25B9%25E6%25B3%2595%25E3%2580%2580-%25E3%2582%25AF%25E3%2583%25A9%25E3%2582%25B7%25E3%2583%2583%25E3%2582%25AF%25E3%2583%2586%25E3%2583%25BC%25E3%2583%259E%25E7%25B7%25A8-%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravelを共有レンタルサーバーに設置する時のpublic]]></title><description><![CDATA[共有レンタルサーバーでLaravelを使う時、artisanが使えなくて、どうしようかなって思うときありますよね、多分ｗ
Laravelの構成そのままpublic_htmlにアップしてもいいのだけど、そうなるとパスがおかしくなるし、なによりpublic_htmlの中にLaravelのコアは入れたくないですよね。
ということで、数時間格闘した記録をここに備忘録して残します。

 Laravelの構成
Laravelは通常、こういった構成になってます。

この中のpublicが公開用のディレクトリでindex.phpや画像があり、サーバーで言うところのhtdocsだったり、public_ht...]]></description><link>https://zenn.dev/369code/articles/89ca278a156abf</link><guid isPermaLink="true">https://zenn.dev/369code/articles/89ca278a156abf</guid><pubDate>Sun, 20 Oct 2024 07:14:29 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--bO5b0EXR--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2582%2592%25E5%2585%25B1%25E6%259C%2589%25E3%2583%25AC%25E3%2583%25B3%25E3%2582%25BF%25E3%2583%25AB%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2590%25E3%2583%25BC%25E3%2581%25AB%25E8%25A8%25AD%25E7%25BD%25AE%25E3%2581%2599%25E3%2582%258B%25E6%2599%2582%25E3%2581%25AEpublic%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravel11.ｘでマルチログイン実装（Breeze）]]></title><description><![CDATA[Laravel10でBreezeを使ったマルチログイン実装の記事を過去に書いたのだが、larave11になって実装に大幅な修正が入ったため、新規に備忘録として残します。

 Laravelのインストール
過去の記事を参照
Laravel10.x のインストールからBreezeを使ったマルチ認証まで
Laravel11になって、インストール時にSQliteのデータベースに初期データが入るので、ENVファイルにMySQLを使うように書くことと、初期設定をしたら、いったん、migrate:freshしてMYSQLにデータを入れること。
そして、Breezeのインストールと表示確認まで行います。...]]></description><link>https://zenn.dev/369code/articles/9b47ef21917c3a</link><guid isPermaLink="true">https://zenn.dev/369code/articles/9b47ef21917c3a</guid><pubDate>Thu, 04 Jul 2024 05:45:56 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--ikT-cIBE--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel11.%25EF%25BD%2598%25E3%2581%25A7%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E5%25AE%259F%25E8%25A3%2585%25EF%25BC%2588Breeze%25EF%25BC%2589%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravel11でGate使ってUserをroleでルート分岐させるゾ]]></title><description><![CDATA[UserとAdmin分けたいんだけど、大規模なサイトじゃないからAdmin1人だし、それならマルチ認証でつくるほどでもないよね？ってときあるよね。
そういう時はUserモデルにroleっていう権限カラム持たせて、その値で判断しよう。
そして、その値で、Adminだけの管理ページに飛ばせば、普通のuserはページに入れない。
こんな感じの構成を作ってみたいと思います。
User認証用に、Breezeがインストールされている前提です。

 マイグレーションでUserモデルにカラム追加
UserとAdminを区別するために、Userテーブルにroleカラムを作成します。
値は、普通にStrin...]]></description><link>https://zenn.dev/369code/articles/b7840c2c32bfae</link><guid isPermaLink="true">https://zenn.dev/369code/articles/b7840c2c32bfae</guid><pubDate>Wed, 03 Apr 2024 07:16:35 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--2azeAryA--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel11%25E3%2581%25A7Gate%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6User%25E3%2582%2592role%25E3%2581%25A7%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2588%25E5%2588%2586%25E5%25B2%2590%25E3%2581%2595%25E3%2581%259B%25E3%2582%258B%25E3%2582%25BE%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[LaravelのBlade間で共通の変数を使う]]></title><description><![CDATA[Laravelを使ってて、HTMLのパーツをViewのBladeファイルで使いまわしたいときありますよね。
例えば、メニューの項目やカテゴリー項目をヘッダーとフッターで使いたいとか。
header.blade.phpとfooter.blade.phpに分かれてて、layout.blade.phpで読み込んでるよと言った場合、面倒なので同じものを呼び出すときは、全部のbladeで同じ変数使いたいってなると思うんです。
そういう時に使うのが共通変数です。
色々方法はありますが、とりあえず簡単な方法で設定します。

 ServiceProviderで設定
今回はデータベースのconfigsテー...]]></description><link>https://zenn.dev/369code/articles/edfa6c9f240cb7</link><guid isPermaLink="true">https://zenn.dev/369code/articles/edfa6c9f240cb7</guid><pubDate>Thu, 01 Feb 2024 07:06:39 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--AIl_8Ef2--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25AEBlade%25E9%2596%2593%25E3%2581%25A7%25E5%2585%25B1%25E9%2580%259A%25E3%2581%25AE%25E5%25A4%2589%25E6%2595%25B0%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%2586%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravelで選択肢用のマスターテーブルを作るのやめませんか？]]></title><description><![CDATA[フォームのセレクトボックスやチェックボックス、ラジオボタン等の選択肢に使うために、データベースでマスターテーブルを作るって、よくあることだと思います。
でも使うのって結局選択肢と表示画面だけなんですよね。しかもマスターのみでデータとしては増えない。
コンフィグファイルに入れれば？ってのもありですが、無駄な定義増やしたくない。
PHP8.1から、Enumが使えるようになり、定義を列挙することができるようになりました。
もちろんLaravelでも使用可能です。
選択肢に応じて、Enumの定義を増やせばいいんです。
まずはLaravelをインストールしていることが前提です。

 Appの中にE...]]></description><link>https://zenn.dev/369code/articles/5e9e8efb2f1eb0</link><guid isPermaLink="true">https://zenn.dev/369code/articles/5e9e8efb2f1eb0</guid><pubDate>Thu, 11 Jan 2024 05:51:37 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--mQjwtfHP--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25A7%25E9%2581%25B8%25E6%258A%259E%25E8%2582%25A2%25E7%2594%25A8%25E3%2581%25AE%25E3%2583%259E%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25BC%25E3%2583%2586%25E3%2583%25BC%25E3%2583%2596%25E3%2583%25AB%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258B%25E3%2581%25AE%25E3%2582%2584%25E3%2582%2581%25E3%2581%25BE%25E3%2581%259B%25E3%2582%2593%25E3%2581%258B%25EF%25BC%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravel10.x のインストールからBreezeを使ったマルチ認証まで]]></title><description><![CDATA[最新のLaravelをインストールして、最低限やること、入れるコンポーネントとかを備忘録しようと思う。バージョンごとに変わったりするので、記録は大事。
基本は、laravelドキュメントを参考にしています。
環境はWindows11, Xampp, PHP8.1.6, MariaDB10.4.24, Visual Studio Code(vscode)

 インストール
まずLaravelプロジェクトを作成します。最新のLaravelをDLする前提です。
Xamppのコントロールパネルで、Shellボタンを押してShellを立ち上げ、次のコードを入力します。
project-name に...]]></description><link>https://zenn.dev/369code/articles/6df707bc199fb6</link><guid isPermaLink="true">https://zenn.dev/369code/articles/6df707bc199fb6</guid><pubDate>Sat, 16 Dec 2023 05:41:16 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--bdyANUq6--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel10.x%2520%25E3%2581%25AE%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%258B%25E3%2582%2589Breeze%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259F%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E8%25AA%258D%25E8%25A8%25BC%25E3%2581%25BE%25E3%2581%25A7%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravelに2要素認証を実装しよう]]></title><description><![CDATA[LaravelにBreezeをインストールするとログイン認証が行えますが、ログイン時のアカウントのセキュリティを強化するには、スマホでの2要素認証の方法がおススメです。
第三者が不正にアカウントにアクセスするのを防止し、アカウントを保護することができます。
実装するとログインする際に、通常のパスワードのログインの後に、本人のスマホで生成されたワンタイムパスワードによる追加の認証情報が必要になります。
今回は、Google Authenticatorアプリを使って、処理を実装したいと思います。
作成環境は、Windows11、xampp、php8.1、VSCode、Laravel10です。...]]></description><link>https://zenn.dev/369code/articles/231e7fc5fc4c61</link><guid isPermaLink="true">https://zenn.dev/369code/articles/231e7fc5fc4c61</guid><pubDate>Fri, 05 May 2023 03:17:04 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--AryxWSqF--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25AB2%25E8%25A6%2581%25E7%25B4%25A0%25E8%25AA%258D%25E8%25A8%25BC%25E3%2582%2592%25E5%25AE%259F%25E8%25A3%2585%25E3%2581%2597%25E3%2582%2588%25E3%2581%2586%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item><item><title><![CDATA[Laravelで管理者が必要なら、マルチ認証でadminをつくるより簡単な方法あるよ]]></title><description><![CDATA[良くつくるパターンは、larave10 + breezeのマルチ認証で、userとadminを作成し、adminがuser管理をするサイト構成ですね。
まずbreezeをインストールした時点では、userの認証しかないので、ここでadmin用のものを作成する必要があります。
そして、admin用ができたら、adminのダッシュボードでuser管理用のページを別途作成するという手順になります。
Laravelにはlaravel-adminという無料のライブラリがあり、これを使用することで、breezeのadmin認証を作らずに、簡単にadminとadmin画面ができてしまいます。
複雑な処...]]></description><link>https://zenn.dev/369code/articles/ce1e1a0ecfbb07</link><guid isPermaLink="true">https://zenn.dev/369code/articles/ce1e1a0ecfbb07</guid><pubDate>Sun, 23 Apr 2023 05:05:07 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--S9VnjSTf--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Laravel%25E3%2581%25A7%25E7%25AE%25A1%25E7%2590%2586%25E8%2580%2585%25E3%2581%258C%25E5%25BF%2585%25E8%25A6%2581%25E3%2581%25AA%25E3%2582%2589%25E3%2580%2581%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E8%25AA%258D%25E8%25A8%25BC%25E3%2581%25A7admin%25E3%2582%2592%25E3%2581%25A4%25E3%2581%258F%25E3%2582%258B%25E3%2582%2588%25E3%2582%258A%25E7%25B0%25A1%25E5%258D%2598%25E3%2581%25AA%25E6%2596%25B9%25E6%25B3%2595%25E3%2581%2582%25E3%2582%258B%25E3%2582%2588%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:369code%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdGF0aWMuemVubi5zdHVkaW8vdXNlci11cGxvYWQvYXZhdGFyLzI1ZDg4NzVlMWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>369code</dc:creator></item></channel></rss>