フォームからのデータ受け取りについて

フォームからのデータの受け取りについて
#32 フォームからのデータを受け取ろう
http://dotinstall.com/lessons/basic_php_beginner/6832
でフォームからの値の受け取りについて学習
PHPのフォームから受けとったデータを処理するのに使う
今回の注目点は
<form action=”get_info.php” method=”post”>
のところ
これは
get_info.php に送信して
送信はPOST形式で送るというもの
今回、送るデータは
<input type=”text” name=”birthday” value=””>
のところ
受けとるほうは
$birthday = $_POST[‘birthday’];
として受けとる
ちなみに、送信方法が
method =”get” だった場合
$_GET になる
そして、このbirthday の値を元に曜日を返すようにする
これは
date() をつかう
フォーマットには l を使うと曜日になり
UNIXタイムで取得するので
strtotime($birthday)
という引数にする
$youbi = date(“l”,strtotime($birthday));
これで、
フォーマット l で 曜日にした birthday のデータが
$youbi に格納される
あとは、この $youbi をHTMLのソースのほうで
echo で出力する
<?php echo htmlspecialchars($youbi); ?>
とすればOK
出力するときには
htmlspecialchars() で無害化するのを忘れずに

PHP でファイルからデータ読み出し その2

PHP でファイルからデータ読み出し その2
#31 ファイルからデータを読み出そう (2)
http://dotinstall.com/lessons/basic_php_beginner/6831
に、もっと簡単なデータの読み出しがあったので
これも学習
これは
file_get_contensts()
を使う
これも変数に格納できるので
$contents = file_get_contents($testfile);
でもOK
また、URLを指定することも可能
$contents = file_get_contents(“http://dotinstall.com”);
とすれば、ドットインストールのソースを
とってくるということもできる
あと、
$contents =file($testfile);
というように
file() を使うと、指定したファイルの内容を
1行ずつ読み込むようになる
使い道としては
web api 関連が一番おおそう

PHP でファイルからデータ読み出し

PHP でファイルからデータ読み出し
#30 ファイルからデータを読み出そう (1)
http://dotinstall.com/lessons/basic_php_beginner/6830
を参考にファイルからデータ読み出しを学習
今回、書き込みに使ったように
読み込みでも
fopen() を使う
ただし、今回のモードは
r
となる
そして、できたかどうか判定するため
if を使って判定する
if(!$fp = fopen($testfile,”r”)){
この判定がうまくいったら
ファイルの読み込みをするので
fread() を使う
第1引数に、ファイルポインタ
第2引数に、ファイルサイズを指定する
ファイルサイズ指定は、大抵の場合はファイルサイズの最大値になるので
filesize($testfile)
というように対象のファイルを格納した変数になることがほとんど
ちなみに、今回の動画だと
$testfile =”test.dat”;
と指定しているので
filesize($testfile)
としている
この読みこんだものは変数に格納可能
$contents = fread($fp , filesize($testfile));
あとは
var_dump() で中身を確認
ファイルを開いた場合、クローズは閉じるのがセットなので
fclose($testfile);
で閉じることを忘れずに

PHP でファイル書き込み

PHP でファイル書き込み
#29 ファイルにデータを書き込もう (3)
http://dotinstall.com/lessons/basic_php_beginner/6829
を参考に、PHPでのファイル書き込みに付いて学習
この判定にはif を使う
if(fwrite($fp,$contens) === false){
echo “could not write”;
exit;
}
これで false だった、つまり書き込みできないのなら
echo “could not write”
を実行して
exit で終了している
PHP の場合 === として == とおなじ意味になる
正確には、==より厳密な比較になる
これだと型まで比較できるようになる
if(fwrite($fp,$contens) === false){
echo “could not write”;
exit;
}
で成功したら
echo “success”;
で表示して
最後にファイルを開いたら閉じるので
これには fclose() をつかう
C言語でも ファイルのオープン、書き込み、ファイルクローズがあるけど似た様な処理になる
今回の場合には
fclose($fp);
となる
実行するとからのファイルへ
追記されているのがわかる
Ubuntu でおこなうときには
chmod 777 test.dat
としてパーミッションを変更する必要があるので注意

UNIXタイムの取得

UNIXタイムの取得
#25 日付/時間関数を使ってみよう (1)
http://dotinstall.com/lessons/basic_php_beginner/6825
を参考に
UNIXタイムの取得について学習
UNIXタイムからの経過時間をみるには
var_dump(time());
でみれる
また、mktime()で指定した時間のUNIXタイムで表示できる
引数は
時間、分、秒、月、日、年
の順番
例えば
2013/6/17 7:55:00
なら
mktime(7,55,0,6,17,2013)
となる
strtotime()
これは、日付の文字列からタイムスタンプを作成する
strtotime(“2013/6/17 7:55:00”)
とすると
UNIXタイムが表示される
このstrtotime()は使い勝手がよく
strtotime(“last Sunday”)
とすれば先週の日曜日のUNIXタイムを表示し
strtotime(“+ 2day”)
とすれば、2日後のUNIXタイムを表示できる

から送られてきた高速メモ帳

Amazon のストレージサービス S3

Amazon のストレージサービス
#15 ストレージサービスを使ってみよう
http://dotinstall.com/lessons/basic_aws/9515
を参考に
S3について学習
Create Bucket で入れものを作成
注意点は、ほかの人と被らない名前にすること
これは twitter アプリとかと同じ
このバケットの中にファイルやフォルダを作成する
ファイルの保存先として使えるけど
外部からアクセスできるようにするには
アップロードしたファイルを
右クリックして
Make Public
として公開状態にしないとダメ
一般的に web サービスとして使うには
SDKを使うことになる
Amazon SDK for PHP など
を使う
http://aws.amazon.com/jp/php/
に紹介が掲載されている

AWS のサーバー増設

AWS のサーバー増設
#12 サーバーを増設してみよう (1)
http://dotinstall.com/lessons/basic_aws/9512
を参考に、サーバーの増設方法を学習
まず、稼働させている webサーバーのイメージ作成
これをもとにインスタンスを
もう一つ作成
中身は同じになるので
RDSにも繋がる
そして、アクセスをこの新しく増設したサーバーにも
できるようにして負荷分散できるようにするには
ロードバランサーを使う
実際に行うのは
#13 サーバーを増設してみよう (2)
http://dotinstall.com/lessons/basic_aws/9513
になる
やりかたは動画でもあるけど
自分なりにメモ
まず、稼働しているインスタンスを右クリック
Create Image(EBS AMI) を選択
Image Name を入力し作成
状態がavailable になったら
インスタンスを起動
#14 ロードバランサーを設置しよう
http://dotinstall.com/lessons/basic_aws/9514
でロードバランサーの設置
ロードバランサーの作成は
NETWORK & SECURITY の中にある
Load Balancers
で作成
Load Balancer Name に
ロードバランサーの名前を入力
Configration Options
は死活監視
この Ping Path に設定したものが落ちているなら
そちらには流さないという設定をする

RDSスペック変更とEC2接続

RDSスペック変更とEC2接続
#11 スペック変更とEC2からの接続
http://dotinstall.com/lessons/basic_aws/9511
を参考に
DBスペック変更とEC2からの接続を学習
必要なものとしては
DB Instance Class のところ
これをメモ帳などにコピペしておく
スペックの変更は
作成したRDSを右クリックして
modify
を選んで設定を変更できる
EC2からの接続
これは、セキュリティグループの設定を変える
EC2 Security Group で設定を変えればOK
これで、アクセスできるようになる
アクセスするには
端末操作になるので
SSHでログインして操作となる
mysql -h メモしたホスト名 -u データベースユーザ名 -p
これでパスワードを入力すれば
RDSへO接続できる
接続できていいるか確認するには
show databases;
でDBがあるか確認すればOK

RDS について

RDS について
#10 データベースを立ち上げてみよう
http://dotinstall.com/lessons/basic_aws/9510

参考に、RDS について学習
RDSをえらび
インスタンスを作成したリージョンを選択
使用するDBは MySQL
DB Instance Class はいくつか種類があり
db.t1.micro が最小のも
Multi-AZ0-Swployment
これを yes にすると
ホットスタンバイが作成される
練習ならno でOK
Allocated Storage はストレージの大きさ
DB Instance Identifier
はDBの名前(概要のようなもの)
Master Username
にはDBのユーザ名
Master Password
には DBのパスワード
次の画面で
Database Name
これがDBの名前
Database Port
これはポート番号
Availability Zone
これは
作成したEC2仮想マシンを指定
次の画面で
Enabled Automatic Backup
これは自動バックアップをするか否か
yes なら自動バックアップ
Backup Retemtion Preriod
これは、バックアップの期間
Backup Window
バックアップの希望時間
ただし、日本時間じゃないので注意
Maintenance Window
メンテの時間

clipbucket のエラー

インストールすることはできた clipbucket ですが
Strict Standards: Non-static method CBTemplate::assign() should not be called statically in /var/www/clipbucket/includes/functions.php on line 166
Strict Standards: Non-static method CBTemplate::create() should not be called statically in /var/www/clipbucket/includes/classes/template.class.php on line 45
このエラー
どうやらPHPのバージョンが 5.4 なのが原因のようです