9

私たちのサイトの1ページに、次のコードがあります。

$_SESSION['returnURL'] = "/store/checkout/onepage";

さらに下に、このボタンコントロール:

<button type="button" title="Register Today" class="button" onclick="window.location = '/register/';" id="BecomeMember"><span><span>Become a Member Today</span></span></button>

さて、登録テンプレートには、次のコードがあります。

<input type="hidden" name="returnURL" id="returnURL" value="<?php if(isset($_SESSION['returnURL'])) { echo $_SESSION['returnURL']; } else { echo '/'; } ?>" />

ただし、値は/としてのみ表示されます。

これを引き起こしているのは何が起こっているのでしょうか?

4

9 に答える 9

13

first.php

<?php
session_start();
$_SESSION['returnURL'] = "/store/checkout/onepage";
echo '<a href="second.php">Pass session to another page</a>';
?>

second.php

<?php
session_start();
echo 'returnURL = ' . $_SESSION['returnURL'];
?>

session_start()したがって、両方のファイルに書き込む必要があります

于 2012-05-23T17:40:09.557 に答える
4

この問題を解決するには、次のことを行う必要があります。

session_start()1)スクリプトの最初で、何よりも先に呼び出されることを確認します。

2)設定を解除するもの$_SESSION$_SESSION['returnURL']

于 2012-05-23T17:41:15.633 に答える
2

私はこれをこのように機能させることができました

session_start();
$returnurl = "/store/checkout/onepage";
$_SESSION['returnURL'] = $returnurl;        
于 2012-05-23T19:16:22.403 に答える
0

私がやったことは、投稿変数をページに送信することでした。ExpressionEngineとMagentoのセッションの違いにより、Cookieだけでなくセッション変数の使用も禁止されています。

于 2012-06-04T18:04:25.397 に答える
0

同じ種類の問題が発生したことに資金を提供しました。セッションはFirefoxで正常に機能しますが、Chromeでは機能しません。セッションを作成し、session_id()を出力して、作成されているかどうかを確認するテストスクリプトを作成しました。 、このスクリプトを実行した後、ページが読み込まれるたびにsession_id()が変更され、phpが日付/時刻が設定されていないことについて警告をスローしていることに気付きました。次に追加しました

date_default_timezone_set('America / Los_Angeles');

スクリプトの開始まで、これにより、ページが読み込まれるたびに新しいsession_id()が生成されなくなり、問題が修正されました。(私の問題は私のサブドメインにのみ表示され、トップレベルドメインには表示されないように見えたことは注目に値するかもしれません)

于 2013-11-30T22:37:37.393 に答える
0

作業中のサーバーがいっぱいで、値を格納するスペースがなかったため、セッションが機能しませんでした。サーバーに空き容量があることを確認してください。

于 2015-07-22T19:50:27.450 に答える
0

session_start()関数は、ドキュメントの最初のものでなければなりません。HTMLタグの前。

session_start();
于 2019-05-20T08:52:35.143 に答える
0
    <!--First Line like as-->
 <?php session_start();?>
 <!-- Now, your php or html codes-->
<html>
  <head>
   .....
   .....
于 2020-09-21T12:11:01.897 に答える
-1

私は、通常のセッションを処理する方法が異なる多くのCMSとフレームワークを見てきました。上記の基本的な2ライナーが機能しない場合(現在のソフトウェアに干渉するため)、同じ機能にCookieを使用できます。ブラウザを閉じてもCookieは削除されないため、変数を解放するタイミングを明示的に指定する必要があります(unsetを使用)。

$_COOKIE["something"] = 'value';
echo $_COOKIE["something"];
unset($_COOKIE["something"]);
于 2016-02-22T13:46:25.217 に答える