1

私は Cakephp を使用しています。最近、セッションでデータを保存する際に問題に直面しています。コントローラー/アクションに値を送信するログインページを作成しました。このように受け取ります。

function ajaxCall() {
            $this->autoRender = false;
            $this->layout = 'ajax';
            $arrData = $this->params['url'];

            if(!empty($arrData)){
                if($arrData['submit']=='Y'){
                    $userObj = new Api(); // create an instance of the user class
                    $userInfo = $userObj->login($arrData['email'],$arrData['password']); // call the api login user methods
                    $xml = simplexml_load_string($userInfo);
                    $userId = $xml->message->id;
                    if($userId != "0" && $userId != ""){
                        $this->setCurrentUserId($userId);
                        echo "success";
                    }
                    else{
                        echo "no"; 

                    }
                }  
            }
        }

public function setCurrentUserId($userId)
        {

            //Is session alive 
            //if not then redirect to session time out page
            //session_start();
            //session_register("");
            if($userId == 419 || $userId == 423){
                $userId1 = $this->Session->write('userId', $userId);
                }else{
                $userId1 = $this->Session->write('userId', $userId);
            }

            return $userId1;
        }

私のコントローラーには、ヘルパー、コンポーネントを含めるためのこれらの行も含まれています

    public $components = array('Session');
    public $helpers = array('Html','Session');

そしてcore.phpファイルで、セッションを次のように設定しました-

Configure::write('Session', array(
    'defaults' => 'php', 'ini' => array('session.auto_start' => 1)
));

セッションでuserIdを保存できないので、助けてください

ありがとう

4

1 に答える 1

1

インターネット上で、認証と承認を備えた簡単なアプリケーションを作成するためのCakePHPクックブックを見つけることができます:book.cakephp.org

ここでは、CakePHPの組み込みのAuthオブジェクトを使用したログインアクションでUsersController、ユーザーモデル、ログイン用のビューなどを作成する方法の非常に簡単な例を見つけることができます-ログインロジック全体を記述する必要はありません-Authオブジェクトはあなたのためにほとんどを行います。

あなたがそれを楽しむことを願っています!

于 2012-06-19T08:59:25.540 に答える