phpファイルの命令実行順番について
いつも勉強させていただいております。
初歩的な質問になるかもしれませんが、回答いただければ幸いです。
現在PHPの学習をしております。
phpファイルに記載された命令がどのような順に実行されるのか、ということにたいして私なりの理解が正しいかどうか確認していただきたいのと、ソースについての質問をさせていただきたく思います。
以下、動作確認済みのサンプルソースです。
<html>
<head>
<title>
画像を保存
</title>
</head>
<body>
<?php
if(@$_POST["text1"])
{
$width = 300;
$height = 200;
$fname = $_POST["text1"];
$img = imagecreate($width, $height);
imagecolorallocate($img, 0, 255, 0);
if(imagepng($img,$fname))
{
echo "<p><a href=\"$fname\">作成されたファイル</a>";
}
}
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
<table>
<tr>
<td>
<input type="text" name="text1" value="test.png" >
</td>
<td>
<input type="submit" value="作成" name="sub1" >
</td>
</tr>
</table>
</form>
</body>
</html>
”作成”ボタンを押すと、text.pngという画像ファイルをこのソースがあるフォルダ内に保存し、というだけの処理をするものです。
・上記サンプルにおける、記述された命令の実行順について
(1)
<?php で囲まれている部分が動作する。
→最初は$_POSTに何も入っていないので、if条件は偽となり、何も動作しない。
(2)
<form>から、</form>で囲まれている部分が動作する。
テキスト入力エリアや作成ボタンなどのイメージが完成する
PHP_SELFを$_SERVERに指定しているので、この情報をこのファイル内の、<?php~で囲まれているところに渡す。
ここまでで画面表示が完了する。さらに作成ボタンを押したときの動作を続ける
(3)
<input type="text" name="text1" value="test.png" >
初期値として画面に表示したい値をvalueに指定する。
<input type="submit" value="作成" name="sub1" >
ボタンに表示したい文字をvalueに指定する。
作成ボタンを押すことで、"text1"という名前とヒモづいたテキストエリアに書かれた情報がPOSTにより渡される。
このサンプルではtextひとつしかないが、他のラジオボタンなど全ての情報が作成ボタンを押すことにより、渡される。
これにより、$_POSTへnameに該当するものを指定すると、それにヒモづいた情報が取得できるようになる。
作成ボタンを押した後は、(1)に戻り、text1にヒモづく情報が見つかることにより、if条件内の処理が動作する。
この場合は「作成されたファイル」という文字がでてくる。
さらに(2)が動作し、「作成されたファイル」という文字の下にテキストエリアや作成ボタンが表示される。
質問
<form>内にあるactionへの設定ですが、"<?php echo $_SERVER["PHP_SELF"]?>"は決まり文句のようなもので、PHP_SELFのみ期待する動作に応じて変化する、という考え方でいいでしょうか?
この記述は使用している参考書にあったものですが、googleなどで検索するとaction=ファイル名、となっているものもありました。なぜこのファイルではこのような書き方をしていて、他のものではファイル名をactionに設定しているのでしょうか?
actionへ指定するものはどういったものを指定するものなのでしょうか?
actionの使い方がよくわかりません。
お手数ですが、ご回答いただける方、よろしくお願いします。