変数を$_SESSION
変数に格納する際に問題があります。 私はZendフレームワークを使用しており、3ステップのアプリケーションフォームを作成しています。さて、最初のステップが完了すると、データをMySQLデータベースに保存し、返された挿入IDをセッション変数に格納します。それから私は別のコントローラにページを転送します(ステップ2)。リクエストを転送すると、すべて正常に動作し、セッション変数からIDを読み取ることができます。しかし、2番目のフォーム(ステップ2の同じコントローラをアクションとして持つ)を送信すると、セッションは失われます。私はvar_dump
を試して、NULL
を返します。ここでZendフレームワークによるセッション永続性
はコードです:
public function organizationAction()
{
$this->view->vals="";
$form=$this->getOrganizationForm();
$this->aplid=$_SESSION['appid'];
var_dump($_SESSION);
$firsttime=$this->getRequest()->getParam('firsttime',0);
//if(null==$this->aplid) $this->_forward('index','index');
if ($this->getRequest()->isPost() && $firsttime==0) {
if (!$form->isValid($_POST)) {
// Failed validation; redisplay form
$this->view->form = $form;
return false;
}
var_dump($_SESSION);
$values = $form->getValues();
$db=new Util_Database();
if($db->insertOrganization($values,$this->aplid))
$this->_forward('final');
else echo "An error occured while attempting to submit data. Please try agian";
}
$this->view->form=$form;
}
は、ここでの問題は何ですか?私はsession_id
をフォームに格納してから、session_start()
の前に設定しようとしましたが、まったく新しいセッションが開始されます。助けてください!
Zendフレームワークで作業するときに、直接$ _SESSION変数を使用しないでください(PHP独自のセッション関数もありません)。 Zendには、対応するクラスを持つ独自のセッション管理システムがあります。 ...あなたは文書を読んでいないという理由で投票を受けるべきです:P – olanod
セッションを処理するために別々のクラスを持っているかどうか分かりませんでした。初心者から本を学んだ後、すぐに現実世界のアプリケーションを作成しようとするのは欠点です。ヘッドアップをありがとう! :) –