HI, Guys
I follow the actionContact of SiteController to do the a actionRegister of UserController
I modify ContactForm.php to generate a RegisterForm.php
I had no idea why it will generate "Cannot modify header information "
when do the "$this->refresh();"
I used headers_sent to check where the header is sent.
I found headers will be sent when "$register = new RegisterForm();"
no matter post action or not …
any doc i miss ?
could anybody do me a favor ?
thx~
This is my code
UserController
  /**
   * register user
   */
  public function actionRegister()
  {
    $register = new RegisterForm();
    /*
    if ( headers_sent() ) {
      print 'sent';exit;
    }
    */
    if(isset($_POST['RegisterForm']))
    {
      $register->attributes=$_POST['RegisterForm'];
      if($register->validate())
      {
        Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
        $this->refresh();
      }
    }
    $this->render('register',array('register'=>$register));
  }
RegisterForm
<?php
/**
 * RegisterForm class.
 * RegisterForm is the data structure for keeping
 * contact form data. It is used by the 'contact' action of 'SiteController'.
 */
class RegisterForm extends CFormModel
{
  public $account;
  public $password;
  public $name;
  public $gender;
  public $email;
  public $company_name;
  public $country;
  public $fax;
  public $mobile;
  public $postcode_id;
  public $verifyCode;
  /**
   * Declares the validation rules.
   */
  public function rules()
  {
    return array(
      // name, email are required
      array('account, password, name, gender, email', 'required'),
      // email has to be a valid email address
      array('email', 'email'),
      // verifyCode needs to be entered correctly
      array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd')),
    );
  }
  /**
   * Declares customized attribute labels.
   * If not declared here, an attribute would have a label that is
   * the same as its name with the first letter in upper case.
   */
  public function attributeLabels()
  {
    return array(
      'verifyCode'=>'Verification Code',
    );
  }
}
