私はそれをエコーしようと同じページでクリアすると、セッション変数が空であるという奇妙な問題が発生しています。ここで私がしようとしているものの迅速なタイプアップです。同じページでセッション変数が消去されてもエコーされませんか?
この例では、
ページA:
$_SESSION['referer'] = 'abc123';
header('Location: http://www.test.com/pageb.php');
exit();
ページB:今すぐ
function get_referer() {
$referer = '';
if (isset($_SESSION['referer'])) {
$referer = $_SESSION['referer'];
$_SESSION['referer'] = null;
unset($_SESSION['referer']);
}
echo $referer;
}
私は機能を持つページBにこれを行う...
私はそれを実行した場合すべてそれ自身で動作します:
get_referer();
エコーを入力の値属性内で実行すると(呼び出された後に消去されるため、ページ上で関数を1回だけ実行することを確認しています)、ページのソースを表示すると何もエコーしません。
<input type="hidden" name="referer" value="<?php get_referer(); ?>" />
しかし、面白いことに、私が入力タイプ= "テキスト"を作成すると、それはうまく動作します。
<input type="text" name="referer" value="<?php get_referer(); ?>" />
問題のみ入力タイプ=「隠し」の値属性に
私は再現できません。してください、私たちに完全なソースコードを与えてください。両方のページで 'session_start()'を覚えていると思いますか? – kba
問題を特定してデモンストレーションするうまい仕事(私は助けてもいけません)。 – octern
@Kristian Antonsen、私は私の例を試して、それが元の文脈の下で動作したことに気づいた。質問を更新して問題をさらに詳しく調べました。 – Fase