- 1. お問い合わせフォーム、jsバリデーション【改】
- 2. 学習を応用し自分で考えたプログラム(随時更新予定)
- 3. [PHP]クラスメソッド
- 4. MAMPのPHPのexec()からpython3を簡単実行。
- 5. DockerでPHP開発をしている際に、vscodeでの実装変更が反映されない。
- 6. ログイン機能例
- 7. curlの”-u”オプションで引き渡される認証情報をヘッダーに直接設定したい
- 8. VScodeでPHPを書こうとすると右下に表示されるエラーを解消したい
- 9. Webサイトに来る実際の攻撃(不審なアクセス)を公開してみる
- 10. MAMPでphpのエラーをターミナルから問題を探す方法
- 11. 【PHP】コメント機能実装
- 12. [PHP] エラー解決 php artisan migrate
- 13. 【Mac】任意のPHPバージョンをphpbrewで取得してみた
- 14. [PHP]フォームのデータを受け取る
- 15. Codeignater3を使ったMPAサイトからNuxt.js+Vueへのサイトリニューアル
- 16. CentOS 8にPHP 8.0, PHP-FPM 8.0をインストール(Remi’s RPM repository)
- 17. CentOS 7にPHP-FPM 8.0をインストール(Remi’s RPM repository)
- 18. CentOS 7にPHP 8.0をインストール(Remi’s RPM repository)
- 19. PHPで階乗計算
- 20. PHP8(PHP-FPM)のメモ
お問い合わせフォーム、jsバリデーション【改】
“`javascript:contact.js
window.addEventListener(‘DOMContentLoaded’, () => {
// 「送信」ボタンの要素を取得
const submit = document.querySelector(‘#contact-submit’);// エラーメッセージと赤枠の削除
function reset(input_infomation, error_message){
const input_info = document.querySelector(input_infomation);
const err_message = document.querySelector(error_message);
err_message.textContent =”;
input_info.classList.remove(‘input-invalid’);
};// 「お名前」入力欄の空欄チェック関数
学習を応用し自分で考えたプログラム(随時更新予定)
####今回は、お客様アンケート(仮)を作成 2020/11/27
“`
1) {
echo ‘ご利用ありがとうございました’ . PHP_EOL;
} else {
echo ‘品質向上の為何かアドバイスをいただけないでしょうか’ . PHP_EOL;
}
$Impressions = trim(fgets(STDIN));
//aが1より大きければご利用ありがとうございました!aが1より小さければアドバイスのお願い
//標準入力と、半角スペース削除の処理、if文のみを使用した処理です。
“`![first_production.gif](https://qiita-image-store.s3.ap-northe
[PHP]クラスメソッド
#PHPクラスメソッド
##コンストラクタを活用
$countの初期値を0として、コンストラクタ内でクラスプロパティ$countの値に1を足すことで、生成されたインスタンスの数(メニュー数)を数えることができる
![1468306056981.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/ffb3bc07-282a-22e3-c67e-2c01adb21c7c.png)
![1467970306991.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/ba168247-322a-cc8e-f27d-f5468cb271a8.png)
#self
クラスの中で使うとそのクラス自身のことを指し示し、「self::$クラスプロパティ名」のように使う
![1467970318544.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
MAMPのPHPのexec()からpython3を簡単実行。
MAMPのpythonはversion2なので、ずっとこの壁にぶつかってたんですが、
“`php
$command = “python test.py”;
exec($command, $output, $return_var);
“`python→python3でできました。意外と簡単でした。
“`php
$command = “python3 test.py”;
exec($command, $output, $return_var);
“`
DockerでPHP開発をしている際に、vscodeでの実装変更が反映されない。
#環境
macOS
DockerでPHPを使用
#解決方法
順序1“`
Docker コンテナの停止・削除
$docker-compose down
“`
順序2“`
Docker コンテナの起動
$docker-compose up -d
“`
これだけでした汗#発生状況&原因
#####発生状況
vscodeでいつものようにPHPの勉強をしていた際に、vscodeで新たな実装変更を行いました。ターミナルで動作確認すると実装変更が反映されない状況になってしまいました。このような状況に、、、汗
“`
ss@saaaMPro src % docker-compose exec app php book_log.php
Could not open input file: book_log.php
“`なので原因を探るため
ターミナルでのディレクトリの位置が間違っていないか?
ファイル名が間違っていないか?
エラー内容が、入力ファイルが開けないと言っている、、、、なぜ、、(泣)#####原因
ここでは、server-sideディレクトリのpart2の
ログイン機能例
“`
setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$sql = ‘SELECT name FROM mst_staff WHERE code=? AND password=?’;
$stmt = $dbh->prepare($sql);
$data[]=$staff_code;
$data[]=$staff_pass;
$stmt->execute($data);$dbh =null;
$rec = $stm
curlの”-u”オプションで引き渡される認証情報をヘッダーに直接設定したい
先日プロダクトのアップデートを管理しているJenkinsサーバに対して新たにAPIを送るよう実装する機会があり、その際にインフラチームから共有いただいたAPIの呼び出し方法が下記のようなものでした。
“`
curl -k -X GET “https://hogehoge.jp/job
?token=${api_job_token}” -u ${api_user_name}:${api_user_token}
“`#### “-u”オプションって?
> Specify the user name and password to use for server authentication. Overrides -n, –netrc and –netrc-optional.
If you simply specify the user name, curl will prompt for a password.参照:https://curl.se/docs/manpage.html#-u
curl先のサーバーで行われる認証に対し、ユーザ名と
VScodeでPHPを書こうとすると右下に表示されるエラーを解消したい
## 環境
* OS
* Windous10 Home x64* VScode
* Version 1.51.1## 表示されたエラーメッセージ
【 phpcs: Request workspace/configuration failed with message: Unable to locate phpcs. Please add phpcs to your global path or use composer dependency manager to install it in your project locally. 】## ざっくりした意味
「phpcs」を見つけることができなくて、ワークスペースの構成ができていないよ!
phpcsを自力でインストールするか、「Composer」を利用してインストールしてください。## 解決するためにやったこと
1. Composer をインストールする
[➤Composerインストール先](https://getcomposer.org/download/)2. コマンドプロンプトを起動
Webサイトに来る実際の攻撃(不審なアクセス)を公開してみる
グローバルIPアドレスを持つWebサーバーで自分のサイトを運営していますが、脆弱性を狙った不審なアクセスが毎日来ます。一度内容まとめたいと考えていたのですが、同様のことをされている方の記事を見つけ、自分もしてみました。
– [Webサイトに来た攻撃をまとめてみた](https://qiita.com/hot_study_man/items/b12340f932574c9f309d)
実際に来た不正アクセス試行は種類を挙げればきりがありませんが、件数が多いものを紹介したいと思います。有効な対策だと思われることについても言及しています。
ちなみに解析の方法は、ログを一旦DBに入れてSQLで集約しています。
インターネットにWebサーバーを公開すると、こんな攻撃が来る…という参考になればと思います。と考えると、はてなブログやレンタルサーバーはプロバイダーが責任を持ってくれるから安心ではありますね。
##環境
– VPS (Virtual Private Server: 仮想環境のLinuxサーバー)
– WordPress一応、WAF (Web Application Fi
MAMPでphpのエラーをターミナルから問題を探す方法
## MAMPでphpエラーが出た際にターミナルでエラーを探す方法
みなさんこんにちは。
今回はMAMP環境でエラーが出た時にエラーがどこから出てきているのかを確かめる方法を紹介します。また、間違えや指摘等ございましたらコメントよろしくお願い致します。
### 環境
今回僕のパソコンはmacなのでwindowsの方には対応しておりません。### エラーの確認方法1
初心者の頃(現在も初心者)にエラーが出たらどこを見て、何が問題なのかを見つけることさえできていませんでした。まず、エラーが出た際にはブラウザのディベロッパーツールを利用して確認してみましょう。プログラムを反映させたいページ(現在エラーが出ていて動いていないページ)で右クリック→検証→consoleを確認してみましょう。
こちらにエラーが出てきます。これは大体利用されていると思うので次の方法も紹介します。
### エラーの確認方法2
ターミナルから確認する方法です。ターミナルは真っ黒の画面になっていて、cuiなので初めは操作やりにくいけど意外と慣れたら使いやすいかもです。方法としてはま
【PHP】コメント機能実装
学習内容を備忘録としてまとめます。
コメント機能を実装しましたので、作成方法を記載します。
![tatteimasu.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/76d77867-760d-67d4-fe80-85d29327c3c4.gif)
投稿に対してコメントを行えるようになっています。※動作画面に出てきているモーダル画面については下記をご参照ください。
[【JavaScript】モーダル画面実装](https://qiita.com/ryouya3948/items/bd1bccef883148f1b281)
#実装方法
実装方法について記載していきます。
##テーブル構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/e4b6a6ea-054e-c2ce-0533-ccd8abc8cb9c.png)まずはコメントテーブルを作成していきます。
それぞれのカラム
[PHP] エラー解決 php artisan migrate
Udemyにて学習した際にエラーにハマりましたのでその解決方法を投稿したいと思います。
今回のエラー文は下記になります。
`SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = laravel_task and table_name = migrations and table_type = ‘BASE TABLE’)`
![2020-11-25_12-34-39-47c2c1db8e1dbed6e5db458f9a1dcb3e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698439/eaec097e-c858-7b68-b688-b5f0d1a9284b.png)#エラー分の解説
データ
【Mac】任意のPHPバージョンをphpbrewで取得してみた
# はじめに
MacはデフォでPHPがインストールされているけど、開発する際に指定したPHPバージョンを使いたい!
しかし、、WindowsのようにPHP公式サイトでダウンロードしPATHを通すことが難しい。。
Homebrewだとバージョンの[x.x.★]の★部分まで選べない。。phpbrewならバージョンの指定ができ、複数のバージョンを切り替えることができる為、
phpbrewを使って好きなバージョンを取得してみました。## 環境
– macOS 10.15.7
– Homebrew 2.5.11
– phpbrew 1.26.0## 事前準備
Homebrewというツールを使用するので事前にインストールしておきます。
インストール方法は以下サイトを参考にしました。[Mac Homebrewインストール手順](https://awesome-linus.com/2019/08/17/mac-homebrew-install/)
## phpbrew本体のインストール
[公式ドキュメント](https://github.com/phpbrew/phpbre
[PHP]フォームのデータを受け取る
#PHPでフォームのデータを受け取る
“`java:PHP
■ 内容“`
#$_POST[‘name’]
フォームで送信した値を受け取るには「$_POST」を使用する。
「$_POST」は連想配列になっていて[ ]の中に、と
Codeignater3を使ったMPAサイトからNuxt.js+Vueへのサイトリニューアル
# はじめに
Vue.js(CDN版)を採用したPHP動的サイトから、Nuxt.js+Vueを使ったいわゆるSPAサイトへのリニューアルを敢行した。## 経緯と歴史
最初は、フレームワークを使わないサイトとして設計したが、のちにSmatryを採用し、Viewとロジックを分離した第二世代をリリース。その後、Codeignater3を採用し、本格的にPHPフレームワークを採用した第三世代と進化していったが、リプレースの切っ掛けはいずれも機能拡張を繰り返し、いずれも **現状に限界を感じよりモダンな技術を採用**していった経緯がある 。## 今回は何が限界だったのか
### Vueライブラリの複雑化
当初はJqueryを採用していたが、Vue.jsの導入に合わせライブラリが複雑化し、バージョンアップへの不安と煩雑さがつきまとうことになった。### 痒いところに手が届かないフレームワークとViewのカスタマイズの煩雑化
UIフレームワークとして採用していたMaterializeはVue前提ではないため、開発を進めるにつれCSSをカスタマイズを行う面が多くなり、フレームワー
CentOS 8にPHP 8.0, PHP-FPM 8.0をインストール(Remi’s RPM repository)
# はじめに
Remi’s RPM repositoryを利用してCentOS8にPHP8.0をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)## サポート
本手法で導入した場合、[PHP: Supported Versions] (https://www.php.net/supported-versions.php)/[PHP: Unsupported Branches](https://www.php.net/eol.php)より、2023-11-26がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。## note
– 他のPHPモジュールを入れていた場合、下記コマンドでモジュールのリセットが必要
“`shell-session
# dnf m
CentOS 7にPHP-FPM 8.0をインストール(Remi’s RPM repository)
# はじめに
Remi’s RPM repositoryを利用してCentOS7にPHP-FPM8.0をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)## サポート
本手法で導入した場合、[PHP: Supported Versions] (https://www.php.net/supported-versions.php)/[PHP: Unsupported Branches](https://www.php.net/eol.php)より、2023-11-26がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。## note
– インストール後の更新は`yum –enablerepo=remi-php80 update`
## LOG
###
CentOS 7にPHP 8.0をインストール(Remi’s RPM repository)
# はじめに
Remi’s RPM repositoryを利用してCentOS7にPHP8.0をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)## サポート
本手法で導入した場合、[PHP: Supported Versions] (https://www.php.net/supported-versions.php)/[PHP: Unsupported Branches](https://www.php.net/eol.php)より、2023-11-26がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。## note
– インストール後の更新は `yum –enablerepo=remi-php80 update`
## LOG
### インス
PHPで階乗計算
まずは普通に再帰関数で。
~~~php:test1.php
0) return $n * factorial($n – 1);
return 1;
}for($n = 1; $n <= 180; ++$n) { echo "$n! = ", factorial($n), "\n"; } ~~~ 結果 ~~~txt 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 11! = 39916800 12! = 479001600 13! = 6227020800 14! = 87178291200 15! = 1307674368000 16! = 20922789888000 17! = 355687428096000 18! = 6402373705728000 19! = 121645100408832000 20! = 243290200
PHP8(PHP-FPM)のメモ
# 環境
* CentOS7
(元々色々なバージョンを動かすのに使ってた)epel, remi のリポジトリの追加は済んでる環境(下記)
“`bash
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
“`# PHP8と諸々インストール
“`bash
yum -y install php80 php80-php php80-php-mbstring php80-php-pdo php80-php-mysqlnd php80-php-gd php80-php-xml php80-php-fpm
“`# 設定
“`bash
cd /etc/opt/remi/php80/php-fpm.d/
cp -a www.conf www.conf-original
vi www.conf
“`“`bash:www.conf
listen = 127.0.0.1:9080
pm = ondemand
“`
いろんなバ