$_POSTのものを$_GETとして使うのはなぜ?
http://www.phppro.jp/school/phpschool/vol19/2
こちらの講座にあるサンプルコードで分からないところがあります。
schedule_edit.phpのサンプルでは
if (isset($_POST["year"]) && is_numeric($_POST["year"])
&& $_POST["year"] > 2000) {
$year = $_POST["year"];
<form action="schedule_edit.php" method="post">
<input type="text" name="year" id="schedule-year"
value="<?php print(htmlspecialchars($year, ENT_QUOTES)); ?>" />
<label for="schedule-year" id="label-year">年</label>
formで入力されたデータはhtmlspecialchars($year, ENT_QUOTES)の$yearに格納され、
$_POST["year"]としてデータが渡り、
php側で$year = $_POST["year"];のように$_POST["year"]のデータが$yearに格納し直されています。わざわざ格納し直す理由も分からないのですが、一番知りたいところは
schedule_list.phpのサンプル内ではPOSTでなくGETで渡されているところです。
if ($schedule_date == date("Ymd", mktime(0, 0, 0, $_GET["month"],
$_GET["day"], $_GET["year"])))
$_POST["day"]ではなぜだめなのか分かりません。
この$_GET["year"]はschedule_edit.phpの$_POST["year"]を見ているわけではないのでしょうか。
お礼
フォーム側のコードを見直して、 <form action="post.php" method="post"> に変更したら、POSTでデータが渡るようになりました。 enctype="text/plain" が余分だったようです。 ありがとうございました。
補足
>どういうソースでsubmitして、 こうゆうフォームからsubmitして <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja_JP" xml:lang="ja_JP"> <head> <title> </title> </head> <body> <form action="post.php" method="post" enctype="text/plain"> <input type="text" name="text1" value="" size="40" maxlength="40"/> <input type="submit" name="s1" value="送信"/> </form> </body> </html> >どうやって受けているかによりますね。 <?php echo "入力されたデータは「" . $_POST['text1'] . "」です。"; ?> これで、データを受けてるだけなんですが、データが渡りません。 ちなみに、Eclipse3.0 + PHPEclipseでコードを書いてます。 よろしくお願いします。