web-dev-qa-db-ja.com

フォームまたはページのURLを使用せずに、2つのPHPページ間で変数を渡す

1つのPHPページから別のページにいくつかの変数を渡します。フォームを使用していません。変数は、問題が発生した場合にターゲットページに表示されるメッセージです。これらの変数を他のPHPページに渡しながら、それらを保持しながらinvisible

例えば次の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 = Problem of file uploading。これは有効な.Zipファイルではありません」などのパラメータを持つ大きなURLアドレスは必要ありません。この問題を回避するために私のページのリダイレクトを変更する時間。

20
Lefteris008

セッションはあなたにとって良い選択です。 PHPマニュアル の次の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はPHPの定義済み定数です セッション名とそのIDが含まれています。 SID値の例:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
39
Daniel Kmak

以下に簡単なリストを示します。

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

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

  • カスタムCookie-not*常に*動作します。

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

  • mySQL、Postgres、またはRedisやMemcachedなどのデータベース(たとえば、IPアドレスで「ロック」された自家製のセッションに類似)

  • APC-データベースと同様に、not*常に*動作します。

  • HTTP_REFERRER

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

7
Nick
<?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'];
?>
4
user2406160

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

次に、page2.phpの上部に次を追加します。

<?php
session_start();
3
ramonovski

Sessions を使用します。

ページ1:

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

2ページ:

session_start();
var_dump($_SESSION['message']);
2
Putr