職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

$_ENV (環境変数)

2017年09月18日 | PHP
$_ENV (環境変数)


■$_ENVとは
PHPの定義済み変数の環境変数です。この変数は、現在のスクリプト(簡易的なプログラム)に渡された環境の値の変数です。ドキュメントルートのルートディレクトリやサーバーのIPアドレスなどの環境情報を取得することが出来ます。


■$_ENVを使うには
・php.iniファイルを書き換える
variables_order="GPCS"
から
variables_order="EGPCS"


■phpinfo() で環境変数$_ENVを確認



参考サイトPHP $_ENV(環境変数)のすべて!【初心者向け基本】
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPでPHPMailerを使うには

2017年09月02日 | PHP
PHPでPHPMailerを使うには


【開発環境】
xampp 1.8.3
PHP 5.5.9
Eclipse 4.4
PHPMailer 5.2.25

【PHPMailerのダウンロード】
ダウンロードページ:https://github.com/PHPMailer/PHPMailer
1)hpのBranch:masterの▼をクリックし、「Tags」をクリック、「v5.2.25」を選ぶ

2)グリーン色のボタンをクリックすると、「Download zip」が現れるので、それをクリックすると
ダウンロードが開始される。


【PHPMailerのインストール】
これを参照に→PHPでGmailを利用するには

以上
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PDOの利用

2017年07月25日 | PHP
データベースのPDO利用について


【開発環境】
xampp 1.8.3
PHP 5.5.9

【PDOとは】
・PDO(PHP Data Object)は、PHP 5から利用できるデータアクセス抽象化レイヤです。PDOを利用すると、高機能で共通化されたインターフェイスとPHP 5の機能をふんだんに使ったデータアクセスを実現できます。

・PEAR::DBとの違い
PEAR::DBやPEAR::MDBなどは、PHPで用意されている多くのネイティブなデータベースアクセスのための関数をPHPスクリプトでまとめ、共通のAPIを提供しています。

しかしながら、その共通のAPIを提供している部分はPHPスクリプトで書かれているため、速度面での期待はできません

【PDOを利用するには】
・PHP 5.3バージョン以上の場合
まず、先に「php.ini」ファイルの設定を行う、php.iniの「Windows Extensions」と書かれた箇所を検索して

extension=php_mysql.dll
extension=php_pgsql.dll
のセミコロン(;)を削除すると、MySQLとPostgreSQLが利用出来る様になる。

更に、データベースとしてMySQL、PostgreSQL、SQLiteの3つを利用するならば
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
のセミコロン(;)を削除しておく

以上の設定が終えたら、「php.ini」ファイルを保存した後、Apacheを再起動する。

注意、PHP 5.3バージョン以上で、extension=php_pdo.dllを追加すると、アパッチがエラー表示を出す

設定が終わったら、phpinfo()に下記のように表示される


【PDOクラスコンストラクタとDSNの記述】
1)MySQLのDSN(データ・ソース・ネーム)
mysql:dbname=db_name;host=host_name;port=port_no
例文
mysql:dbname=test;host=localhost
or
mysql:dbname=test;host=localhost:port=3306

2)pgsql:dbname=db_name;host=host_name;port=port_no;user=user_name;pass=password
例文
pgsql:dbname=test;host=localhost;port=5432
or
pgsql:dbname=test;host=localhost;port=5432;user=hoge;pass=hoge

3)SQLiteのDSN
sqlite:db_name
SQLiteでディスク上のデータベースに接続するには絶対パスでデータベースの位置を指定します。
sqlite:d:¥¥sqlite¥¥test

【データベースへの接続方法】
☆MySQLの場合
データベース「uriage」、テーブル「shouhin」、userも、passも、「testuser」とする。

1)mysql_connect()関数を利用する場合
$link = mysql_connect('localhost', 'user', 'pass');

// MySQLに対する処理

mysql_close($link);

参照サイト→「mysql_close」関数

2)PDOクラスを利用する場合
$dsn = 'mysql:dbname=uriage;host=localhost';
$user = 'testuser';
$password = 'testuser';

try{
//PDOクラスのオブジェクト作成
$dbh = new PDO($dsn, $user, $password);
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
参照サイト→PDOクラス利用

「pdotest1.php」サンプル
<html>
<head><title>PDOクラス</title></head>
<body>
<?php

$dsn = 'mysql:dbname=uriage;host=localhost';
$user = 'testuser';
$password = 'testuser';

try{
$dbh = new PDO($dsn, $user, $password);

print('接続に成功しました。<br>');
  文字コードは自分の環境に合わせる
$dbh->query('SET NAMES UTF-8');
$sql = 'select * from shouhin';
foreach ($dbh->query($sql) as $row) {
print($row['id']);
print($row['name'].'<br>');
}
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
$dbh = null;

?>
成功すれば表示される
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

自分自身にPOSTするには

2017年05月25日 | PHP
自分自身にPOSTするには


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3(PHPUnitが含まれている) 
PHP 5.5.9

【プログラムの訂正箇所】
サイト「PHPbookの投稿した内容を画面表示」のままだとエラーが出るので次のように改良した。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>PHP TEST</title>
</head>
<body>

<p>掲示板</p>
<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
<input type="text" name="personal_name"><br><br>
<textarea name="contents" rows="8" cols="40">
</textarea><br><br>
<input type="submit" name="btn1" value="投稿する">
</form>


<?php
//初期化
$personal_name = "";
$contents = "";

//ポストされた時
if (isset($_POST["personal_name"])){
$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];
}


print('<p>投稿者:'.$personal_name.'</p>');
print('<p>内容:</p>');
print('<p>'.$contents.'</p>');

?>

</body>
</html>

とりあえず、if (isset($_POST[""])){}を使うことで、「Notice: Undefined index」エラーは出なくなる。

または、Noticeエラーだけを非表示にしたい時

1)○NOTICEを非表示に(php.iniで設定)
error_reporting = E_ALL & ~E_NOTICE

2)○NOTICEを非表示に(スクリプトで設定)
<?php
error_reporting(E_ALL & ~E_NOTICE);
?>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

<?= は<?php echo のショートタグ

2017年05月16日 | PHP
<?= は<?php echo のショートタグ


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3(PHPUnitが含まれている) 
PHP 5.5.9

<?php echo のショートタグである<?=を使うには
php.iniのshort_open_tag = on の;を外す事!

ただし、< ?xml ~? >を短縮は出来ない。<?~?>はすべて<?PHP~?>に成ってしまう。
参照サイト→short_open_tagのON/OFF
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする