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

  1. #1
    Membre régulier
    Question problème affichage erreur zfbook
    Bonjour,

    Je débute en ZF.
    J'ai voulu démarrer et refaire pas à pas l'application zfbook.
    J'ai d'abord voulu le faire simplement sans aucunes vérification de droits, caches sessions.

    Juste ajouter/modifier une réservation.

    Mais j'arrive à comprendre comment modifier (c'est ok). Mais lors de l'ajout d'une reservation, cela me sort une erreur. Je ne comprends pas d'où sort le problème.

    Le contrôleur :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <?php
     
    class ReservationController extends Zend_Controller_Action
    {
    	private $_reservationTable;
     
        public function init()
        {
            $this->view->titre = "Réservation des salles";
            $this->view->setEscape('stripslashes');
     
            $this->_reservationTable = new Application_Model_DbTable_Reservation();
     
            $this->_helper->viewRenderer->setNoRender(false);
        }
     
        public function indexAction()
        {
            $this->view->titre = "Application exemple du livre Zend Framework";
        }
     
        public function listAction()
        {
            $this->view->titre = "Liste des réservations";
     
            $roomListTable = new Application_Model_DbTable_Room();
            $rooms = $roomListTable->fetchAll()->toArray();
            $Troom = array();
            foreach ($rooms as $room) {
            	$Troom[$room['id']] = $room["name"];
            }
            $this->view->rooms = $Troom;
     
            $userListTable = new Application_Model_DbTable_User();
            $users = $userListTable->fetchAll()->toArray();
            $Tuser = array();
            foreach ($users as $user) {
            	$Tuser[$user['id']] = $user["firstname"]." ".$user["lastname"];
            }
            $this->view->users = $Tuser;
     
            $reservations = $this->_reservationTable->fetchAll()->toArray();
     
     
            // Gestion de la pagination
            $paginator = Zend_Paginator::factory($reservations);
            $paginator->setItemCountPerPage(5);
            $paginator->setCurrentPageNumber($this->getRequest()->getParam('page'));
            $this->view->reservations = $paginator;
        }
     
        public function editAction()
        {
        	// Récupération des paramètres et de la réservation à éditer si nécessaire.
            $params = $this->getRequest()->getParams();
            $isUpdate = isset($params['r']);
            if ($isUpdate) {
                $params['r'] = (int)$params['r'];
     
                $this->view->titre = "Editer une réservation existante";
                $reservation = $this->_reservationTable->find((int)$params['r'])->current();
            } else {
                $this->view->titre = "Ajouter une réservation";
     
                // Création d'une réservation vide s'il s'agit d'un ajout
                $reservation = $this->_reservationTable->createRow();
            }
     
            // Création du formulaire et déclaration des paramètres généraux
            $form = new Application_Form_AjoutRes();
            $form->setAction($this->view->link('reservation' , 'edit', null, '', 'default', !$isUpdate))
                 ->setMethod('post')
                 ->setDefaults($reservation->toArray());
     
            // Création du formulaire et ajout/suppression
            if ($this->getRequest()->isPost() && $form->isValid($_POST)) {
     
                $values = $form->getValues();
                $values['creator'] = 1;
                $reservation->setFromArray(array_intersect_key($values, $reservation->toArray()));
     
                $reservation->save();
     
                // Redirection vers la liste des réservations
                $this->_helper->redirector("list");
            }
     
            // Assignation du formulaire pour affichage
            $this->view->form = $form;
        }
     
        public function deleteAction()
        {
            // Récupération de l'identifiant de la
            // réservation à supprimer
            $params = $this->getRequest()->getParams();
            $idReservation = (int)$params['r'];
     
            $this->_reservationTable->delete("id=$idReservation");
     
            // Redirection sur la page précédente
            $this->_helper->redirector("list");
        }
     
     
    }


    la BDD :
    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
    <?php
     
    class Application_Model_DbTable_Reservation extends Zend_Db_Table_Abstract
    {
     
        /**
         * Nom de la table (vue)
         *
         * @var string
         */
        protected $_name = 'reservation';
     
        protected $_primary = 'id';
     
     
    	public function obtenirReservation($id) {
        	$id = (int)$id;
        	$row = $this->fetchRow('id = '.$id);
        	if(!$row) {
        		throw new Exception("Impossible de trouver l'enregistrement");
        	}
     
        	return $row->toArray();
        }
     
        public function ajouterReservaton($room, $usage, $datebegin, $dateend, $creator) {
        	$data = array(
        		"id_room" => $room,
        		"usage" => $usage,
        		"date_begin" => $datebegin,
        		"date_end" => $dateend,
        		"creator" => $creator
        	);
     
        	$this->insert($data);
        } 
    }

    Les fonctions ne servent à rien mais c'était avant....

    Es-ce que quelqu'un peux me donner une voix ?

    Merci

  2. #2
    Expert éminent sénior
    cela me sort une erreur
    quel erreur ?


    pourquoi ne pas faire une action : add, au lieux de la mixer dans edit

  3. #3
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    quel erreur ?


    pourquoi ne pas faire une action : add, au lieux de la mixer dans edit
    Bonjour,

    Merci de ta réponse.
    L'erreur :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    An error occurred
     
    Application error


    Sinon oui en effet mais je voulais faire comme dans les sources du livre.
    Eux ils mixent...

    C'est pas mieux ?

    Encore merci

  4. #4
    Expert éminent sénior
    non c'est mieux de séparer, ca sera plus claire, mais a quelle moment tu le fait ton : ajouterReservaton la ?

  5. #5
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    non c'est mieux de séparer, ca sera plus claire, mais a quelle moment tu le fait ton : ajouterReservaton la ?
    nul part c'étais dans ma première version en utilisant le tutoriel sur ce site.
    Après j'ai lu le livre de zfbook et pensais que c'étais mieux?

    Encore merci.

  6. #6
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    nul part c'étais dans ma première version en utilisant le tutoriel sur ce site.
    Après j'ai lu le livre de zfbook et pensais que c'étais mieux?

    Encore merci.
    non dans le sens ou deja c'est plus compliquer parce qu'il faut faire une exception, et ensuite niveau role la aussi tu risque d'être coincer.

  7. #7
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    non dans le sens ou deja c'est plus compliquer parce qu'il faut faire une exception, et ensuite niveau role la aussi tu risque d'être coincer.
    Bon en faisant avec une action add, plus de problèmes....

    Merci je vais pouvoir continuer mon apprentissage.

    Question annexe : sur un champs si je tape mettons :
    le ' et " la

    quand je valide, il em donne : le ' et
    Comment je fait pour garder tous ???

    A+

  8. #8
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    Bon en faisant avec une action add, plus de problèmes....

    Merci je vais pouvoir continuer mon apprentissage.

    Question annexe : sur un champs si je tape mettons :
    le ' et " la

    quand je valide, il em donne : le ' et
    Comment je fait pour garder tous ???

    A+
    dans ta source HTML pareil ?

  9. ###raw>post.musername###
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    dans ta source HTML pareil ?
    Je voulais parler dans les champs input du formulaire.


    Si j'enlève le
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $this->view->setEscape('stripslashes');

    du init, et que je met dans le listAction, cela me donne le \' et \" la


    Encore merci.

    A+
      0  0

  10. #10
    Expert éminent sénior
    pas besoin de faire de stripslashes normalement, d'ailleur c'est bizarre qu'il t'en rajoute ils y sont dans la base ?

  11. #11
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    pas besoin de faire de stripslashes normalement, d'ailleur c'est bizarre qu'il t'en rajoute ils y sont dans la base ?
    en base de données, oui ils y sont...

  12. #12
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    en base de données, oui ils y sont...
    aïe, c'est toi qui fait le addslashes ?
    verfie les magic_quote sinon

  13. #13
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    aïe, c'est toi qui fait le addslashes ?
    verfie les magic_quote sinon
    non je ne fais pas de addslashes....

    magic_quote dans la config de PHP c'est ca ?
    ou dans le ini de l'application ?

    EDIT : dans le .htaccess : php_flag magic_quotes_gpc off

    et la il met plus de \.

  14. #14
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    non je ne fais pas de addslashes....

    magic_quote dans la config de PHP c'est ca ?
    ou dans le ini de l'application ?

    EDIT : dans le .htaccess : php_flag magic_quotes_gpc off

    et la il met plus de \.
    oaui par contre tu les a toujours en base ou les anciens
    t'as quelle version de PHP ?

  15. #15
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    oaui par contre tu les a toujours en base ou les anciens
    t'as quelle version de PHP ?
    C'est pas grave. c'est juste pour moi ce programme.



    J'ai PHP 5.3.2 sous MAMP

  16. #16
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    C'est pas grave. c'est juste pour moi ce programme.



    J'ai PHP 5.3.2 sous MAMP
    c'est toi qui avait activé les magic_quote ?

  17. #17
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    c'est toi qui avait activé les magic_quote ?
    C'était activé par défaut de MAMP. Non ce n'est pas moi qui l'ai activé.

  18. #18
    Expert éminent sénior
    Citation Envoyé par Paul75 Voir le message
    C'était activé par défaut de MAMP. Non ce n'est pas moi qui l'ai activé.
    ah les salauds

    tu sait que sous OSX t'as deja un serveur apache + php de configurer, restant biensur a installer mysql, mais c'est encore plus simple que MAMP, pour activer ton serveur c'est dans :
    Préférences Système -> Partage -> (tu coches) Partage Web
    et c'est tout ton serveur apache + php est lancer

  19. #19
    Membre régulier
    Citation Envoyé par stealth35 Voir le message
    ah les salauds

    tu sait que sous OSX t'as deja un serveur apache + php de configurer, restant biensur a installer mysql, mais c'est encore plus simple que MAMP, pour activer ton serveur c'est dans :
    Préférences Système -> Partage -> (tu coches) Partage Web
    et c'est tout ton serveur apache + php est lancer
    Salut,

    Oui je l'utilise en serveur principal.
    J'utilise MAMP par exemple pour les programmes qui ont besoin de FreeType car le PHP de OSX n'es pas installé....

    Sinon j'aurai pas eu besoin de MAMP...

    Encore Merci

  20. #20
    Nouveau Candidat au Club
    chercher à telecharger l appli zfbook
    Bonjour à tous,

    www.zfbook.fr ne fonctionne pas, si vous avez un lien d'appli zfbook exemple ?

    Merci
    Damien