PHP関連のことを調べてみた2020年01月02日

PHP関連のことを調べてみた2020年01月02日

【PHP】PHPの型宣言は弱い型付け

#型宣言とは
次の例のように、関数に引数を与えるような場合などに引数の型に**制約**を与えることができます。
正しくない種類の型が渡された場合、`Fatal error`が発生します。

“`php

元記事を表示

Htmlspecialcharsでいたずら(XSS)を防いでみた

#前回のあらすじ
・if文を使ってアンケート内容に不備があったら、注意文を表示させたり進むボタンが出ないようにさせたりしたぞ
#今日やったこと
・$変数=htmlspecialchars(変数);
と入力したら、アンケート内にHTMLタグとか仕込んでみても(これをクロスサイトスクリプティングと言うらしい)文字列として処理されるようになった!
(今回の教科書『いきなりはじめるPHP ワクワク・ドキドキの入門教室』)
#感想
とにかく、入力情報の無毒化はセキュリティ対策で必要な処理なんだなーと思った

#次回の目標
データベースにアンケート情報を保管できるようにしよう!

元記事を表示

アンケートシステムでif文学んだ

#前回のあらすじ
・ローカル鯖構築(XAMPP3.2.4にて)
・前のページからデータを受け取る作業を学んだ
・if文で入力に不備があったらお知らせ文を表示させてみた
#今日やったこと
・if文を利用して、アンケートに空欄があったら進むボタンが表示できない設定にした
・history.backを使って戻るボタンを作成したら、入力した内容を記憶させたまま入力フォームに戻ることができた
(参考教科書『いきなりはじめるPHP ワクワク・ドキドキの入門教室』)
#感想
if文って便利!入力する項目が多くなったら、フラグ制御というものを使うらしいけど・・・後々学べるのかしら

#次回の目標
引き続き、入力するプログラムをしっかり見つつ、理解していこう

元記事を表示

Heroku masterへの道 buildpack

Dockerは、まんまOSそのものから構築できる。
Buidpackは、OSが入った状態の後から構築できる。

ので、Buidpackだとconfigをあれこれして、起動すればkusanagiに近づけるはず。
で、やってみた。
起動の流れとしては、

Procfile -> app_boot.sh -> nginx みたいな感じで、

中身は、

Procfile
web: sh support/app_boot.sh

app_boot.sh
vendor/bin/heroku-php-nginx \
-c support/nginx.conf.php \
-C support/nginx.inc.conf \
-f support/php-fpm.conf \
-F support/php-fpm.inc.conf \
-i support/php.ini \
public.built/

な感じ。このオプションと、コンフィグのどこまで書いて良いの?が公式サイト内には見つからなかった。
で、オフィシャルのBuidpackをガチ読み。あった。

が、下記

元記事を表示

【PHP+SQLite3】恐竜登録ツール2

[前回](https://qiita.com/knowledge87sun/items/67632f27f6a56e301047)の記事の内容を実装してみた。

###共通処理のプログラム

“`php:commom_dino.php
prepare($qry0);
//パラメータをセット
$result3->bindparam(1,$val1);
$result3->bindparam(2,$type1);
$result3->execute();
//検索結果を配列に格納する
$select_data=$result3->fetch();
return $select_data;
}
//クエリ実行して得られる全データ
function get_AllData($db0,$query0)
{
$result_a=$db0->prepare($qu

元記事を表示

Laravel5.8+fullcalendar v4+ajaxでDBと接続しeventを表示・操作

# 前置き

Fullcalendarをlaravelで実装している記事がネット上に少なかったように感じたので紹介します。

フロント側だけでのイベント操作は、ほとんどコード書かなくてもできますが、それだけではページを更新するたびにリセットされてしまいます。したがって今記事では、ajaxでデータを受送信し、DBの値を取得・操作してみます。

具体的には
・DBから値を取得してカレンダーにイベントを表示
・日付をクリックするとイベント追加
・イベントをドラックアンドドロップで日付変更
を実現します。

スクリーンショット 2020-01-01 0.43.04.png
↑完成イメージ↑

# 環境
環境を紹介
## 各バージョン
OS : macOS Catalina 10.15.1
PHP : 7.3.1
mysql

元記事を表示

PHP 配列まとめ

# 目的

– PHPで配列に値を格納して取り出す方法をまとめる

# 書き方の例

– 配列に格納し任意の値を出力する方法を記載する。

“`php

$変数A = array(“値A”, “値B”, “値C”);

//値Aを出力
echo $変数A[0];

//値Bを出力
echo $変数A[1];

//値Cを出力
echo $変数A[2];

//配列の末尾に値Dを追加するしたい時
$変数A[] = “値D”;

//値Aを値Eで上書きたいとき
$変数A[0] = “値E”;
“`

元記事を表示

PHP 暗号化、ハッシュ関数

##ワンタイムパッド
– 平文と乱数でXOR論理演算するだけの暗号。
– 情報理論的安全性を持つ暗号方式である。
– 一度使用した鍵(乱数)は、廃棄するのが原則である。
– OTPの使い回しで解読された事例で、ベノナ文書がある。
– もっとも鍵の配送問題に難があるため、実用的でない。

“`php

元記事を表示

Illuminate \ Http \ Exceptions \ PostTooLargeException No message を改善

laravelを勉強中に画像をアップロードすると以下のエラーMSGが表示され困っていた。

“`
Illuminate \ Http \ Exceptions \ PostTooLargeException
No message
“`
色々調べた結果どうやらphp.iniに記載されているpost_max_sizeを超えてしまったための模様
php.iniでファイルのサイズを設定できるらしいため
まずターミナルでpost_max_sizeを確認してみることに

“`
$ php -a
$ echo ini_get(‘post_max_size’);
8M
“`
8Mがまでしか許可されていなかったためphp.iniを編集しにいく
まずはphp.iniがどこにあるか確認。

“`
$ php –ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
“`

/etcの中にあるphp.iniを $sudo vim php.iniで開き編集

記述を以

元記事を表示

DockerでPHP7.3(モジュール版)環境作ろうとしてハマった記録

※ハマった記録のわりにエラーログとってないので一切エラーログが出てきません:stuck_out_tongue_winking_eye:

# 動かしたい環境

CentOSにApacheいれてPHP7.3をモジュール版で動かしたい。←ここ!
MySQL5.7もいれたい←ここは今回は触れてません

# 事始め

約1年前ぐらいに作ってたdocker-composeをビルドしようとしたらエラー出た(たしか)

で、当時のDockerfile。

“`dockerfile:Dockerfile

FROM centos:latest

MAINTAINER docker-web

# update yum
RUN yum -y update
RUN yum -y install yum-utils
RUN yum clean all

RUN yum -y install epel-release
RUN yum -y groupinstall “Development Tools”
RUN yum -y install wget git vim zsh curl

# install r

元記事を表示

Docker(Alpine) + Laravel 環境を PHP7.4 にアップデートする際に oniguruma パッケージのビルドエラー

PHP7.4にアップデートしようとしたらDockerのビルド中にエラーが発生しました。

## 環境

– Alpine 3.11
– PHP 7.4

## ビルドエラー

“`
checking for oniguruma… no
configure: error: Package requirements (oniguruma) were not met:

Package ‘oniguruma’, required by ‘virtual:world’, not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man

元記事を表示

WindowsのWSLにLAMP環境をインストールしてLaravelを動かした時のメモ

# LAMP環境とは
Linux + Mysql + Apache + PHP の、webの一般的な構成。今回はLinux以外をインストールした。

macはこちら
[Macに\(L\)AMP環境を構築してlaravelを動かした時のメモ \- Qiita](https://qiita.com/ebiyuu1121/items/daf1073a7aeebc480534)

# 参考
https://qiita.com/mollinaca/items/60c54b7767a49c1e3e51

Windows10 WSLのUbuntuにLAMP環境を作ってWordPressをインストールする(前編)


https://qiita.com/diconran/items/1eca0e0792f4ce1930c5

# PHPのインストール

“`sh
$ sudo apt install php
“`

ここで、aptが404エラーを起こしていた。サーバー情報が古かったようで、

“`sh
$ sudo apt update
$ sudo apt upgrade
“`

を実行して再試行したらインストールできた。

#

元記事を表示

【MAMP】MAMP環境構築する方法

# ①MAMPのダウンロード
MAMPのホームページにアクセスし、MAMPをダウンロード
[MAMP](https://www.mamp.info/en/downloads/)

# ②MAMPアプリを開く
Finderからアプリケーション→MAMP→MAMP.appを起動

# ③サーバを起動
「Start Servers」ボタンを押下

# ④プロジェクトのディレクトリ作成
アプリケーション→MAMP→htdocs配下に対象ディレクトリ作成

“`
$ cd /Applications/MAMP/htdocs
“`
“`
$ mkdir php
“`

# ⑤PHPファイル作成
③で作成したディレクトリ配下にphpファイルを作成

“`
$ cd /Applications/MAMP/htdocs/php
“`
“`
$ touch sample01.php
“`

# ⑥PHPファイル編集

作成したPHPファイルにソースコードを書く

# ⑦Webブラウザからアクセス
http://localhost:8888/対象ディレクトリ/対象ファイル にアクセス

元記事を表示

はじめてのウェブサイト運用備忘録 第三弾

#PHPとDB接続について
今回は、ロリポップサーバー上でPHPとDB(データベース)を使用できるように設定していきたいと思います。

#PHPを設定する
今回はモジュール版を使用するつもりなので、特に設定することはありませんでした。
バージョンを確認するくらいです(今回は7.3を使用します)。
もし、CGI版を使用する方は、ロリポップが用意している参考サイトを元に設定してください。

参考URL:https://lolipop.jp/manual/user/php-setting/

#DBを設定する
今回肝になるのはこちらです。
今回作るサイトではPHPを使用した検索機能をつけるつもりなのですが、DBが無いとデータが保存できません。
というわけで、DB設定の方法を見ていきたいと思います。

##DBを作る
ロリポップ上でかんたんにDBを作成することができます。
やり方を説明していきます。
まず、下の画像の赤枠のボタンで新しいDBを作成しましょう。
![スライス (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

RailsとLaravelのドキュメントリンク集

RailsとLaravel両方触っているのですが、対応をまとめました。
表にするとリンクがうまくいかないページがあり、上がRails、下がLaravelという構成にしました。

言語公式
[ドキュメント](https://www.ruby-lang.org/ja/documentation/)
[PHP: Hypertext Preprocessor](https://www.php.net/)

FW公式
[Ruby on Rails Guides](https://guides.rubyonrails.org/)
[Laravel \- The PHP Framework For Web Artisans](https://laravel.com/)

FW日本語
[Ruby on Rails ガイド:体系的に Rails を学ぼう](https://railsguides.jp/)
[Laravel](https://readouble.com/laravel/)

API
[Ruby on Rails API](https://api.rubyonrails.org/)
[Na

元記事を表示

テスト駆動開発をPHPで写経-第1章

PHPで[テスト駆動開発](https://amzn.to/37nji9B)を写経してみたのでその記録です。
本記事では第1章のみ紹介します。

# 所感

PHPではコンパイルエラーがないため手順が少し違いました。

# 作業記録

作業ディレクトリphpunitをインストール

“`console
composer require –dev phpunit/phpunit
“`

phpunitの実行確認

“`console
$ vendor/bin/phpunit
PHPUnit 7.5.17 by Sebastian Bergmann and contributors.
“`

p4記載のMoneyTestを追加

“`diff
diff –git a/tests/MoneyTest.php b/tests/MoneyTest.php
new file mode 100644
index 0000000..c119b0e
— /dev/null
+++ b/tests/MoneyTest.php
@@ -0,0 +1,13 @@
+

元記事を表示

fopenを勉強しました。

# 概要

以前、既存機能の復活するため、
ログファイルを見ましたが、何かおかしいだったので、
コードを確認しました。

そこで、fopenのmodeがおかしいでした。
なんやら、上書きしている感じだったので、
追記モードでファイル作成ができるようにしました。

今回で、fopenのモードを整理しようと思います。

# fopenとは?

ファイル入出力関数で、
ファイル名(filename)で示されるファイルを、指定モード(mode)でオープンする。
ファイルが正しくオープンされると、ファイルポインタが返される。
エラーの時は NULLが返される。

“`
FILE *fopen(const char *filename, const char *mode);
“`

# fopenのモード

– r :読み込みのみ
– r+ :読み込み/書き出し用
– w :書き出しのみ。もし、同じファイルが存在している場合、そのファイルの内容をすべて消した後、内容を追記。ファイルが存在していない場合、ファイルを作成します。
– w+ :読み込み/書き出し用。もし、同じファイルが存在している

元記事を表示

Laravelで簡単なメモアプリを作る(1)~Viewの作成と表示~

# はじめに
[Laravel](http://laravel.jp/)とは、Webに特化したPHPフレームワーク。セキュリティ対策(CSRF対策など)もこれでできます。MVCアーキテクチャを採用しています。今回から、Laravelで簡単なメモアプリを作っていきます。今回は、Viewの作成と表示までできればいいかなって思っています。

# 今回の目標物
スクリーンショット 2019-12-31 11.25.14.png

スクリーンショット 2019-12-31 11.25.26.pngPHP 変数に格納された文字列の連結

# 目的

– PHPで変数に格納された文字列の連結を行う方法をまとめる

# 書き方の例

– 変数Aと変数Bにそれぞれ格納された文字列を連結して表示する方法を下記に記載する。

“`php
echo $変数A.$変数B;
“`

# より具体的な書き方の例

– 変数`name`と変数`honorific`に格納された内容を連結して表示する方法を下記に記載する。

“`php
//変数に格納
$name = “みりを”;
$honorific = “君”;

//変数を連結して表示
echo $name.$honorific;
“`

元記事を表示

Laravelのオートローダの仕組みが知りたい!

#はじめに
Laravelを勉強していくうちに、Laravelのオートローダの仕組みが知りたくなり、Laravelのオートローダの仕組みについて調べてみました。
調べて分かったことをここにあげるので、興味のある方は是非見てください。
(個人的な都合により、Laravel5.5を対象にオートローダの仕組みを調べました。)
#大雑把な仕組み
**オートローダに関係するファイル**

– publicディレクトリ
– index.php
– vendorディレクトリ
– autoload.php
– composerディレクトリ
– autoload_classmap.php
– autoload_namespaces.php
– autoload_psr4.php
– autoload_real.php
– autoload_static.php
– ClassLoader.php

**それぞれの役割**
1. オートローダの読み込み(index.php)
2. オート

元記事を表示

OTHERカテゴリの最新記事