22

ある PHP ページから別のページにいくつかの変数を渡したいと考えています。私はフォームを使用していません。変数は、何か問題が発生した場合にターゲット ページに表示されるメッセージです。これらの変数を見えないようにしながら、これらの変数を他の PHP ページに渡すにはどうすればよいですか?

たとえば、次の 2 つの変数があるとします。

//Original page
$message1 = "A message";
$message2 = "Another message";

そして、それらをpage1.phpからpage2.phpに渡したいです。URLを介してそれらを渡したくありません。

//I don't want
'page2.php?message='.$message1.'&message2='.$message2

変数を送信する方法はありますか (おそらく $_POST を介して?)。なぜ非表示にしたいのか疑問に思っている人がいれば、「&message=ファイルのアップロード中に問題が発生しました。これは有効な .zip ファイルではありません」のようなパラメータを含む大きな URL アドレスは必要ありません。この問題を回避するために、ページのリダイレクトを変更する時が来ました。

4

6 に答える 6

41

セッションはあなたにとって良い選択です。PHP Manualの次の 2 つの例を見てください。

page1.php のコード

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

page2.php のコード

<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

物事を片付けるために-SIDは、セッション名とそのIDを含むPHPの事前定義された定数です。SID 値の例:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
于 2013-05-27T18:12:00.487 に答える
7

ここに簡単なリストがあります:

  • JSON を使用した JQuery。( http://www.w3schools.com/xml/xml_http.asp )

  • $_SESSION - おそらく最善の方法

  • カスタム Cookie - *常に*機能するとは限りません。

  • HTTP ヘッダー - 一部のプロキシはそれをブロックできます。

  • MySQL、Postgres、または Redis や Memcached などのデータベース (たとえば、自家製のセッションに似ており、IP アドレスによって「ロック」されています)

  • APC - データベースに似ていますが、*常に*機能するとは限りません。

  • HTTP_REFERRER

  • URL ハッシュ パラメータ 、例: http://domain.com/page.php#param - ハッシュを収集するには JavaScript が必要です。- gmailはこれを多用します。

于 2013-05-27T18:18:52.377 に答える
4
<?php
session_start();

$message1 = "A message";
$message2 = "Another message";

$_SESSION['firstMessage'] = $message1;
$_SESSION['secondMessage'] = $message2; 
?>

セッションをページ 1 に保存し、次にページ 2 に保存します。

<?php
session_start();

echo $_SESSION['firstMessage'];
echo $_SESSION['secondMessage'];
?>
于 2013-05-27T18:11:55.783 に答える
3

に両方を追加しようとしました$_SESSIONか?

次に、page2.php の先頭に以下を追加します。

<?php
session_start();
于 2013-05-27T18:10:25.897 に答える
2

セッションを使用します。

ページ1:

session_start();
$_SESSION['message'] = "Some message"

ページ2:

session_start();
var_dump($_SESSION['message']);
于 2013-05-27T18:11:30.517 に答える