2010-03-07 3 views
1

Ma classe de formulaire:Tous les champs sont enregistrés dans ma base de données MySQL

<?php 

require_once ('Zend\Form.php'); 

class Sergio_Form_registrationform extends Zend_Form { 
    public function init(){  
     /*********************USERNAME**********************/ 
     $username = new Zend_Form_Element_Text('username'); 
     $alnumValidator = new Zend_Validate_Alnum(); 

     $username ->setRequired(true) 
        ->setLabel('Username:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($username); 

     /*********************EMAIL**********************/ 
     $email = new Zend_Form_Element_Text('email'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $email  ->setRequired(true) 
        ->setLabel('EMail:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($email); 

     /*********************PASSWORD**********************/ 
     $password = new Zend_Form_Element_Password('password'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $password ->setRequired(true) 
        ->setLabel('Password:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($password); 

     /*********************NAME**********************/ 
     $name = new Zend_Form_Element_Text('name'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $name  ->setRequired(true) 
        ->setLabel('Name:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($name); 

     /*********************LASTNAME**********************/ 
     $lastname = new Zend_Form_Element_Text('lastname'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $lastname ->setRequired(true) 
        ->setLabel('Last Name:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($lastname); 

     /*********************DATEOFBIRTH**********************/ 
     $dateofbirth = new Zend_Form_Element_Text('dateofbirth'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $dateofbirth->setRequired(true) 
        ->setLabel('Date of Birth:') 
        ->addFilter('StringToLower') 
        ->addValidator('alnum') 
        ->addValidator('regex', false, array('/^[a-z]+/')) 
        ->addValidator('stringLength',false,array(6,20)); 
     $this->addElement($dateofbirth); 

     /*********************AVATAR**********************/ 
     $avatar = new Zend_Form_Element_File('avatar'); 
     $alnumValidator = new Zend_Validate_Alnum(); 


     $avatar  ->setRequired(true) 
        ->setLabel('Please select a display picture:'); 
     $this->addElement($avatar); 

     /*********************SUBMIT**********************/ 

     $this->addElement('submit', 'login', array('label' => 'Login')); 
    } 
} 
?> 

Et là, je suis les choses sauver:

<?php 

require_once ('Zend\Controller\Action.php'); 

class RegistrationController extends Zend_Controller_Action { 
    //For each of these methods, you MUST have another phtml file in the respective View folder. 
    public function indexAction(){ 
     $form = new Sergio_Form_registrationform(); 
     $this->view->form = $form; 
    } 

    public function init(){ 
     $this->_setParam('db',Zend_Db_Table_Abstract::getDefaultAdapter()); 
    } 

    public function saveforminformationAction(){ 
     $form = new Sergio_Form_registrationform(); 
     $request = $this->getRequest(); 

     //if($request->isPost() && $form->isValid($_POST)){   
      $data = $form->getValues(); 
      unset($data['login']); 
      $db = $this->_getParam('db'); 

      $db->insert('user',$data);   
     //}  
    } 
} 

?> 

Et voici une capture d'écran de la façon dont les choses sont enregistrées:

alt text

Qu'est-ce que je fais mal? Même les dates que j'écris ne sont pas sauvegardées.

est ici la structure de la table:

alt text

+0

est-error_reporting activé? Si ce n'est pas le cas, réglez-le sur -1 et voyez s'il y a des erreurs. – Gordon

+0

Comment je fais ça? –

+0

Dans votre application.ini, il devrait y avoir deux lignes: 'phpSettings.display_startup_errors = 1' et' phpSettings.display_errors = 1' pour l'environnement dans lequel vous exécutez ceci. Si cela ne montre aucune erreur, essayez d'écrire ' error_reporting (-1) 'juste au-dessus du script du contrôleur – Gordon

Répondre

0

Vous n'êtes pas le réglage des valeurs du formulaire méthode POST.

Soit décommenter la ligne avec

$form->isValid($_POST) 

ou appelez

$form->populate($_POST) 
Questions connexes