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

 PHP Discussion :

je débute avec symfony [1.x]


Sujet :

PHP

  1. #21
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Ton html ne passera pas le contrôle !

    Je te confirme que la présence de la balise <body> est obligatoire dans un document en html5. Par contre si tu as de la littérature qui dit le contraire, je suis preneur...

    Donc ton doc final doit ressembler à celui-ci
    Code html : 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
     
    <!DOCTYPE html>
    <html>
    <!-- frontend/layout.php -->
      <head> <!-- Contenu modfiable sur layout.php -->
        <?php include_http_metas() ?>
        <?php include_metas() ?>
        <?php include_title() ?>
        <link rel="shortcut icon" href="/favicon.ico" />
        <?php include_stylesheets() ?>
        <?php include_javascripts() ?>
      </head>
      <body>
            <!-- //le menu laterial que je souahite factoriser en fonction de la rubrique -->
        <nav>
          <ul>
            <li><a href="#">carnetAdressel</a></li>
            <li><a href="#">menu-lateral</a></li>
            <li><a href="#">menu-lateral</a></li>
            <li><a href="#">menu-lateral</a></li>
          </ul>
        </nav>
     
        <header>
          <h1>Je suis l'entête de la page</h1>
        </header>
     
        <section>
              <?php echo $sf_content ?>
        </section>
     
        <footer>
          JE SUIS LE FOOTER
        </footer>
      </body>
    </html>
    Au risque de me répéter. La balise <aside> n'est pas destinée à définir un menu de la page (ni même un menu secondaire de la page. Elle est là pour donner des informations complémentaires au contenu d'une balise <article> ou <section>. Soit tu prends en compte les informations déjà données, soit tu connais mieux que moi et je ne peux plus rien te conseiller. (Mais je suis toujours prêt à apprendre).

    Pour permettre de déporter de la génération de code html dans un template tu as deux solutions, les partiels qui permettent juste de déporter (et factoriser) la génération du code et les componment qui embarquent, en plus, une couche contrôleur (il peuvent dés lors récupérer directement et indépendamment, des informations dans la base de données.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    ok pour tous tes conseils , je te suis car je ne suis pas un professionel

    j'ai du livre de travers j'avais vu cette exemple je n'avai pas chercher plus loin en plus j'ai du confondre nav avec aside



    je n'ai pas bien compris de ce tu explique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Pour permettre de déporter de la génération de code html dans un template tu as deux solutions, les partiels qui permettent juste de déporter (et factoriser) la génération du code et les componment qui embarquent, en plus, une couche contrôleur (il peuvent dés lors récupérer directement et indépendamment, des informations dans la base de données.
    qu'entends tu par pariel à tu une exemple simple?

    on va dire que dès que j'ouvre mon site je tombe sur menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -module/template/menu/indexSuccess.php
    donc je retrouve ce que tu m'a mis
    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
     
    <!DOCTYPE html>
    <html>
    <!-- frontend/layout.php -->
      <head> <!-- Contenu modfiable sur layout.php -->
        <?php include_http_metas() ?>
        <?php include_metas() ?>
        <?php include_title() ?>
        <link rel="shortcut icon" href="/favicon.ico" />
        <?php include_stylesheets() ?>
        <?php include_javascripts() ?>
      </head>
      <body>
            <!-- //le menu laterial que je souahite factoriser en fonction de la rubrique -->
        <nav>
          <ul>
            <li><a href="#">carnetAdressel</a></li>
            <li><a href="#">menu-lateral</a></li>
            <li><a href="#">menu-lateral</a></li>
            <li><a href="#">menu-lateral</a></li>
          </ul>
        </nav>
     
        <header>
          <h1>Je suis l'entête de la page</h1>
        </header>
     
        <section>
              <?php echo $sf_content ?>
        </section>
     
        <footer>
          JE SUIS LE FOOTER
        </footer>
      </body>
    </html>
    on va dire que le $sf_content contient ceci
    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
     
    <!-- ZONE DYNAMIQUE CARNET ADRESSE-->
    <nav class="menu_lateral">
        <h1>lateral</h1>
        <tr>
        <li><?php echo link_to('AJOUTER', url_for('carnetAdr/new')) ?></li>
        <td><a href="#">MODIFIER</a></td>                       
        <td><a href="#">RECHERCHER</a></td>
    </tr>
    </nav>
    <section>
        <h1>Liste des derniers contact enregistrer</h1>
     
        <table>
            <thead>
                <tr>
                    <th>Contact</th>
                    <th>Nom</th>
                    <th>Prenom</th>
                    <th>Adresse</th>
                    <th>Courriel</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($contacts as $contact): ?>
                    <tr>
                        <td><a href="<?php echo url_for('carnetAdr/show?contact_id=' . $contact->getContactId()) ?>"><?php echo $contact->getContactId() ?></a></td>
                        <td><?php echo $contact->getNom() ?></td>
                        <td><?php echo $contact->getPrenom() ?></td>
                        <td><?php echo $contact->getAdresse() ?></td>
                        <td><?php echo $contact->getCourriel() ?></td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    après faut t'il par exemple aller sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    module/menu/template/actions.class.php
    ajouter une methode qui va selectionner le menu
    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
     
    class menuActions extends sfActions
    {
     /**
      * Executes index action
      *
      * @param sfRequest $request A request object
      */
      public function executeIndex(sfWebRequest $request)
      {
    	$this->menu ="";
      }
     
      public function executeMenu(choix_menu)
      {
            $menu_adresse={modifier,ajouter,rechercher};
            $menu_general ={carnet_adresse,carnet_autre}
            if(choix_menu == 1}
           {
                //boucle pour décomposer l'array et afficher les menu
    	    $this->menu =menu_adresse;
           }
           if(choix_menu == 2)
           {
                //boucle pour décomposer l'array et afficher les menu     
               $this->menu =menu_general;
           }
      }
    après on va sur indexSuccess et on ajoute echo $menu;
    }
    [/code]
    Images attachées Images attachées  

  3. #23
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je pense qu'avant d'aller plus loin il est indispensable que tu acquières les bases du html (et du html5) ainsi que celles des css (et des css3). Je t'ai donnés des liens, fait les tutoriels, une fois ceci fait, nous pourrons mieux discuter.

    Accessoirement, le code que tu donnes dans ton nav est complétement a côté de ce qu'il devrait être. Une bonne lecture des tutoriels devrait te donner les base qui te permettrons de trouver les erreurs du premier coup d’œil.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    Après avoir lu sur sur les formulaire du tuto jobee j'ai maintenant compris pour ton histoire de partial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php include_partial('form', array('form' => $form)) ?>
    je reviens a ma liste pour effacer un contacte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                <?php foreach ($contacts as $contact): ?>
                    <tr>
                        <td><a href="<?php echo url_for('carnetAdr/show?contact_id=' . $contact->getContactId()) ?>"><?php echo $contact->getContactId() ?></a></td>
                         <td><a href="<?php echo url_for('carnetAdr/delete?contact_id=' . $contact->getContactId()) ?>">supprimer</a></td>
                        <td><?php echo $contact->getNom() ?></td>
                        <td><?php echo $contact->getPrenom() ?></td>
                        <td><?php echo $contact->getAdresse() ?></td>
                        <td><?php echo $contact->getCourriel() ?></td>    
                   </tr>
                <?php endforeach; ?>
    voici mon controleur, j'ai retirer le csrfp car je n'ai pas bien compris l'histoire du jeton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      public function executeDelete(sfWebRequest $request)
      {
        //$request->checkCSRFProtection();
     
        $this->forward404Unless($contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('contact_id'))), sprintf('Object contact does not exist (%s).', $request->getParameter('contact_id')));
        $contact->delete();
     
        $this->redirect('carnetAdr/index');
      }
    d'après ce que j'ai compris, lorsqu'on clique sur un lien ou un bouton qui va effacer une donnée de la base, cette action va générer une clef qui va permetre de vérifier l'action demandée, et éviter les injections sql

    mais ou je dois mettre ce bout de script?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      if (!$this->getToken())
      {
        $this->setToken(sha1($this->getEmail().rand(11111, 99999)));
      }
    voice mon controler
    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
     
    <?php
     
    /**
     * carnetAdr actions.
    
     * @subpackage carnetAdr
     * @author     Your name here
     * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
     */
    class carnetAdrActions extends sfActions
    {
      public function executeIndex(sfWebRequest $request)
      {
        $this->contacts = Doctrine_Core::getTable('contact')
          ->createQuery('a')
          ->execute();
      }
     
      public function executeShow(sfWebRequest $request)
      {
        $this->contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('contact_id')));
        $this->forward404Unless($this->contact);
      }
     
      public function executeNew(sfWebRequest $request)
      {
        $this->form = new contactForm();
      }
     
      public function executeCreate(sfWebRequest $request)
      {
        $this->forward404Unless($request->isMethod(sfRequest::POST));
     
        $this->form = new contactForm();
     
        $this->processForm($request, $this->form);
     
        $this->setTemplate('new');
      }
     
      public function executeEdit(sfWebRequest $request)
      {
        $this->forward404Unless($contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('contact_id'))), sprintf('Object contact does not exist (%s).', $request->getParameter('contact_id')));
        $this->form = new contactForm($contact);
      }
     
      public function executeUpdate(sfWebRequest $request)
      {
        $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
        $this->forward404Unless($contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('contact_id'))), sprintf('Object contact does not exist (%s).', $request->getParameter('contact_id')));
        $this->form = new contactForm($contact);
     
        $this->processForm($request, $this->form);
     
        $this->setTemplate('edit');
      }
     
      public function executeDelete(sfWebRequest $request)
      {
         if (!$this->getToken())
      {
        $this->setToken(sha1($this->getEmail().rand(11111, 99999)));
      }
     
        $this->forward404Unless($contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('contact_id'))), sprintf('Object contact does not exist (%s).', $request->getParameter('contact_id')));
        $contact->delete();
     
        $this->redirect('carnetAdr/index');
      }
     
      protected function processForm(sfWebRequest $request, sfForm $form)
      {
        $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid())
        {
          $contact = $form->save();
     
          $this->redirect('carnetAdr/edit?contact_id='.$contact->getContactId());
        }
      }
    }
    faut t'il à l'aide d'un helper envoyer le jeton?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url_for('module=carnetAdr&action=delete&id='.$job->getId&jeton=jeton')

  5. #25
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    L'idée est d'utiliser le toke CRSF embarqué dans le form de modification.

    Il faut donc que le lien soit généré dans le form et qu'il utilise un link_to() avec l'option 'methode' => 'delete' si mes souvenirs sont bon.

    La vérification se fait au niveau de la méthode $request->checkCSRFProtection() de l'objet request récupéré.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    suis-je dans le bon chemin?
    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
     
                        <td><?php echo $contact->getNom() ?></td>
                        <td><?php echo $contact->getPrenom() ?></td>
                        <td><?php echo $contact->getAdresse() ?></td>
                        <td><?php echo $contact->getCourriel() ?></td>    
                        <td>
     
     
    <form action="
     
          <?php echo link_to(
      'Delete',
      'carnetAdr/delete?id='.$form->getObject()->getId(),
      array('method' => 'delete', 'confirm' => 'Are you sure?')
    ) ?> "  method="post">
     
        <input type="hidden" name="sf_method" value="put" />
        <input type="submite" value="supprimer"/>
    </form>
     
     
     
              </td>

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    je n'y arrive pas il doit manquer quelque chose dans le controler


    la boucle qui fait apparaître numéro des contacte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <?php foreach ($jobeet_jobs as $jobeet_job): ?>
        <tr>
          <td><a href="<?php echo                                                      url_for('job/show?id='.$jobeet_job->getId()) ?>"><?php echo $jobeet_job->getId() ?></a></td>
     
          <td>
    <?php include_partial('form', array('form' => $form)) ?>
     
     
          </td>
        </tr>
        <?php endforeach; ?>
    j'ai donc ajouter dans executeIndex pour avoir un instance de form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      public function executeIndex(sfWebRequest $request)
      {
              $this->form = new JobeetJobForm();
     
        $this->jobeet_jobs = Doctrine_Core::getTable('JobeetJob')
          ->createQuery('a')
          ->execute();
      }
    puis je l'ai diriger vers une autre vu qui doit normalement apparâitre le lien pour supprimer ce job

    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
     
     
    <form action="<?php echo url_for('job/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    <?php if (!$form->getObject()->isNew()): ?>
    <input type="hidden" name="sf_method" value="put" />
    <?php endif; ?>
      <table>
          <h1>form2</h1>
        <tfoot>
          <tr>
            <td colspan="2">
              &nbsp;<a href="<?php echo url_for('job/index') ?>">Back to list</a>
              <?php if (!$form->getObject()->isNew()): ?>
                &nbsp;<?php echo link_to('Delete', 'job/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
              <?php endif; ?>
              <input type="submit" value="Save" />
            </td>
          </tr>
        </tfoot>
        <tbody>
     
        </tbody>
      </table>
    </form>
    par contre ici mon form n'est pas un lien ?

  8. #28
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je ne comprend plus, ni ce que tu veux faire, ni comment tu envisages de la mettre en oeuvre.

    L'idée d'imbriquer deux form dont un qui ne sert pas de form ne me parait pas opportune.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    je vais essayer de mieux expliquer ce que je souhaite faire

    on suppose qu'on est a cette page

    mon but est d'effacer tous ce qui concerne sensio lab

    ici j'ai donc 1 table avec 4 colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <td>ID JOB </td>
        <td> METIER</td>
        <td>ENSEIGNE</td>
        <td>ACTION</td>
    au bout de table je souhaite mettre un lien pour supprimer un enregistrement d'un job, donc d'après ce que j'ai compris il faut générer un formulaire pour pourvoir mettre un input de type hidden et envoyer a la class delete pour effacer un job, comme tu m'a dit qu'il ne sert a rien de crée 2 class forms j'ai donc intégré dans l'indexSuccess qui correspond a l'image que j'ai posté
    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
     
    <div id="jobs">
        <table class="jobs">
     
        <?php foreach ($jobeet_jobs as $i => $job): ?>
             <tr class="<?php echo fmod($i, 2) ? 'even' : 'odd' ?>">
                <td class="location"><?php echo $job->getLocation() ?></td>
                 <td class="position">
                 <a href="<?php echo url_for('job/show?id=' . $job->getId()) ?>">
                            <?php echo $job->getPosition() ?>
                  </a>
                  </td>
                  <td class="company"><?php echo $job->getCompany() ?></td>
                  <td>
     
                     <form action="<?php echo url_for('job/' . ($form->getObject()->isNew() ? 'create' : 'update') . (!$form->getObject()->isNew() ? '?id=' . $form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
                     <?php if ($form->getObject()->isNew()): ?>
                     <input type="hidden" name="sf_method" value="put" />
                     <?php endif; ?>
                     <table>
                    <tfoot>
                     <tr>
                     <td colspan="2">
                     <?php if ($form->getObject()->isNew()): ?>
                     &nbsp;<?php echo link_to('Delete', 'job/delete?id=' . $form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
                     <?php endif; ?>
                      </td>
                      </tr>
                      </tfoot>
                      </table>
                      </form>
                   </td>
                </tr>
            <?php endforeach; ?>
        </table>
    </div>

    moi ce que j'ai comprs c'est lorsqu'on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="va_a_url_demande_après_avoir_valider" type="methode">
    l'url demandé est pour le moment indigeste pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <form action="<?php echo url_for('job/' . ($form->getObject()->isNew() ? 'create' : 'update') . (!$form->getObject()->isNew() ? '?id=' . $form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    que veut dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo url_for('job/' . ($form->getObject()->isNew() ?
    le point d'interrogation c'est comme la requête préparer?


    getObjet() sert t'il de coquille vide qu'on pourra metre n'importe quelle variable de n'importe quel type, des variables qui servira a connaitre le numéro du job enregisrer ou son ensigne par exemple.

    Est ce que j'ai bien expliquer ce que je voulais ?
    Images attachées Images attachées  

  10. #30
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Points : 150
    Points
    150
    Par défaut
    Le '?' suivi de ':' est l'opérateur ternaire ce qui veut dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expression ? 'si l\'expression est vrai je retourne cette chaine' : 'sinon celle-ci';
    Donc dans ton cas si l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->getObject()->isNew()
    retourne vrai alors tu écrira la chaîne sinon .

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    merci a toi woodka
    lorsqu'on envoie un "PUT", est ce lui qui fournit le jeton ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <input type="hidden" name="sf_method" value="put" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        $request->checkCSRFProtection();
    a quoi ressemble la class Object()?? j'ai essayer le le rechercher mais je l'ai pas trouver

    j'ai vu ce champ dans le modele
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    token:
    { type: string(255), notnull: true,
    X unique: true }
    Mais on garde dans une base de donnée le jeton ?

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    bon j'ai utiliser workbench mysql c'est plus rapide

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    j'ai pu avoir enfin le bon code qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php foreach ($contacts as $contact): ?>
        <tr>
          <td><a href="<?php echo url_for('contact/edit?id_contact='.$contact->getIdContact()) ?>"><?php echo $contact->getIdContact() ?></a></td>
          <td><?php echo $contact->getCivilite() ?></td>
          <td><?php echo $contact->getNom() ?></td>
          <td><?php echo $contact->getPrenom() ?></td>
          <td><?php echo link_to('supprimer','contact/delete?id_contact='.$contact->getIdContact(),
                            array('method'=>'delete',
                                'confirm'=>'effacer?')); ?></td>
        </tr>
        <?php endforeach; ?>
    par contre voici ce que genere en balise html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="/frontend_dev.php/contact/delete/id_contact/3" onclick="if (confirm('effacer?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'post'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', 'sf_method'); m.setAttribute('value', 'delete'); f.appendChild(m);var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_csrf_token'); m.setAttribute('value', 'f7b159e1af56e2182aaa07ef6cb23f3e'); f.appendChild(m);f.submit(); };return false;">supprimer</a>
    c'est du javascript ? on peut pirater le jeton en copiant mon numéro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'f7b159e1af56e2182aaa07ef6cb23f3e
    bon je vais laisser comme ca, personne va me pirater mon site en local

    merci encore a michel

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [1.x] Validation conditionnelle avec Symfony
    Par MacReiben dans le forum Symfony
    Réponses: 1
    Dernier message: 17/07/2008, 13h25
  2. [1.x] Problème de génération de model propel avec symfony 1.1
    Par youknowriad dans le forum Symfony
    Réponses: 2
    Dernier message: 04/07/2008, 16h13
  3. [1.x] Message d'erreur avec symfony propel-build-model
    Par thewind1 dans le forum Symfony
    Réponses: 6
    Dernier message: 03/04/2008, 18h09
  4. [1.x] Retours d'expérience avec Symfony
    Par ygrim dans le forum Symfony
    Réponses: 6
    Dernier message: 05/09/2007, 15h13

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