- 1. 【PHP】Notice: Undefined indexエラーの原因と対処法
- 2. Laravel 画像をアップロードして表示する
- 3. Swooleを使う前に知っておきたい基礎の基礎
- 4. 某×サーバ宛のdeployerが動かなくなった件
- 5. Laravelの開発環境構築
- 6. Dockerインストール -> Docker ComposeでWordPressローカルで動かしてMySQLに外から接続したり、編集を外からしたり。(Mac)
- 7. PDO
- 8. PHP配列表示
- 9. Composer によるパッケージのアップデート入門
- 10. Phalconのバージョンアップ対応についてざっくりまとめ
- 11. C#アプリケーションからPHP経由でデータベースにデータを一括登録する方法
- 12. Laravelでフラッシュデータ(直後のHTTPリクエストの間だけセッションに保存されるデータ)を使う
- 13. CakePHP3+ HTTP_Request2
- 14. PHPエラー出力
- 15. Laravelでリダイレクトを使う
- 16. wordpressでドキュメントの有効期限切れ対策
- 17. PHP 入力データから一致した指定値の取り出し複数パターン 連想配列
- 18. 複数プログラミング言語より Factom ブロックチェーンのアクセス
- 19. PHPで初めてのWebアプリケーション開発 DB(MySQL)設定 備忘録6
- 20. RaspberryPi3 でPHPが使えなくなってしまったのでメモ
【PHP】Notice: Undefined indexエラーの原因と対処法
#【PHP】Notice: Undefined indexエラーの原因と対処法
phpのフォームで送信後に以下のエラーが表示された場合。
“`
Notice: Undefined index
“`##原因
フォームのデータ受け取りがうまくいっていない。
inputタグのname属性に空白を含んだ値をセットしていた。name属性は空白で設定できるが、post(またはget)送信後、空白がアンダースコア「_」に置き換わる。
`$_POST[]`のname属性の指定を、アンダースコアなしの値で呼び出していたためエラーが発生。
##対処法
下記2パターンで対応可能。①nameの設定に空白を使わない。
②`$_POST[]`で受取時に空白を「_」に置換した値をセットする。##PHPの処理
###エラー
インスタンス生成時に名前の部分に空白を含んだ値をセットしていた。“`php:php
Laravel 画像をアップロードして表示する
# 目的
– アプリケーションに画像をアップロードして別画面で表示する方法をまとめる
# 環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |– ソフトウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |#
Swooleを使う前に知っておきたい基礎の基礎
近年Swooleに関する記事を見かける機会も増えてきました。LaravelやSymfonyといったフレームワークでもSwoole拡張のためのパッケージが登場しています。これらのフレームワークを利用すればSwooleのことをあまり知らなくてもアプリケーションを構築できるでしょう。しかし、Swooleについての基礎知識がないまま構築してしまうと、本番リリース後に予期せぬ問題を抱え込んでしまうかもしれません。
そこで本記事ではSwooleの基礎の基礎についてまとめてみたいと思います。
## Swooleとは
Swooleを知らない方のために、まずはSwooleについて簡単に紹介します。
![マスコット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184074/9a0ed77c-e2f6-3161-0bde-3725608cae34.png)
SwooleはC/C++で作られたPHP拡張モジュールで、スケーラブルなネットワークアプリケーションを構築するために設計された非同期・イベント駆動モデルのフレームワー
某×サーバ宛のdeployerが動かなくなった件
# 事件編
某×サーバへのデプロイ、deploy:vendorsタスクでエラる
エラー概要(意訳 このエラーはパッケージがPHP7.2を要求しているがオメーのPHP環境5.4だぜ!出直してこい!)
“`
Loading composer repositories with package information
Installing dependencies from lock file
Warning: The lock file is not
Laravelの開発環境構築
##環境
Mac Catalina10.15##Homebrewをインストールする
[Homebrew](https://brew.sh/index_ja)はソフトウェアの導入を単純化するパッケージ管理システムのひとつです:blush:以下コマンドを実行
“`sh
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`インストールできたか確認
“`sh
$ brew -v
“`##PHPをインストールする
以下のコマンドでphp7.4をインストールする“`sh
$ brew install php@7.4
“`
インストールできたか確認“`sh
$ php -v
“`##Composerをインストールする
Composerとは、PHP向けのパッケージ管理システムです:blush:Homebrewでインストールする
“`sh
$ brew install composer
“`イ
Dockerインストール -> Docker ComposeでWordPressローカルで動かしてMySQLに外から接続したり、編集を外からしたり。(Mac)
色々とうまくいかなかったのでメモを残します。
# WordPressをdocker-composeで動かすまで
## Dockerのインストール
下記URLからアプリをダウンロードしてインストール
https://www.docker.com/get-startedDockerのアイコンが上のバーに出てくるのでdocker.hubのアカウントでログイン
![スクリーンショット 2020-05-13 10.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636715/6c95c69c-3f15-bed9-3e30-c91b8c53cf3f.png)UIでDockerの状況をお手軽に見れるので結構便利
## docker-composeの導入
下記ドキュメントを参考にcurlで導入したが、なぜか動かなかった
http://docs.docker.jp/compose/install.html“`
curl -L https://github.com/docker/compose/
PDO
PHPを用いてデータベースにアクセスするにはPDOを利用する。
##PDOとは
PDOとは PHP Data Objects の略。
データベースは種類によって、接続方法や操作方法が異なる。
PDOを用いれば、使用しているデータベースが異なっていてもコードの書き方を変える必要はない。#使用例
“`
//データベースへの接続
try {
$pdo = new PDO(‘mysql:host=’ . $this->DB_HOST . ‘;dbname=’ . $this->DB_NAME, $this->DB_USER, $this->DB_PASSWORD);
//プリペアドステートメントのエミュレーションを無効にする
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
//例外がスローされるようにする
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//接続
PHP配列表示
#はじめに
こちらではphpで配列の表示について書いていきたいと思います。
受け取ったものに対し内容が何であるかを把握するのはその後の処理において必要になると思います。#環境
CentOS
PHP 7.3.17#内容
具体的な内容・・・・と言っても基本的な内容ですが・・・
主に使うのはvar_dump
print_r
var_exportこの三種類を使っていこうかとおもいます。
と言ってもやることはシンプルなんですけどね・・・“`html:index.html
index
Composer によるパッケージのアップデート入門
## はじめに
「パッケージをアップデートしたらなんかエラー出た」
なんてことにならないために、雰囲気でやっている Composer によるパッケージのアップデートをちゃんと理解しながら行いたい。そんな人向けの記事になります。
## 環境
– Composer 1.10.x (Installed with Homebrew)
## 事前知識
– PHP と Framework のバージョン
– セマンティック・バージョニング
– Composer によるバージョン指定方法いろいろ
– composer.lock ファイル入門なんで細かなことは抜きにしたいですが、最低でも上記の 4 つはおさえておきましょう。
### PHP と Framework のバージョン
「フレームワークをメジャーアップデートしたらなんかエラー出た」。雰囲気でやっていると起こりうるものですが、特にメジャーアップデートは互換性のない変更が含まれている可能性が高いので、アップデートを行う前に、どのような変更がなされているのか、どういう風に修正していけばいいのか、事前に公式ドキュメントをしっかり確認
Phalconのバージョンアップ対応についてざっくりまとめ
## はじめに
筆者はPHP歴1年半、Phalcon歴1ヶ月程度のひよっこです。
記事は調査した上で実際に手を動かして検証した内容にしていますが、もしかしたら誤りがあるかもしれません。
その際は遠慮なくご指摘ください!## Phalconとは?
PHPの軽量フレームワークで、メジャーなPHPフレームワークでは最速レベルのようです。
理由はフレームワークの本体がC言語 or Zephirで書かれているPHP拡張モジュールだからです。
MVCモデルでフルスタックフレームワークでもありますが、ディレクトリ構造のしばりがゆるくて自由な実装が可能です。
その分玄人向けで、日本語情報も少ないので学習コストは高めのようです。## 1系~3系と4系以降の違い
バージョンアップ時に大事なのが後方互換性です。
メジャーバージョンが同じである場合は確実な後方互換性があるようです。
メジャーバージョンは変わっていますが、1系~3系は後方互換性が高いです。
4系以降とそれ以前はかなり仕様が変わっていて、1系~3系から4系以降にバージョンアップする場合はある程度大きな改修になることを覚悟したほうが良
C#アプリケーションからPHP経由でデータベースにデータを一括登録する方法
## 背景
従来Excelで管理していたデータをデータベース管理に移行したいと思い、いろいろと調べていたのですが、WindowsアプリケーションからWeb系へアクセスするような事をされている方が少ないのか、なかなか情報が見つかりませんでした。
Excelから直接MySQLへのアクセスも検討したのですが、Excelからだと使用者のPCにODBCドライバのインストールが必要になり、PC毎にインストールをしてもらうのは大変なので、ODBCに頼らないデータ転送手法を模索しました。## 構成
元々Excelの帳票とそれをVBAのマクロでかき集めたシートで構成していたものを、Excelの帳票を読み込み、Web経由でデータベースへ流し込むという構成を検討しました。
Excelに限らず様々なデータを転送できるようにするため、帳票の読み込みはC#のアプリケーションによって作成することにしました。
また、登録するデータは複数のレコードを一括登録するために、構造体渡しのような形をとりたく、流行りのJSONフォーマットを使用。
データの受け渡しイメージは次の通りです。
**C#アプリケーション** > *
Laravelでフラッシュデータ(直後のHTTPリクエストの間だけセッションに保存されるデータ)を使う
# フラッシュデータ
Laravelでは直後のHTTPリクエストの間だけセッションにデータを保存し、それ以降は削除されるフラッシュデータという仕組みが提供されています
これまで下記記事で扱ってきました
[Laravelでリクエストデータを取得する](https://qiita.com/toontoon/items/eff426606ce0f194c345)
[Laravelで入力値エラーチェック(validate)を実装する](https://qiita.com/toontoon/items/abf5c52eb0c3fe11003c)
[Laravelでリダイレクトを使う](https://qiita.com/toontoon/items/afc055e8da3e786f7e8f)
いずれの場合もリクエストデータをフラッシュデータとして保存していましたが、今回はリクエストデータではなく、サーバサイドで好きな値をフラッシュデータに格納します# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdo
CakePHP3+ HTTP_Request2
というか、プラグインのインストールに手こずった。
ポイントは、”/var/www/html/my_app”ディレクトリでインストール作業しなさいってことだった。# 参考
https://book.cakephp.org/3/ja/plugins.html# Dockerfile
“`
FROM amazonlinux:2# こんなにインストールいらないかもしれない
RUN yum update -y && \
yum clean all && \
amazon-linux-extras install php7.3 && \
yum install -y wget zip unzip tar httpd && \
yum install -y php php-gd php-mbstring php-xml php-pecl-zip php-pgsql php-pear php-intl && \
yum clean allRUN curl -s http://getcomposer.org/installer | php &&
PHPエラー出力
#はじめに
こちらではphpのエラーを出力するやりかたを紹介できればと思います。
コードを書く上でミスを絶対にしないなんてありえないでしょう。
小さなミス・初歩的なミスから動かないなんていうのもザラだと思います。
その上でエラーを表示させるのは重要な問題解決になります。#環境
Cent0S
PHP 7.3.17
Apache/2.4.6#やりかた
まずphp.iniを設定しますxampp
C:\xampp\php\php.iniLinux
/etc/php.ini今回はわかりやすく画面に表示させるようにしたいと思います。
変更点“`ini:php.ini
#display_errors=Off
display_errors=On
“`apacheを再起動します。
#実行結果
では試しに“`php:test.php
“;
echo “エラー部分”
echo “
“;
?>
“`
画面に
“`
Parse error: syntax err
Laravelでリダイレクトを使う
# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています# Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpにredirect1メソッド、redirect2、redirect3メソッドを追記“`
public function redirect1(Request $request)
{
return view(‘sample.redirect1’);
}public function redirect2(Request $request)
{
return redirect(‘sample/r
wordpressでドキュメントの有効期限切れ対策
# 現象
POSTで検索結果を送信した後にブラウザバックするとこれが出る。
# 対策
## バージョン
wordpress 5.4.1## 対策方法
これをfunctions.phpに貼り付けたら終わり。“`php
function add_header_session() {
header(“Cache-Control: private”);
header(“Pragma: no-cahce”);
header(“Expires: “);
header(“Last-Modified: “);
}
add_action( ‘send_headers’, ‘add_header_session’ );
“`#備考
調べると以
PHP 入力データから一致した指定値の取り出し複数パターン 連想配列
まだまだPHP勉強し始めです。
題名にある通り配列取り出しの例が何個かできましたので
見直す時用です。
上に感想でその下に該当コード1,これはarray_searchとarray_columnの組み合わせでpostされたデータと一致させる方法
“`
$data = [
[‘id’ => ‘1’,’pass’ => ‘111’, ‘name’ => ‘山田’],
[‘id’ => ‘2’,’pass’ => ‘2222’, ‘name’ => ‘田中’],
[‘id’ => ‘3’,’pass’ => ‘3333’, ‘name’ => ‘佐藤’],
];if (isset($_POST[‘id’], $_POST[‘pass’])){
if(empty($_POST[‘id’]) ||empty($_POST[‘pass’])) {
$notice = “値がどれか入ってないよ”;
}elseif (array_search($_POST[‘id’], array_column($data, ‘id’)) &&
複数プログラミング言語より Factom ブロックチェーンのアクセス
![1*UfR2neXteow2gUQrScP6BQ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/473244/e97ab578-ac24-4a8f-8033-f24eb0533b1e.png)
Kompendium LLC は色んなプログラミング言語知識と効果的な Factom のグループです。
グループのいずれかの目標は Factom エコシステムに多くの開発者を引き続け、案内や簡単に
の理解等を申し上げることです。ブロックチェーンには継続的な拡張のシステムがあるのでソ
フトウェア遷移することが大変です。Factom に興味がある開発者ために様々なプログラミン
グ言語でスムーズに扱うクライアントライブラリの収集を提供し、Factom エコシステムの開
発ツールボックスも拡大する。顧客の選択言語に利用できないライブラリは思いとどまらせる
原因です。それを防止するように Factom エコシステムの開発ツーリングの改善を努力してい
ます。大分のブロックチェーンはスマートコントラクト機能が無いですが
PHPで初めてのWebアプリケーション開発 DB(MySQL)設定 備忘録6
#前提
PHPを使ったWebアプリケーションの開発知識が必要になったので、開発過程の備忘録、知識のインプット・アウトプットを目的としている。###環境
macOS Catalina 10.15.3
Laravel 7.10.3
PHP 7.3.11#備忘録6 目次
####MySQL接続
– MySQLのインストール
– MySQLの認証プラグインの変更
– データベースの作成
– Laravelの.envファイルの修正
– laravelのconfig/databese.phpファイルの修正####テーブルの作成
– マイグレーションファイルの作成
– シーダーファイルの作成
– マイグレートの実行
– テーブルを画面に表示する##MySQLに接続
手元にある「Laravel 入門」ではSQLiteの接続方法を紹介しているが、MySQLを利用したかったので、MySQLの接続方法を確認。###MySQLのインストール
MySQLもHomebrewでインストール。参考にした記事→[「【Laravel】MySQLの接続方法を徹底解説【コピペでOK】」](https
RaspberryPi3 でPHPが使えなくなってしまったのでメモ
なぜかラズベリーパイでPHPが急に使えなくなってしまったのでメモ。
# 症状
PHPで構築したページを開いてもソースコードがテキストになって出てきてしまった。
# 環境
* RaspberryPi3
* Apache
* PHP7# 解決法
ネットで調べたところ同じ症状が出ている人は数人いたが解決法を試してもうまく解決しなかった。
ってことでもし解決しなーいっていう人がいるかもしれないからメモ“`shell
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
sudo a2enmod php7.0
“`
この3つを実行したあとapacheを再起動!
きっとPHPが動くようになってるはず….
# 参考
https://twitter.com/jun50_scratch/status/1116940314231492608
※参考ってよりこれをQiitaに書いただけ(本人了承済み)