セッションを使わずに遷移先画面に変数の値を渡すには?
<input type="hidden" value="myID">みたいな隠しフォームで
行く先々の画面に値をPOSTで渡してきました。
他方、 header("Location: mypage.php")
のように画面を遷移させる場合、遷移先の画面に
$_POST["myID"]のように値を渡すことはできませんか?
この場合session_start();を使って、$_SESSION["myID"]のように値を
渡す(保持する)のが王道なのでしょうか?
セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
できれば使いたくないのです。
具体的に説明しますと、前にこの掲示板で教えていただいた、次の例を使っています。
入力文字チェックをかけたいのでPHP_SELFで同じ画面を呼び出して、
問題なければmypage.phpにリダイレクトさせる枠組みですが、
header("Location: mypage.php");という風に遷移した場合は、
遷移先のmypage.phpでは、$_POST["myID"]はPOSTされてきませんよね
(値を受け取れませんよね)??
妙案あればご教示下さい。
<?php
if ($_POST["reg"] == "" ) $errFlg = true;
if (!$errFlg) {
if (strlen($_POST["myName"]) > 30) {
$errFlg = true;
$errStr["myName"] = "30字以下";
}
$errMsg = "エラー!!";
}
if ($errFlg) {
?>
<html>
<body>
<form method="post" action="<?php $_SERVER["PHP_SELF"] ?>">
氏名 <input type="text" name="myName" value="<?= $_POST["myName"] ?>"><?= $errStr["myName"] ?>
<input type="hidden" name="myID" value="<?= $_POST["myID"] ?>">
</form>
<input type="submit" name="reg" value="登録">
</body>
</html>
<?php
} else {
$sql = "update mytable set myID = 'xxxx'";
$rst = mysql_query($sql, $con);
header("Location: mypage.php");
}
?>
お礼
お答え頂きありがとうございます >GETかPOST GETやpostでも送れるのですね勉強になりました クッキーは同じページで削除できなかったのですね、変数っぽいので削除できるのではと思ってしまいました