php関連

Chrome Loggerは、echoなどの後で使うとエラーになる?(PHPで使う場合)

どうも、最近、Chrome Loggerという存在を知りました、時代の波に取り残されまくってます。ハマってる音楽は、Of Monsters And Men です、最近は聞けてないけど。 Chrome Loggerとは 何でも、Chromeブラウザの拡張機能らしいです。オンリーChrome?Yes, We C…

EclipseでPHP開発の環境構築

IDE(統合開発環境)にEclipseを使ってPHPの開発環境を構築してみたので、メモしてみます。環境はwindows7(64bit)です。 Eclipse 4.5 MarsのPleiades All in Oneセットをインストール http://mergedoc.osdn.jp/ に行って『Eclipse 4.5 Mars Pleiades All i…

MySQLデータベースのテーブルがインポートでっきない『Unknown character set: ‘utf8mb4’』エラーの対処方法

ローカルな環境のXAMPPのMySQLのデータベースのテーブルをエクスポートして、XdomainのPHP・MySQLサーバーのデータベースに『shopping_db』というデータベースを作成し、ローカル環境のテーブルをインポートした際に起きたエラーです。 ローカル環境のMySQL…

MySQLでdecimal型を使う時に

decimal型とは 「パック無し浮動小数点」は、各桁の数値を1文字ずつ文字列として格納します。 浮動小数点(FLOAT型・DOUBLE型)では演算に誤差が生じる場合があるため、金額など正確な演算を行うには、パック無し浮動小数点(DECIMAL型・NUMERIC型)を使用し…

Webアプリケーションの脆弱性と対策

Webアプリケーションの脆弱性いろいろ スクリプト挿入攻撃(Script Insertion) クロスサイト スクリプティング(Cross Site Scripting / XXS) クロスサイト リクエスト フォージェリ(Cross Site Request Forgeries / CSRF) SQLインジェクション(SQL Inj…

PHP5.3で導入された 名前空間

名前空間とは 2009年にPHP5.3.0のバージョンが出たことで、PHPに『名前空間』というものが導入されました。 『名前空間』を使うと、クラスや関数に名前をつける際に、他の人が作ったライブラリで使われてるクラスや関数の名前と一緒になってしまう(業界用語…

$dbh -> query( 'SET NAMES utf8' );の引数の意味とか

PHPのPDOクラスでのデータベース接続で、 query('SET NAMES utf8'); みたいな記述が出てきて、『query('SET NAMES utf8');』の引数の意味を調べてみました。 結論として、『'SET NAMES utf8'』はSQLステートメント(SQL文)で、 『'SELECT * FROM mst_staff…

PHP5.1.0から導入されたPHP Data Objects (PDO) 拡張モジュールとPDOクラス(データベース接続)

PHP Data Objects (PDO) 拡張モジュール 導入 ¶ PHP Data Objects (PDO) 拡張モジュールは、 PHP の中からデータベースにアクセスするための軽量で高性能な インターフェイスを定義します。 PDO インターフェイスを実装する各データベースドライバは、 正規…

他のオブジェクト指向言語とは異なるPHPのオーバーロード

オーバーロード プログラミング言語において関数や演算子やメソッドの同一名や同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。 PHPには「オーバーロード」という機能が存在するが、…

PHP7からサポートされる無名クラス

PHP7から使えるという無名クラス、なんとクラスの定義をすることなくインスタンス(オブジェクト)を生成できる機能のようです。 new classで インスタンスを生成します。 ⇩ 無名クラスについては下記サイトへ ・PHP 7 の無名クラスから考えるクラスの在り方…

PHP5.3から追加された遅延静的束縛(Late Static Bindings)

静的な呼び出しで起こる問題 「遅延静的束縛は、継承されたクラスのメソッドなどを親クラスで解決するための機能です。」 と『パーフェクトPHP』という本には書いてありました。 ⇩ 遅延静的束縛については下記サイトへ ・[メモ]PHP5.3 遅延静的束縛 - Qiita …

PHP5.4以降で導入されたトレイト(trait)というしくみ

PHP5.4以降で『トレイト(trait)』というしくみが導入されたようです。 抽象クラス、インターフェイスときて、トレイトです。 トレイトは、多重継承のできないPHPで、継承することなくクラスにメンバ(メソッドやプロパティ)を追加できるしくみのようです…

インターフェイス(interface)と抽象(abstract)クラス

詳しく分かりやすい説明をしてくれてるサイトが多いので、もはや、下記サイトをご覧になっていただければ済む話ですが、一応、自分なりにインターフェイス(interface)と抽象(abstract)クラスの違いを調べました。(ほぼ、他サイト様の流用です。) ⇩ イ…

PHP5で導入された、抽象(abstract)クラスとそのメソッド

インターフェイス(interface)と似て非なるもの、それが抽象(abstract)クラスらしいです。 PHPマニュアル(PHP: クラスの抽象化 - Manual )の説明によると、 クラスの抽象化 PHP 5 では、抽象クラスとメソッドが導入されました。abstractとして定義され…

PHP5で出てきたらしいインターフェイス(interface)について

前に、タイプヒンティング(型宣言)について調べたら、インターフェイスと組み合わせると効果的となっていたんですが、PHPマニュアルによると、 『 インターフェイスとタイプヒンティングを組み合わせると、 特定のオブジェクトに特定のメソッドをうまく持…

PHP5.4から実装された『タイプヒンティング(型宣言)』とは?

タイプヒンティング(Type Hinting) パラメータ(引数)の型を指定できます。 指定した型のことをタイプヒント(型ヒント)といい、タイプヒントに一致しない型のパラメータ(引数)を受け付けません。(型が違うとエラー。) PHP5から導入されました。 PHP…

public function baz(Test $other)の引数の意味が分からないので調べてみました

PHPのアクセス権について、PHPマニュアルを見ていたら、『public function baz(Test $other)』なるメソッドがクラスの中で定義されていたのですが、引数の中身の意味が分からなく、説明も一切なかったので調べてみました。 ・PHP: アクセス権 - Manual その…

静的(スタティック)メンバと「シングルトン」と呼ばれる実装方法

スタティックとは? ⇒ static キーワード(クラスとオブジェクト)- PHPマニュアル オブジェクト指向は「クラスを作って、それをオブジェクトとして呼び出す」ということです。 一般的に、new演算子でクラスのインスタンス(オブジェクト)を作ってクラスの…

PHPで擬似変数$thisって何のためにあるのか?

PHPで擬似変数$thisって、何のためにあるの?と思ったので調べてみました。 例:擬似変数$this todays_date = date("Y-m-d"); $this->name = $GLOBALS['firstname']; /* 等など. . . */ …

PHP5.4から実装されたClosure::bind( )でprivateなプロパティ(メンバ変数)に外部からアクセス

PHPでは、PHP5ぐらいから、『オブジェクト指向プログラミング言語(OOP)』、俗に言う『オブジェクト指向』の機能が充実してきました。 ・PHP: Hypertext Preprocessor ・オブジェクト指向プログラミング OOP(object-oriented programming) 相互にメッセージ…

キャッシュ(Cache)とクッキー(Cookie)とセッション(Session)など ~愛しさと切なさと心強さと~とは全く関係ない

Webブラウザ(パソコン)に保存されるもの キャッシュ( Cache )⇒ 何度も見るWebページがある場合に、2回目以降の閲覧時の表示スピードを上げるため、ページ内の画像やアイコンといったデータをパソコン内に保存する仕組み(またはその保存されたデータ自体…

$ans |= (1 << $qno); がどういう意味か分からないので調べたら、PHP ビット演算子によるフラグ処理のようでした

ビット演算子のPHPマニュアルによる説明では、 ビット演算子 ビット演算子は、整数値の特定のビットの評価や操作を行います。 ビット演算子 例名前結果 $a & $b ビット積 $a および $b の両方にセットされているビットがセットされます $a | $b ビット和 $a…

spl_autoload_register( )の引数のarray( )の意味が分からなかったので調べてみました

『パーフェクトPHP』って本で『spl_autoload_register( array( $this, 'loadClass' ))』って記述が『ClassLoader.php』ファイルの中で出てきました。 が、引数の配列(『array( $this, 'loadClass' )』)の意味がよく分からなかったので調べてみました。 cor…

『ENGINE=InnoDB DEFAULT CHARSET=utf8 ;』って何なのか?と思ったので

データベースによるデータ管理 | 東京大学グローバル消費インテリジェンス寄附講座 でMySQLのsql文の中に『ENGINE=InnoDB DEFAULT CHARSET=utf8 ;』って出てきたので気になって調べてみました。 InnoDB(イノデービー)はMySQLのためのデータベースエンジンで…

PHP CakePHP(バージョン2.6.4)というフレームワーク

フレームワークがMVCの原則に従うことから、アプリケーションのほとんどの側面に於いてカスタマイズ・拡張が簡単にできるようになります。このフレームワークはファイル名からデータベースのテーブル名まで、基礎的な組織構造も提供し、アプリケーション全体…

PHP PDOオブジェクトとJavaScriptのajaxで掲示板風アプリ

XAMPPの中のMySQLデータベースサーバ(phpMyAdmin)にデータベース名『rensyu0508』のデータベースを作り、テーブル名『hitokoto』のテーブルを作る。 テーブル『hitokoto』 dispの値が『0』の時はブラウザに表示されないようにし、『1』の時はブラウザに表…

PHP データベースと連携

XAMPP起動(『Apache』『MySQL』をStartさせる。) データベース『rensyu0508』を作りテーブル『hitokoto』を作成。 テーブル『hitokoto』 名前(カラム名)データ型照合順序インデックスA_I id int PRIMARY auto_increment name varchar(20) utf8-general_c…

PHP 計算機アプリなど

計算機、例:1 keisan.php

PHPの考え方

DRYとは? Don't Repeat Yourself ⇒ 特にコンピューティングの領域で、重複を防ぐ考え方である。この哲学は、情報の重複は変更の困難さを増大し透明性を減少させ、不一致を生じる可能性につながるため、重複するべきでないことを強調する。 ・同じ処理が二度…

ECサイト カートに入れるとこまで(ただし、セキュリティー対策は全くできてません、あとデザインも)

Xamppを起動して、『Apache』,『MySQL』をstartし『MySQL』のAdminをクリック。 データベース『suzuEC』を作成し、テーブルを4つ作ります。テーブルを作ったら『挿入』を使ってテーブルに情報を入力していきましょう。『SQL』でinsert文でも情報は入力できま…

PHP オブジェクト指向、PDOとか

PDOなどに関して下記サイトがむっちゃ分かりやすい説明をしてくれているんで、早速飛んでみてください。⇩ PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) オブジェクト指向とは? オブジェクト指向とは、プログラムの構造をオブジェ…

PHPでフォーム( セキュリティー関係はまだ手付かずです。 )

変数のスコープ(グローバル、ローカル、スーパーグローバル) グローバル変数 ローカル変数 それぞれの変数がどこで使えるか (※スーパーグローバル変数はどこでも使えるようなので今回は割愛させていただきます)。 <html lang="ja"><head> <meta charset="UTF-8"> <title>PHPのエラーに関して</title></head><body><h1>スコープの確認</h1>の中で</body></html>…

PHP ( switch文、配列 、連想配列など )

Apacheは2種類存在する。 Apache ⇒ Webサーバー Apache ⇒ ライセンス switch文 switch( 変数 ){case 値: 実行する処理break;( 処理を終える場合 )case 値: 実行する処理break;( 処理を終える場合 )default: 実行する処理break;( 処理を終える場合 )} 変数と…

PHPの書き方 いろいろ

突然ですが、 Adobe BracketsはUTF-8しか対応してないそうです。 Shift-JISや、かつてのCMSで使われていたEUCなど、UTF-8以外でエンコードされたマルチバイトのHTMLを読み込ませようとすると、エラーを表示して処理が中断してしまうそうです。(『YAHOO!知恵…

PHPの授業初め

xamppを起動させ、Apache,MySQLのstartボタンをクリック。 Apache,MySQLの周りが緑色になればOKです。 ブラウザ( 今回はGoogle Chrome )の検索バーにlocalhost/と入力する。 下の画面に飛んだらOKです。 C:¥xampp¥htdocsが、ブラウザ上のhttp://localhost/…

ajaxによるTODOアプリ作成

ajaxとは? Ajaxとは,Asynchronous Javascript+XMLの略称です。 Javascriptを使い,Webページとは非同期(Asynchronous)にXML形式(もしくはテキスト形式)のデータ通信を行う手法を指します。 Ajaxを使うと特別なプラグインなどを必要とせず,Webページの…