サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
www.php-labo.net
はじめてのPHPプログラム 開発環境の準備ができたら、実際にPHPプログラムを作成して動作させてみましょう。 まずは、PHPを実行できるフォルダ内に sample.php という名前でファイルを作成します。XAMPPを C:\ にインストールした場合、C:\xampp\htdocs 内にファイルを作成します。この htdocs フォルダ内に配置したファイルは、ブラウザからアクセスできるようになります。 ファイルを作成できたらテキストエディタで開き、以下の内容を記述します。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>サンプル</title> </head> <body> <p>今日の日付は<?php echo date("Y/m/d"); ?>です。</
プログラムの概要 「MySQLの基本」の内容を踏まえて、一言メッセージ投稿ツールを作成してみます。訪問者が名前とメッセージを投稿すると一覧に表示される…という、掲示板のごく簡単な物です。 テーブルの作成 まずは一言メッセージのデータ登録用にテーブルを作成します。今回は以下のようなテーブルを作成するものとします。 CREATE TABLE messages( no INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), message TEXT, created DATETIME ); no には登録番号を、name には投稿者の名前を、message には投稿メッセージを、created には投稿日時をそれぞれ格納するものとします。AUTO_INCREMENT PRIMARY KEY は、指定しておくと自動的に連番を作成してくれるようになります
プログラムの概要 rand 関数を使用すれば、一定範囲の数値をランダムに取得することができます。 これを配列と組み合わせれば、アクセスするたびに表示内容が変わるページを作成することができます。 アクセスするたびに表示内容が変わるページ アクセスするたびに表示内容が変わるページは、以下のようになります。今回は「大吉」「中吉」「小吉」「吉」「末吉」「凶」「大凶」のいずれかがランダムに表示されるようにしています。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ランダムメッセージ</title> </head> <body> <p>今日のあなたの運勢は「<?php $fortune = array( "大吉", "中吉", "小吉", "吉", "末吉", "凶"
また、以下のように番号を指定して値を代入する事もできます。 <?php $fruit[0] = "リンゴ"; $fruit[2] = "ミカン"; $fruit[1] = "ブドウ"; echo $fruit[0]; echo $fruit[1]; echo $fruit[2]; ?> これを実行すると、ブラウザに リンゴブドウミカン と表示されます。番号を指定したことにより、表示の順番が変わっています。 array関数 array 関数を使用すれば、配列に一度に複数の内容をセットする事ができます。 <?php $fruit = array("リンゴ", "ミカン", "ブドウ"); echo $fruit[0]; echo $fruit[1]; echo $fruit[2]; ?> array 関数を使用した場合も、配列の番号は 0 から順に設定されます。これを実行すると、ブラウザに リ
プログラムの概要 「クラスとライブラリの基本」の内容を踏まえて、ニュース投稿ツールを作成してみます。管理者がタイトルと本文を投稿すると一覧に表示される…という、ブログのごく簡単な物です。 記事の表示・登録・編集・削除とひととおりのことができるため、ファイル数が多く難しく感じるかもしれません。ですが、各ファイルとも処理の流れは似た様なものになっています。頑張って読み進めていってください。 テーブルの作成 まずはニュースデータ登録用にテーブルを作成します。今回は以下のようなテーブルを作成するものとします。 CREATE TABLE articles( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), detail TEXT, created DATETIME ); id には登録番号を、title にはタイトルを、detail には本
XAMPPのインストール(Mac版) Windows版 公式サイトからダウンロードしたファイルをダブルクリックで展開すると、以下の画面が表示されます。XAMPPフォルダをApplicationsフォルダにドラッグ&ドロップしてください。インストールはこれで完了です。 アプリケーションフォルダにXAMPPが作成されています。 「XAMPP Control」を実行するとXAMPPのコントロールパネルが開きます。ここから各ソフトの起動や停止などを行うことができます。まずは『Apache』と『MySQL』の右側にある『Start』ボタンを押してください。サーバーソフトのApacheとデータベースのMySQLを起動させます。 Macのパスワードを求められることがありますが、入力して『OK』ボタンを押します。 『Apache』と『MySQL』の左側にある赤い丸が緑になれば成功です。これでApacheと
画像を漫画形式で表示するツール。アルファ版なので、バージョンアップのたびに仕様が大きく変わる可能性があります。 サンプル ダウンロード 設置方法 圧縮ファイルを解凍すると comic フォルダが作成されるので、まるごとサーバーにアップロードします。 ブラウザから comic/?data=sample1 のようにアクセスすると、漫画が表示されます。 漫画の追加 漫画の追加は、comic/data/ 内にフォルダごと画像をアップロードします。(FTPソフトが必要。) 例えば comic/data/xxx/ 内の画像は comic/?data=xxx で表示できます。 もともと付属している comic/data/sample1/ と comic/data/sample1/ はサンプルなので、削除しても大丈夫です。 注意点 画像のファイル名は、0 からの連番にしてください。 画像の種類は、Gif・
セッションについて セッション管理の機能を使用すれば、Cookieよりも手軽に大量のデータを扱うことができます。 セッションはCookieとは異なり、データはサーバー側に保存されます。そして訪問者を区別するためのIDのみCookieに保存されます。次回のアクセスではCookieに保存されたIDををもとに訪問者を識別し、サーバー側に保存したデータを読み出します。 以下で、「はじめての訪問と2回目以降の訪問で、表示内容が変化する」仕組みを例に、PHPでセッションを扱う具体的な流れを紹介します。 はじめてのアクセス はじめてページにアクセスしたときはCookieにデータがない(訪問者のコンピュータにデータが書き込まれていない)、つまり訪問者を区別するためのIDがないので、PHPが新規にIDを発行します。(以下の図では、「2713」というIDが発行されたものとしています。)そしてそのIDをもとにサ
関数について 関数とは、何らかの処理を行って、場合によってはその結果を返す処理のまとまりです。PHPには沢山の関数が実装されていますが、これを自分で作ることができます。 プログラム中で何度も実行される処理をまとめておき、必要に応じて呼び出せば、プログラムをすっきりと書くことができます。 関数は function を使用して、以下の書式で作成することができます。 <?php function 関数名() { 実装したい処理 } ?> 具体的には以下のようになります。 <?php function message() { echo "メッセージを表示します。"; } echo "関数を呼び出します。"; message(); echo "関数が呼び出されました。"; ?> このようにすると message という名前の関数が作成されたことになり、message() と書くことで呼び出すことがで
データ登録画面の作成 前回紹介したように、mysql_query 関数でレコードを取得するコマンドを指定すれば、登録データを表示することができます。同様に、レコードを登録するコマンドを指定すれば、データを登録することもできます。 まずは、データを入力するためのページをHTMLで作成します。今回は以下のようなHTMLページを作成します。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>アドレス登録</title> </head> <body> <form action="regist.php" method="post"> 登録番号:<br /> <input type="text" name="no" size="10" value="" /><br />
エラーの表示について PHPはプログラムにエラーがあった際、画面にエラー内容を表示することができます。表示するエラーの内容は、php.ini で設定することができます。具体的には、514行目にある error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED この部分で設定することができます。この部分を以下のように修正すると、すべてのエラーと警告を表示します。(厳密には、PHP5では「コードの相互運用性や互換性を維持するための提案」が表示される E_STRICT が含まれませんが、PHP6からはこれも含まれるようになります。) error_reporting = E_ALL 以降のサンプルプログラムは、このように設定されているものとして解説しています。 エラーの意味とその対策 エラーの表示について プログラムにエラーがあった際、画面にエラー内容とエ
不正アクセス対策について PHPでプログラムを制作したら、レンタルサーバーなどにアップロードして利用することになります。そして不特定多数の訪問者が、そのプログラムにアクセスすることになります。 つまりWebアプリケーションはその性質上、常に不特定多数からの攻撃にさらされることになります。 PHPは文法が比較的容易に覚えられるので、「動作する」Webアプリケーションを作成するのは難しくはありません。ですが「安全な」Webアプリケーションを作成するのは簡単なことではありません。 Webアプリケーションへの攻撃を防ぐには、具体的な攻撃方法を知っておく必要があります。攻撃方法を知って初めて、攻撃を防ぐためのプログラムを書くことができるようになります。 これまでの解説の中でも何度か不正アクセスについて触れていますが、ここで再度、Webアプリケーションへの代表的な攻撃方法と、その防御方法を紹介します。
トップ > ダウンロード > PHP Stock PHP Stock (ファイル管理)について ファイルをフォルダ別にアップロードし、管理することができます。主な機能は以下のとおりです。 ファイルをブラウザから管理 ファイルの分類 ファイル・サムネイル画像ファイルのアップロード ファイルごとに説明文の登録 ファイル情報をXMLで出力 アップロードファイルを他のアプリケーションで利用 プログラムの機能については、機能解説とプラグインも参照してください。各設定やファイルの登録方法については使用方法を参照してください。 RSS2.0配信 携帯用テンプレートを導入すると、携帯専用の表示を行うことができます。また、絵文字変換ライブラリを導入することにより、携帯の絵文字を表示することができます。 広告 目次 ダウンロード ファイル構成 設置方法 使用方法 携帯用テンプレート 更新履歴 ダウンロード 以
ヒアドキュメントについて 何行にも渡る長い文章を出力する場合、以下のように echo を使って改行文字を出力すれば実現できます。 <?php $purpose = "Webプログラミング"; echo "PHPとは、HTMLへの埋め込み型プログラミング言語です。<br />\n"; echo "正式名称は「PHP: Hypertext Preprocessor」です。<br />\n"; echo "PHPは{$purpose}に利用されます。<br />\n"; echo "<a href=\"detail.php\">詳細を読む<a>\n"; ?> ですが改行文字を書いたりエスケープに気をつけたりする必要があるため、長い文章の場合は少し大変です。このような場合、ヒアドキュメントを使用すれば簡単に書くことができます。以下はヒアドキュメントを使用した例です。 <?php $purpose
XAMPPのインストール PHPの開発環境を整えるには、Apache(サーバーソフト)、PHP、MySQL(データベース)のインストール方法が必要です。ですがXAMPPを使用すれば、これらのソフトをまとめてインストールしてくれます。 ここでは、XAMPPの利用方法を紹介します。XAMPPは無料で利用できるソフトで、以下のページからダウンロードできます。 xampp for windows (apache friends) ページ中程にある『XAMPP Windows版 1.7.3』の『EXE』からXAMPPをダウンロードします。(『1.7.3』はバージョンの数値なので、変更になる可能性があります。) 『保存(S)』ボタンを押して、適当な場所にファイルを保存してください。ダウンロードが完了したら、以下のファイルが表示されます。このファイルをダブルクリックで実行してください。 以下の警告画面が
プログラムの概要 date 関数を使用すれば、現在の時刻を取得することができます。また、if を使用すれば、取得した時刻(数値)によって処理を分岐させることができます。 これらを利用すれば、時間によって表示内容が変わるページを作成することができます。 時間によって表示内容が変わるページ 時間によって表示内容が変わるページは、以下のようになります。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>挨拶表示</title> </head> <body> <?php if (date("H") >= 6 and date("H") <= 11) : ?> <!--6時~11時のメッセージ--> <p>おはようございます。</p> <p>今日も一日頑張りましょう。<
概要 CakePHP1.3の導入&アプリケーション作成メモ。 改ページの導入 ログイン機能の導入 ログイン状態保持機能の導入 ワンタイムトークン(CSRF対策)の導入 で躓いたので、それらの導入までをメモしておきます。基本的に自分用のメモなので、詳細はその都度解説サイトや書籍などを参照することをお勧めします。 自分で色々調べつつ書いているメモなので、見当違いな事を書いてある可能性があります。 導入 設置 公式サイトからCakePHP1.3をダウンロードします。 http://cakephp.jp/ 入手したファイルを適当なディレクトリにコピーします。今回は、公開フォルダ直下に cakephp フォルダを作成し、その中に各フォルダとファイルを格納するものとします。URLは http://localhost/cakephp/ でアクセスできるものとします。 実際に運営するときは、/cakeph
PHPからのデータベース操作 PHPにはMySQLを操作するための命令があらかじめ用意されているため、それらを使用すれば手軽にMySQLとの連携を行う事ができます。 以下はPHPでMySQLを使用したサンプルプログラムです。アドレス帳のデータを保存したテーブルの内容を、順に表示しています。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>アドレス帳</title> </head> <body> <?php $con = mysql_connect('127.0.0.1', 'root', '1234'); if (!$con) { exit('データベースに接続できませんでした。'); } $result = mysql_select_db('phpdb',
データベースに接続する PDOでデータベースに接続するには、PDO クラスを使用します。接続に成功するとオブジェクトが返されます。 オブジェクト = new PDO( 'データベースの種類:dbname=データベース名;host=接続先アドレス', 'ユーザー名', 'パスワード' ); MySQLに接続する場合、データベースの種類は mysql を指定します。もしPostgreSQLに接続したければ pgsql、SQLiteに接続したければ sqlite を指定します。他にも、色々な種類のデータベースに接続することができます。 接続に失敗するとPDOは「例外」を発生させます。これは try と catch を使用すれば補足することができます。具体的には try { チェックしたい処理 } catch (PDOException $e) { 例外が発生したときの処理 } という形式になりま
XAMPPのセキュリティ設定 XAMPPの初期状態はセキュリティが低く設定されています。不正なアクセスを防ぐため、まずはセキュリティの設定を行います。 XAMPPの管理画面で、左側のメニューから『セキュリティ』をクリックすると、以下のように現在のセキュリティが確認できます。ステータスに3つの『要注意』が表示されているのが確認できます。(クリックすると拡大表示されます。) まずはMySQLの管理者パスワードを設定します。画面に表示されている http://localhost/security/xamppsecurity.php のリンクをクリックします。 『新しいパスワード』と『新しいパスワード(確認)』欄に設定したいパスワードを入力し、『パスワードを変更しました。』ボタンを押します。(この解説ではパスワードを 1234 と設定したものとして進めますが、実際にはもっと複雑なパスワードを設定す
外部ファイルの読み込みについて PHPでは、定数や関数の定義など、使い回しができるコードを分離して保存し、色々なプログラムから呼び出して使用することができます。 requireでの読み込み require を使用すれば、プログラム実行前に指定したファイルを読み込むことができます。ここでは例として my_function.php を作成し、以下のコードを書いておきます。 <?php function average($x, $y) { return ($x + $y) / 2; } ?> 与えられた2つの値から平均値を求め、その値を返す自作関数を定義しています。他のプログラムからこのコードを使用する場合、require を使ってこのコードを読み込みます。具体的には以下のようになります。 <?php require "my_function.php"; $number = average(2,
つまり、date("Y/m/d") と書くと「2010/09/01」のような文字列が返され、date("H:i") と書くと「15:06」のような文字列が返されます。 PHPは非常にたくさんの関数が用意されているため、すべての関数と意味を覚えるのは不可能です。なので、その都度調べながらプログラムを作成することになります。関数の意味は以下のサイトで調べることができます。 PHP公式サイト ページ右上にある「search for」の部分に関数名を入力して検索することができます。もちろん、市販の書籍などで調べることもできます。 改行について プログラム中で文字の改行を行いたい場合は、HTMLの文法に従って <br /> タグを出力すればOKです。具体的には、以下のようになります。 <html> <head> <meta http-equiv="Content-Type" content="tex
トップ > 設置の基本 > パーミッションを変更する 目次 パーミッションとは パーミッションの設定方法 数値の詳しい意味 パーミッションとは パーミッションとは、ファイルの『読み込み、書き込み、実行』の権限のことです。 個人的に使用するパソコンならば問題ないのですが、Webサーバーにあるデータは色々な人がアクセスできるため、それらのファイルを勝手に書き換えられたり削除されたりしないよう、権限を設定する必要があります。 HTMLファイルは読み込みさえできればいいので特に意識する必要はありませんが、PHPの場合は実行権限や書き込み権限の設定が必要になることがあります。パーミッションを正しく設定しないとエラーになってしまいます。 パーミッションは オーナーの読み込み、書き込み、実行権限 グループの読み込み、書き込み、実行権限 その他の読み込み、書き込み、実行権限 と、計9つの属性を設定する必要
トップ > ダウンロード > PHP Reserve PHP Reserve (施設利用管理)について 施設の利用申し込みを行い、申し込み状況をブラウザ上で管理できます。主な機能は以下のとおりです。 施設情報をブラウザから管理 施設の利用時間設定 施設の利用料金設定 施設の公開・非公開設定 ファイルのアップロード 顧客情報をデータベースに保存 施設の利用申し込みをブラウザで管理・メール送信 利用予約確認・キャンセルをブラウザから実行 プログラムの機能については、機能解説とプラグインも参照してください。また、各設定や施設情報の登録方法については使用方法を参照してください。 また、テンプレートを編集することにより、以下のようなカスタマイズもできます。 WYSIWYGエディタ(HTMLエディタ)の導入 携帯用テンプレートを導入すると、携帯専用の表示を行うことができます。また、絵文字変換ライブラリ
トップ > ダウンロード > Calendar Viewer Calendar Viewer (Google カレンダー予定閲覧)について Google カレンダーに登録した予定を閲覧することができます。主な機能は以下のとおりです。 Google Calendar API で、Google カレンダー の予定を取得 カレンダーから表示したい予定を選択 月ごとの予定を一覧表示 土曜日・日曜日・祝日を自動で色分けして表示 携帯からのアクセスを想定したインターフェイス このプログラムの実行にはデータベースは不要です。また、公式ツールと比べるとセキュリティは劣るため、重要な情報の閲覧に使用しないことを推奨します。 広告 WADAX 安心の365日電話サポート付きレンタルサーバーです。 ロリポップ! 月額263円からのレンタルサーバー。マニュアルも充実しています。 目次 ダウンロード ファイル構成
書式は SELECT 表示するカラム FROM テーブル名 WHERE 検索条件 となります。 SELECT * FROM address WHERE no = 10; SELECT * FROM address WHERE no >= 7; SELECT * FROM address WHERE name = '山田太郎'; AND、OR で検索条件を複数指定することができます。 SELECT * FROM address WHERE no = 10 OR no = 12; SELECT * FROM address WHERE name = 'ヤマダタロウ' AND tel = '090-1234-5678'; あいまい検索をする 部分的な文字列を検索条件に指定する場合、LIKE を使用します。LIKE は、英語で「~のような」という意味です。書式は SELECT 表示するカラム FR
トップ > 設置の基本 > 絵文字の表示について 目次 MobilePictogramConverterの導入 ファイルの入手 ファイルのアップロード 設定ファイルの編集 MobilePictogramConverterの導入 PHP Labo で配布しているプログラムは、MobilePictogramConverterを導入することにより携帯の絵文字を表示できます。 注意点 パソコンからの絵文字入力は、DocomoのWeb入力コード(Unicode)で行います。 メールを送信する際、絵文字はすべて削除されます。 メール投稿機能などでメールを受信する際、絵文字は正しく反映されません。 ファイルの入手 MobilePictogramConverterは、以下の公式サイトからダウンロードすることができます。 MobilePictogramConverter 絵文字変換ライブラリ ダウンロード
条件分岐について ここまでのプログラムは、書かれた内容を上から順番に実行していくのみのプログラムでした。ですが条件分岐を使用すれば、条件によって処理内容を変更することができるため、複雑なプログラムを作成することができるようになります。 具体的には、以下のような書式で条件分岐を行います。 if (条件) { 条件に一致した場合に実行するプログラム } else { 条件に一致しなかった場合に実行するプログラム } このように書くことで、条件に一致したかどうかで処理内容を振り分けることができます。ちなみに if は英語で「もし~なら」、else は「そうでなければ」という意味です。 以下に、条件分岐を使用したプログラムを記載します。 <?php $sample = 10; if ($sample > 5) { echo "変数sampleの内容は5より大きいです。"; } else { ech
トップ > ダウンロード 注意事項 PHPプログラムをダウンロードすることができます。ダウンロードの前に以下の事項を確認してください。 各プログラムは、ダウンロードした時点で利用規定に同意したものとみなします。 PHPプログラムを初めて設置する場合、設置の基本を参照してください。 プログラムをカスタマイズする場合、カスタマイズやPHP入門を参照してください。 プログラムの設置トラブルに関するご質問は設置サポートへどうぞ。(サポート対象はプログラムの設置のみです。改造はサポート外となります。) 感想や要望は、ご意見箱からお知らせしていただけると嬉しいです。 広告 新・配布プログラム一覧 トップページの一覧からアクセスしてください。 旧・配布プログラム一覧 旧・配布プログラムは、現在メンテナンスされていません。 PHP Blog シングルカラムタイプのブログ。 PHP Record 更新情報を
次のページ
このページを最初にブックマークしてみませんか?
『PHP Labo - フリーPHPスクリプト配布&改造&入門』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く