回答受付が終了しました

ID非公開

2020/8/3 2:48

22回答

phpで$変数を違うurlへ出力させる方法を教えてください

phpで$変数を違うurlへ出力させる方法を教えてください

補足

test1.phpで作った「$変数」をtest2.phpにリンクを指定して$_GETを使って表示させたいのですがこの場合formタグを使えばいいのでしょうか? php内でformタグの使い方がわからないのと受け取りのtest2.phpでは同表記させればいいのでしょう。わかりづらい説明ですみません。

PHP12閲覧

回答(2件)

0

質問の意図と合っているかわかりませんが、 PHPで最もかんたんな変数の持ち運び方法は、SESSIONかなと思います。 ■変数を保存するページ <?php session_start(); $_SESSION['適当な変数名'] = $変数; ■変数内容を表示するページ <?php session_start(); echo $_SESSION['適当な変数名']; (エラー制御は割愛) ※SESSIONを扱うときは、ページの「先頭」で session_start(); をおこなう必要があります。ページの途中でやってもだめです。 ※SESSIONは、その名の通り通信セッションごとの変数なので、アクセスブラウザが違えば共有されませんし、標準ではブラウザを閉じると消えます。 ※SESSIONのデータは、WEBサーバ側に保存されています。(自動で)ブラウザ側のクッキーにIDをいれておいて、紐付けて引き出すような動作をしています。

0

>phpで$変数を違うurlへ出力させる方法を教えてください 違うurlへ出力とは?どういう意味でしょうか? そのurlのphpスクリプトへ値を渡す(もしくはそのurlのhtmlに渡してJavaScriptで値を得る)というのであれば、pathinfoでもQueryStringでも「引き渡す」手法はありますが、そもそもhttpレスポンスのLocationヘッダで遷移するのかanchor要素やform要素を経由して引き渡すのかも不明です。 何をどうしたいのか(質問の文からだけでは)よくわかりません。もう少し「やりたいこと」を補足してください。

「test2.php で表示させる」ときには、何からのユーザのアクション(anchor要素のクリックとかform要素の送信ボタンのクリックとか)を必要とする・・・ということでいいのですよね(不要ならもっと簡単に終わる話なので)。 test1.php で $str を生成したとして、 【 $_GET['str'] で引き渡す 】 その1 <a href="test2.php?str=<?= urlencode($str) ?>">LINK</a> その2 <form action="test2.php?str=<?= urlencode($str) ?>" method="post"> <input type="submit"> </form> (Form内にinput要素がデータがあればPOSTされる) 【 $_POST['str']で引き渡す 】 <form action="test2.php" methos="post"> <input type="hidden" name="str" value="<?= urlencode($str) ?>"> <input type="submit"> </form> のように引き渡せばいいと思います。 まぁいろいろ面倒なら「cookieに覚えさせる」とか「sessionに格納する」という手もありますが、そこまではしないという前提で(汗