9月に東京でPHP入門講座をやります。
9月20日(土曜日)に東京のサイバーガーデンbizで「ゼロからはじめるPHP入門講座」というンズオントレーニング講座を行います。
re:キケンなSQLインジェクション
ネタ元:キケンなSQLインジェクション
SQLインジェクション対策へのアプローチとしては正しいのだけど、1点だけ気になる点が。。。
絶対に公開してはいけないPHPプログラミング
ネタ元:AjaxMail:Ajaxを活用したフリーPHPメールフォーム
これはひどいのに誰もつっこみを入れていないので、ツッコミを入れておきます。
セキュリティーフィックスされたました。
PHPの欠点
定期的に起こる、PHPに関する議論ですが、今回はRubyのまつもとゆきひろさんが火種とあり結構な盛り上がりを見せています。
URL短縮システム
URL短縮システムを作成しましたので公開します。
Scuttleのアカウント情報削除プログラム
オープンソースのソーシャルブックマークサービスシステム『Scuttle』を利用しているのですがスパムが多くて困ってます。
PHP教育無料体験キャンペーン
タイレルシステムズさんよりご依頼があり、『PHP教育無料体験キャンペーン』の広告をサイドバーに掲載しております。
ふつうのリロード対策
これはいろいろ気になったので、思ったことを書いておく。
PHPでQRコード生成
QRcode Perl CGI & PHP scripts ver. 0.50gを利用すると驚くくらい簡単にQRコードの作成が可能です。
そろそろPHPの良いところも一言いっておくか
ちょっとはやってるので便乗ネタ。ちゃんとPHPにも良い所がありますよ。
プログラマに・・・プログラムが書けた
ということなので書いてみる。
WEBデザイナーの為のXSS(クロスサイトスクリプティング)入門
情報処理推進機構のXSS(クロスサイトスクリプティング/Webアプリケーションに存在するセキュリティホール)が公開されて、ネット上では盛り上げっているようです。
phpでSmartyを使う方法
phpでテンプレートエンジンSmartyを使う方法です。
Smartyはphpのテンプレートエンジンの中で現在最も普及している(であろう)もので、解説サイトなども多数存在するのでテンプレートエンジン初心者の方でも簡単に使用できると思います。
数値かどうかのチェック
phpのチェック用構文
PHPの脆弱性をつくLinuxワーム発見
10月31日、PHPのセキュリティサービスを専門に行うHardened-PHP Projectが、重大なセキュリティホールが見つかったとして警告を行ったのに続き、11月6日には、PHPのXML-RPC(転送にhttpを使用し、エンコードとしてXMLを使用する処理)の脆弱性をついたLinuxのワームが発見されたと、Sans Instituteが発表した。
smartyで文字を連結する
テンプレートエンジンsmartyのtplファイル内で文字の連結を行う方法
チェックボックスの値を2次元配列で取り出す。
フォームの送信先でチェックボックスの値を2次元配列で取り出す方法です。
printf()
printfは数値や文字列のフォーマットを設定して出力することができます。
フォーマットに関してはdの10進数と浮動小数点扱いのfしかほぼ使わないと思います。
配列の中に配列を入れる-多次元配列-
配列の引き出しの中に更に配列を入れる!多次元配列です。
最初のうちはここは飛ばして読んだほうがいいかもしれません。
慣れてきたら読みに帰ってきてください。
【ソース】
<?
$array["りんご"]["品種"]="つがる";
$array["りんご"]["産地"]="青森";
$array["りんご"]["色"]="赤";
$array["みかん"]["品種"]="天草";
$array["みかん"]["産地"]="愛媛";
$array["みかん"]["色"]="橙";
$frutu="りんご";
echo $array[$frutu]['品種']."は".$array[$frutu]['産地']."産の".$array[$frutu]['色']."色の".$frutu."です。";
$frutu="みかん";
echo $array[$frutu]['品種']."は".$array[$frutu]['産地']."産の".$array[$frutu]['色']."色の".$frutu."です。";
?>
と入力すと
【ブラウザ】
つがるは青森産の赤色のりんごです。
天草は愛媛産の橙色のみかんです。
と表示されます。
$arrayには
1次元目にみかんやりんごなどの名詞がセットされており
2次元目にそれに対する属性(産地だったり色、品種)が設定されてます。
分散化されていく属性を体系的にわかりやすく管理できます。
また、
マトリックス状の物(たとえばテーブル{tr-tdのやつですね}なんか)を表現するときに便利です。
連想配列を使ってみる
連想配列は通常の配列と同じで一つの変数で複数のデータを扱うことができます。
通常の配列が変数の引き出しの通し番号で管理してるのに対して
連想配列は個々の引き出しにそれぞれの名前を付けて管理します。
【ソース】
<?
$array[ringo]="りんご";
$array[mikan]="みかん";
$array[budou]="ぶどう";
echo "$array[ringo]の中身は".$array[ringo]."です<br>";
echo "$array[mikan]の中身は".$array[mikan]."です<br>";
echo "$array[budou]の中身は".$array[budou]."です<br>";
?>
と入力すと
【ブラウザ】
$array[ringo]の中身はりんごです。
$array[mikan]の中身はみかんです。
$array[budou]の中身はぶどうです。
と表示されます。
引き出しは俗に配列のkeyと呼ばれており任意の文字列を設定できます。
【ソース】
<?
$array = array('ringo'=>'りんご','mikan'=>'みかん','budou'=>'ぶどう');
?>
で一度で連想配列を作成する事も可能です。
より複雑なロジックを再現する上で欠かせない物なので、是非覚えてください。
配列を使ってみる
配列は一つの変数で複数のデータを扱うことができます。
変数名[]=データ;という形で1つづつ作成するものと
変数名 = array("データ1","データ2","データ3");
という形で複数を一気に設定する方法があります。
【ソース】
<?
$array1[]="りんご";
$array1[]="みかん";
$array1[]="ぶどう";
echo "$array[0]の中身は".$array1[0]."です<br>";
echo "$array[1]の中身は".$array1[1]."です<br>";
echo "$array[2]の中身は".$array1[2]."です<br>";
?>
と入力すと
【ブラウザ】
$array[0]の中身はりんごです。
$array[1]の中身はみかんです。
$array[2]の中身はぶどうです。
と表示されます。
作成した変数を引き出すときには[通し番号]に数値を入れてください。
※通し番号は0から順番に入っていきます。
<?
$array = array("りんご","みかん","ぶどう");
?>
でも同じ様に値が入っていきますので。。。
nl2br-改行コードを<br>に変換する-
nl2br(1)
1変数
戻り値:改行コード(\n)が<br />に変換された値
whileを使う!
whileはforと同じ繰り返し処理になります
------------------------------------
while(1){
2
}
------------------------------------
1.条件式
2.実行処理
------------------------------------
forが決まった数だけ繰り返すのに対して
whileは条件式が正しい(真)ときだけ処理を繰り返します。
【ソース】
<?
$i=0;
while($i<4){
print $i;
$i++;
}
?>
【ブラウザ】
0123
for以上に無限ループになりやすいので気をつけといてください。
僕は基本的に繰り返し処理は90%forを使ってやります。
whileを使うときはpg_fetch_arrayやmysql_fetch_arrayなどのDB配列を取得するときや
feofでテキストデータを取得するときぐらいしかあんまり使いません。
strlen-文字列の長さを取得する-
------------------------------------
strlen(1)
1変数
戻り値:変数の長さ
-----------------------------------
for文を使ってみる
for文は繰り返し処理になります。
------------------------------------
for(1;2;3){
4
}
------------------------------------
1.初期値
2.実行値
3.増加値
4.実行処理
------------------------------------
これは基本なんで覚えとかないとなにもできません。
基本的には
【ソース】
<?php
for($i=0;$i<10;$i++){
echo $i;
}
?>
【ブラウザ】
0123456789
のように使用します。
変数に関しては明示的に$iを使用することは多いです。
(ほとんどのプログラムで$i>$j>$kのような優先順位で使ってます。)
初期値に関しては$i=0のように0から回す癖を付けとくと後々楽です。
(実生活と違いプログラムは0からカウントしていくので)
増加値に関しては$i++のようにインクリメント(++のことですよ)を
お尻に付ける形がポピュラーです。
array_slice-配列の一部を取得する-
array_slice(1,2[,3])
1.配列
2.開始位置
4.取得する要素数
戻り値:取得した要素で構成される配列
if文を使ってみる
条件分岐になります。
<?php
$str="今日は雨";
if($str=="今日は雨"){
echo "かさをもっていく。";
}
?>
みたいな感じです。
複数の条件も設定できます
<?php
$str="今日は雨";
if($str=="今日は晴れ"){
echo "日傘を持っていく";
}elseif($str=="今日は雨"){
echo "かさをもっていく。";
}
?>
のように『elseif』もしくは『else if』で
どんどん条件を追加していけます。
<?php
$str="今日は雨";
if($str=="今日は雨"){
echo "傘を持っていく";
}else{
echo "何ももっていかない";
}
?>
『else』は指定した条件以外という意味です。
<?php
$str="今日は雨";
if($str=="今日は雨")echo "傘を持っていく";
?>
のように『{』や『}』を省略した書き方もできるので合わせて覚えておきましょう
変数を使ってみる。
プログラムで基本になってくる物で変数というものがあります。
変数と聞くと数学でならったxやyを思い出す人が多いと思いますが、まさにそれです。
xに色々な数字が入っていたのと同じように、数字や文字列を格納するものとして変数を使用します。
phpの大きな特徴の1つとして変数が一目でわかります。
$strなど『$』が付いている文字列が変数です。
変数に文字を格納する方法は
変数=変数に入れるもの;
と記述します。
phpは基本的に行の終わりに『;』と記述します。
【php】
<?php
$str="変数に文字を入れてみました";
print $str;
?>
と書いてサーバーにアップしてみてください。
【ブラウザ】
変数に文字を入れてみました
と出力されます。
変数は『.』を使って変数を結合して出力したり別の変数に格納したりできます。
【php】
<?php
$str1="文字1";
$str2="文字2";
$str3=$str.$str2;
print $str.$str2;
print "<br>";
print $str3;
?>
【ブラウザ】
文字1文字2
文字1文字2
phpの基本
通常のwebサイトはhtmlという言語で書かれています。
ブラウザがhtmlの内容を解釈してブラウザにwebサイトの内容を出力します。
そしてphpは更にサーバーでhtmlを出力する言語になります。
つまりhtmlを理解している事が大前提になるわけです。
このブログではあまりhtmlなどについては詳しく説明しないのでとほほのwww入門などを参考にしてください。
まずあなたの使用しているサーバーがphpが使えるサーバーかどうか確認してください。
phpが使えないサーバーだとせっかくphpを覚えても使えません。
無料のサーバーだとAAA!cafeなどがあります。広告がいやな人は、有料でもロリポップ
などはphpとデータベースサーバーのmysqlなどが使えてすごくやすいです。
次にtest.phpというファイルを作りましょう。
phpを使うページの拡張子はhtmlではなくphpと書くのが基本です。
そして
【php】
<?php
echo "Hello world";
?>
と書いてサーバにアップしてください
【ブラウザ】
Hello world
と表示されれば成功です。
echo print
文字列をhtmlに出力する関数になります。
西畑一馬(


