сравнение данных не удается, даже если значение одинаково - PullRequest
0 голосов
/ 10 августа 2011

Я работаю над кодом для теста викторины, здесь

            function run($id){
            //Is this the first question ?
            if($this->data){
                $question_no = $this->Session->read('Test.qno'); //0
                $last_answer = $this->Session->read('Test.last_answer');
                $question_no = $question_no + 1;                 //1
                $this->Session->write('Test.qno',$question_no);  //Test.qno = 1
                $this->Session->setFlash('last_answer'.$this->data['Test']['answer']);
                $this->redirect($this->referer());

                if($this->data['Test']['answer']==$last_answer){
                    $score = $this->Session->read('Test.score');
                    $score = $score + 1 ;
                    $this->Session->write('Test.score',$score);
                    $this->Session->setFlash('Correct answer');
                }
            }

            $question_no = $this->Session->read('Test.qno');    //question_no =
            if(!$question_no){
                $question_no = 0;
                $this->Session->write('Test.qno',$question_no);
                $this->Session->write('Test.score',0);
            }
            $question = $this->Test->Question->find('first',array('conditions'=>array('Question.test_id ='=>$id),'offset'=>$question_no));
            $answer = $question['Question']['answer'];
            $this->Session->write('Test.last_answer',$answer);
            if(empty($question)){
                $score = $this->Session->read('Test.score');
                $this->Session->setFlash('Your Score is '.$score);
                $this->Session->write('Test.qno',0);
                $this->redirect(array('controller'=>'States','action'=>'index'));
                }
            else{
                $this->set(compact('question'));
                }
        }

здесь сравнение данных не удается, даже если они оба содержат одно и то же значение, может кто-нибудь сказать мне, почему, здесь $ last_answer извлекается из сессии и содержит число.

$ this-> data ['Test'] ['answer'] берется из формы с переключателем

1 Ответ

0 голосов
/ 10 августа 2011

Добавить

debug( '"'.$this->data['Test']['answer'].'"' );
debug( '"'.$last_answer.'"' );

, чтобы подтвердить, что они действительно одинаковы.

Также убедитесь, что это не проблема с сессиями (т.е. условие истинно, но код внутри ничего не делает): добавьте debug( "true" ); внутри блока if и подтвердите, что вы видите сообщение.

ОБНОВЛЕНИЕ после просмотра всего кода:

У вас есть $this->redirect() прямо перед блоком if! Конечно, код, который вы первоначально разместили, ничего не делает, потому что вы перенаправляете пользователя на другую страницу еще до того, как выполнение достигнет ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...