GETとPOST | 2008-08-29 |
[改訂版] PHP ポケットリファレンス (Pocket reference) (2005/09/17) 大垣 靖男 商品詳細を見る 毎日お世話になってます。 |
PHPを全て使いこなせるようになる日は来ない気がします。
それほどまでに、出来ることが多く、奥が深いかと。
まだまだ勉強が必要ですね。
今回は、それほど難しくない内容。
フォームによる値の送信です。
ページの流れは以下のような感じ。
・HTMLで生成されたフォームに値を入力。
・送信ボタンを押すと、ページ遷移し、入力した内容が表示される。
・戻るリンクを押すと、入力した内容が保持されたまま。
こんな感じです。
それでは、入力画面のソースです。
<get_and_post.php>
<?php
/** 初期値 **/
$myName = "";
$myID = "";
$myAge = "";
$myFrom = "";
/** GET受け取り **/
if( $_GET['myName'] ) {
$myName = $_GET['myName'];
if( $_GET['page'] ) {
$page = $_GET['page'];
$myID = $_GET['myID'];
$myAge = $_GET['myAge'];
$myFrom = $_GET['myFrom'];
echo "DBには繋がなくて大丈夫です";
} else {
echo "DBに繋いで値を取得してみよう";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<TITLE>GETとPOST</TITLE>
</HEAD>
<BODY>
<form method="post" action="./get_and_post_return.php">
名前:<input type="text" id="myName" name="myName" value="<?php echo $myName; ?>"><br>
番号:<input type="text" id="myID" name="myID" value="<?php echo $myID; ?>"><br>
年齢:<input type="text" id="myAge" name="myAge" value="<?php echo $myAge; ?>"><br>
出身:<input type="text" id="myFrom" name="myFrom" value="<?php echo $myFrom; ?>"><br>
<input type="submit" id="send" name="send" value="POSTで送信">
</form>
<br>
<a href="./get_and_post.php">値のリセット</a>
</BODY>
</HTML>
GETで受け取る値があるか無いかで処理を変えてます。
「DBに~」の記述は無視しといて下さい。
次に、出力及び入力画面へ戻る画面のソースです。
<get_and_post_return.php>
<?php
$myName = $_POST['myName'];
$myID = $_POST['myID'];
$myAge = $_POST['myAge'];
$myFrom = $_POST['myFrom'];
$page = "confirm";
$backURL = "./get_and_post.php";
$sendURL = "?myName=" . $myName . "&myID=" . $myID . "&myAge=" . $myAge . "&myFrom=" . $myFrom;
$pageURL = "&page=" . $page;
$URL = $backURL . $sendURL . $pageURL;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<TITLE>GETとPOST</TITLE>
</HEAD>
<BODY>
<p>入力した内容が表示されます</p>
<?php
echo $myName . "<br>";
echo $myID . "<br>";
echo $myAge . "<br>";
echo $myFrom . "<br>";
?>
<hr>
<p>送り返したい値:<?php echo $sendURL; ?></p>
<p>送信してみるURL:<?php echo $URL; ?></p>
<a href="<?php echo $URL; ?>">
テキストリンクで送信してみる</a>
</BODY>
</HTML>
POSTでサーバへ送ります。
確認画面で、修正などが必要な場合は、GETで送り返します。
DBなどから最初に値を取得するなどする場合は、GETにページ遷移の値を付与するといいかも。
他にいい方法ありそうだけど。
とりあえず、こんな感じで、メモ。
フォームによる値の送信です。
ページの流れは以下のような感じ。
・HTMLで生成されたフォームに値を入力。
・送信ボタンを押すと、ページ遷移し、入力した内容が表示される。
・戻るリンクを押すと、入力した内容が保持されたまま。
こんな感じです。
それでは、入力画面のソースです。
<get_and_post.php>
<?php
/** 初期値 **/
$myName = "";
$myID = "";
$myAge = "";
$myFrom = "";
/** GET受け取り **/
if( $_GET['myName'] ) {
$myName = $_GET['myName'];
if( $_GET['page'] ) {
$page = $_GET['page'];
$myID = $_GET['myID'];
$myAge = $_GET['myAge'];
$myFrom = $_GET['myFrom'];
echo "DBには繋がなくて大丈夫です";
} else {
echo "DBに繋いで値を取得してみよう";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<TITLE>GETとPOST</TITLE>
</HEAD>
<BODY>
<form method="post" action="./get_and_post_return.php">
名前:<input type="text" id="myName" name="myName" value="<?php echo $myName; ?>"><br>
番号:<input type="text" id="myID" name="myID" value="<?php echo $myID; ?>"><br>
年齢:<input type="text" id="myAge" name="myAge" value="<?php echo $myAge; ?>"><br>
出身:<input type="text" id="myFrom" name="myFrom" value="<?php echo $myFrom; ?>"><br>
<input type="submit" id="send" name="send" value="POSTで送信">
</form>
<br>
<a href="./get_and_post.php">値のリセット</a>
</BODY>
</HTML>
GETで受け取る値があるか無いかで処理を変えてます。
「DBに~」の記述は無視しといて下さい。
次に、出力及び入力画面へ戻る画面のソースです。
<get_and_post_return.php>
<?php
$myName = $_POST['myName'];
$myID = $_POST['myID'];
$myAge = $_POST['myAge'];
$myFrom = $_POST['myFrom'];
$page = "confirm";
$backURL = "./get_and_post.php";
$sendURL = "?myName=" . $myName . "&myID=" . $myID . "&myAge=" . $myAge . "&myFrom=" . $myFrom;
$pageURL = "&page=" . $page;
$URL = $backURL . $sendURL . $pageURL;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<TITLE>GETとPOST</TITLE>
</HEAD>
<BODY>
<p>入力した内容が表示されます</p>
<?php
echo $myName . "<br>";
echo $myID . "<br>";
echo $myAge . "<br>";
echo $myFrom . "<br>";
?>
<hr>
<p>送り返したい値:<?php echo $sendURL; ?></p>
<p>送信してみるURL:<?php echo $URL; ?></p>
<a href="<?php echo $URL; ?>">
テキストリンクで送信してみる</a>
</BODY>
</HTML>
POSTでサーバへ送ります。
確認画面で、修正などが必要な場合は、GETで送り返します。
DBなどから最初に値を取得するなどする場合は、GETにページ遷移の値を付与するといいかも。
他にいい方法ありそうだけど。
とりあえず、こんな感じで、メモ。