0

$_SESSIONコマンドラインから.phpファイルを出力しようとしましたが、この出力の値をシミュレートできるようにしたいと思います。

試しphp test.php --define $_SESSION["id"]=1ましたが、グローバル変数が設定されていません$_SESSION

私は明らかにコマンドラインを正しく使用していませんが、どうすればよいかわかりません。

それを機能させるためのアイデアはありますか?

どうもありがとう

編集:私の例では、test.phpは次のとおりです:

<? echo $_SESSION['id'];?>
4

2 に答える 2

1
$ cat setsession.php 
<?php
//fixed session:
session_id("fixed");
session_start();
?>
$ cat checksession.php 
<?php
if(!isset($_SESSION['counter'])) $_SESSION['counter'] = 0;

$_SESSION['counter']++;

var_dump($_SESSION);
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(1)
}
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(2)
}
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(3)
}
于 2012-06-19T21:46:19.583 に答える
0

コマンドラインでセッションを意味のある方法で使用することはできません。セッション識別子はCookieに保存されます。コマンドラインはCookieを実行しないため、通常のセッション方法は機能しません。もちろん、$_SESSIONスクリプトの実行中にスーパーグローバルを使用できます。同じスクリプトの異なる呼び出し間でそれが持続することを期待しないでください。

于 2012-06-19T21:38:03.790 に答える