IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Insertion des données dans Zend [ZF 1.11]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut Insertion des données dans Zend
    Bonjour tous le monde;

    Comme je m'autoforme sur Zend Framwork, j'ai trouvé sur la toile une application bien faite. J'arrive à l'installer et de la faire tourner sur mon localhost. J'essai maintenant à décortiquer le code mais je me trouve coincer sur le faite comment il insére les données dans la base de données je dis bien quand je fais des tests d'insertion cela marche à merveille. Il s'agit d'ajout d'un User. Alors quand je me suis rendu sur la classe Model_DbTable_Users biensur qui se trouve model\DbTable\users.php elle completement vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    class Model_DbTable_Users extends Zend_Db_Table_Abstract {
     
        protected $_name = "users";
     
    }
     
    ?>
    et dans UserController.php j'ai ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
        public function registerAction() {
            $form = new Model_Form_UserRegister ( );
            $this->view->form = $form;
            if ($this->_request->isPost ()) {
                $formData = $this->_request->getPost ();
                if ($form->isValid ( $formData )) {
                    $datas = $formData;
                    unset($datas['submit']);
                    unset($datas['password2']);
                    unset($datas['cgv']);
                    $datas['password'] = md5($datas['password']);
                    $email = $datas['email'];
                    $datas = array_map('strtolower', $datas);
                    $datas = array_map('ucwords', $datas);
                    $datas['email'] = $email;
                    $Users = new Model_DbTable_Users();
     
                    $Users->insert($datas);
                   /* $mail = new Zend_Mail();
                    $mail->setBodyHtml('Nous avons bien pris en compte votre inscription au site');
                    $mail->setFrom($email, 'TP1-Ecommerce');
                    $mail->addTo($email);
                    $mail->setSubject('Bienvenue sur TP1-Ecommerce');
                    $mail->send();*/
                    $email = $form->getValue('email');
                    $password = $form->getValue('password');
                    $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
                    $authAdapter->setTableName('users')
                            ->setIdentityColumn('email')
                            ->setCredentialColumn('password')
                            ->setCredentialTreatment('MD5(?)')
                            ->setIdentity($email)
                            ->setCredential($password);
                    $authAuthenticate = $authAdapter->authenticate();
                    $storage = Zend_Auth::getInstance()->getStorage();
                    $storage->write($authAdapter->getResultRowObject(null, 'password'));
                    $session = Zend_Registry::get('session');
                    $session->panier =  new Model_Panier_Panier();
                    if ($this->addToCartTemp()) {
                        return $this->_helper->redirector('index','panier');
                    }
                    $this->_helper->redirector('index','index');
                }
            }
        }
    Le formulaire est composé des éléments suivant :
    UserRegister.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
     
    class Model_Form_UserRegister extends Zend_Form {
     
        public function init() {
     
            $this->setName ( 'UserRegister' );
            $this->setAction('../user/register');
     
            $email = new Model_Form_EText ( 'email', 'Email : ' );
            $email->addValidator ( 'EmailAddress' )->addValidator(new Zend_Validate_Db_NoRecordExists('users','email'));
     
            $password = new Zend_Form_Element_Password ( 'password' );
            $password->setLabel ( 'Mot de passe : ')->addFilter ( 'StripTags' )->addFilter ( 'StringTrim' )->setRequired ( true );
     
            $password2 = new Zend_Form_Element_Password ( 'password2' );
            $password2->setLabel ( 'Vérification du mot de passe : ' )->addFilter ( 'StripTags' )->addFilter ( 'StringTrim' );
     
            $nom = new Model_Form_EText ( 'nom', 'Nom : ' );
            $prenom = new Model_Form_EText ( 'prenom', 'Prénom : ' );
            $adresse = new Model_Form_EText ( 'adresse', 'Adresse : ' );
            $codePostale = new Model_Form_EText ( 'codePostale', 'Code Postale : ' );
            $codePostale->addValidator(new Zend_Validate_Regex('#[0-9]{2} ?[0-9]{3}#'));
            $ville = new Model_Form_EText ( 'ville', 'Ville : ' );
            $telMobile = new Model_Form_EText ( 'telMobile', 'Numéro de téléphone mobile : ' );
            $telMobile->setRequired(false)->addValidator('Digits')->addValidator(new Zend_Validate_StringLength(10));
            $telFixe = new Model_Form_EText ( 'telFixe', 'Numéro de téléphone fixe : ' );
            $telFixe->setRequired(false)->addValidator('Digits')->addValidator(new Zend_Validate_StringLength(10));
            $newsletter = new Zend_Form_Element_Checkbox('newsletter');
            $newsletter->setLabel('En cochant cette case, je m\'abonne à la newsletter');
            $cgv = new Zend_Form_Element_Checkbox('cgv');
            $cgv ->setLabel('En cochant cette case, j\'accepte les CGV')->setRequired(true);
            $submit = new Zend_Form_Element_Submit ( 'submit' );
            $submit->setAttrib ( 'class', 'submitbutton' )->setLabel ( 'Continuer' )->setAttrib('class', 'submit');
     
     
            $elements = array ($email, $password, $password2, $nom, $prenom, $adresse,$codePostale,$ville,$telMobile,$telFixe,$newsletter,$cgv ,$submit );
            $this->addElements ( $elements );
        }
    Est ce que cette ligne $formData = $this->_request->getPost (); est un tableau qui contient tous les champs à inserer dans la table users ? Est ce que c'est facon pour proteger mes champs contre toutes les intrusions malveillantes?

    Merci de m'éclairer ce qui se passe.

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Regarde la documentation attentivement et reviens nous voir ensuite.
    Il y a des limites sur les questions.

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    Je serais reconnaisssante si tu me reponds directement sans me perdre. Sinon merci de m'orienter vers un document ou je pourais trouver la réponse. Car je perds un temps fou dans la recherche. Même sur le site officiel du zend je ne trouve pas sauf si je suis nulle

  4. #4
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Allez je vais être sympa.
    http://lmgtfy.com/?q=Zend_Form
    Si tu ne prends pas la peine de chercher une minimum, je sanctionnerai au prochain message.

    Nous ne sommes pas là pour tout faire.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion des données dans une BD à partir de C#
    Par etoile_de_vie dans le forum C#
    Réponses: 9
    Dernier message: 15/04/2008, 09h46
  2. nouveau problême d'insertion des données dans la base de données
    Par tchimou dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/03/2007, 15h32
  3. [MySQL] insertion des données dans la base
    Par ciel65 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/02/2007, 11h10
  4. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17
  5. [C#] problème avec l'insertion des données dans MySQL
    Par madica dans le forum Accès aux données
    Réponses: 7
    Dernier message: 08/11/2005, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo