[解決済み】PHP 変数を次のページに渡す
質問
とても簡単そうなのですが、良い方法が見つかりません。
最初のページで変数を作成するとします。
$myVariable = "Some text";
そして、そのページに対するフォームのアクションは "Page2.php"です。ではPage2.phpで、どうすればその変数にアクセスできるのでしょうか?セッションでできることは知っていますが、単純な文字列を渡すには多すぎると思いますし、私は単純な文字列(ファイル名)を渡すだけでいいのです。
どうすれば実現できるのでしょうか?
ありがとうございます。
解決方法は?
HTML/HTTPはステートレスです。言い換えれば、あなたが前のページで行ったこと/見たことは、現在のページとは全く関係がありません。 ただし セッション、クッキー、GET/POST変数のようなものを使用する場合。セッションとクッキーは非常に使いやすく、セッションはクッキーよりも圧倒的に安全です。より安全ですが、完全に安全というわけではありません。
セッションです。
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
を忘れずに実行してください。
session_start();
ステートメントにアクセスする前に、これらの両方のページで
$_SESSION
の配列が作成される前に、またブラウザに出力される前に。
クッキーです。
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
セッションとクッキーの大きな違いは、変数の値が、セッションを使用している場合はサーバーに、クッキーを使用している場合はクライアントに保存されることです。セッション間でデータを持続させたい場合を除き、セッションの代わりにクッキーを使用する良い理由は思いつきませんが、その場合でも、DBに保存し、ユーザー名またはIDに基づいてそれを取得する方が良いかもしれません。
GETとPOST
リンク先で変数を追加すると、次のページに進みます。
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
これにより、GET変数が作成されます。
もう一つの方法は、2ページ目に送信するフォームに隠しフィールドを含めることです。
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
そして、2ページ目。
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
フォームのメソッドを変更するだけで
post
は、postで行う場合。どちらも同じように安全ではありませんが、GETの方がハックしやすいのです。
新しいリクエストは、セッションデータを除けば、まったく新しいスクリプトのインスタンスであるという事実は、私が初めてPHPでコーディングを始めたときに、私を捕らえました。しかし、一度それに慣れると、とてもシンプルになります。
関連
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] JavaScriptで変数が配列であるかどうかを確認する方法は?
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。PHPを使用した「未定義のオフセット
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法