Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Programmez en orienté objet en PHP

    5 septembre 2017 à 10:50:09

    Salut,

    Le .htaccess dit en gros "toutes les url rentrées - ^(.*)$- doivent passer par ton fichier bootstrap.php", qui se chargera de prendre les décisions et appeler le bon manager pour te renvoyer la bonne réponse.

    Pour le VirtualHost, je ne peux pas t'aider sur Mamp que je n'utilise pas, mais passe sur WampServer dernière version : il inclue une interface très simple pour faire tes Virtual Host en deux clics.

    • Partager sur Facebook
    • Partager sur Twitter
      5 septembre 2017 à 13:17:43

      bonjour j'aimerais enregistrer des informations dans ma base de données mais cela ne marche pas.

      Voici mon code: 

      <!DOCTYPE html> 

      <html lang="fr">  

        <head>       

          <title>EXO php</title>    

        </head>  

        <body>

      <?php include("entete.php");?>

      <Div>

      <div id="contenu">

      <h1> GESTION DU PERSONNELS</h1>

      <Div class="conteneur">

      <form action="" method="post">

      <label for="nom"> Nom:  </label>

      <input type="text" name="nom"><br><br>

      <label for="prenom"> Prenom:  </label>

      <input type="text" name="prenom"><br><br>

      <label for="telephone"> Telephone:</label>

      <input type="number" name="telephone"><br><br>

      <h3> Quel est votre sexe? </h3>

      <input type="radio" name="sexe" id="m" value="Masculin"> <label for="M"> Masculin </label><br>

      <input type="radio" name="sexe" id="f" value="Feminin"> <label for="F"> Feminin</label><br><br>

      <label for="mail"> Email:</label>

      <input type="text" name="email"><br><br>

      <input type="submit" value="Valider"><br><br>

      <a href=http://localhost/EXO%20PHP/listes.php?> Voir la liste du personnel </a>

      </form>

      </Div>

      </Div>

      <?php

      include("new.php");

      ?>

      <Div>

      <?php

      $sql= "INSERT INTO `PERSONNELS` (`NOM`, `PRENOM`, `TELEPHONE`, `SEXE`, `EMAIL`) VALUES(:nom, :prenom, :telephone, :sexe, :mail)";

      $req=$bdd->prepare($sql);

      $reponse = $req->execute(array(

      ':nom' => $_POST['NOM'],

      ':prenom' => $_POST['PRENOM'],

      ':telephone' => $_POST['TELEPHONE'],

      ':sexe' => $_POST['SEXE'],

      ':mail' => $_POST['EMAIL'],

      ));

      /*

      if(!$reponse){

      echo "une erreur est survenue : ".$req->errorCode();

      print_r($bdd->errorInfo());

      }*/

      $req->closeCursor();

      if ($sql ==  true){

      echo "enregistrement bien effectué";

      }

      ?>

      </Div>

      </Div>

      <?php include("pieds_de_page.php");?>

        </body>

       </html>

      • Partager sur Facebook
      • Partager sur Twitter
        5 septembre 2017 à 15:23:34

        Merci Roswell, mais je suis sous mac et je n'ai donc pas wamp. peut-etre que quelqu'un d'autre pourra m'aider.

        -
        Edité par jissey 6 septembre 2017 à 9:00:00

        • Partager sur Facebook
        • Partager sur Twitter
          5 septembre 2017 à 17:25:44

          @FidGénial : Tu veux bien poster ta question dans le forum approprié comme celui de concevez votre site web avec PHP et MySQL. Sinon tu peux d'abord enlever la virgule sur ':mail' => $_POST['EMAIL'],.


          • Partager sur Facebook
          • Partager sur Twitter
            5 septembre 2017 à 21:43:38

            Hello everybody...!

            Can I give you the source code of another project, eg: e-commerce, social networking ..., so that I can better understand object-oriented programming. May everyone help, thanks ..!

            • Partager sur Facebook
            • Partager sur Twitter
              7 septembre 2017 à 11:27:08

              hello, il y a quelque chose qui m'echappe :
              Fatal error: Class 'CommentsManager' not found in /Users/moi/Sites/TPSite/lib/vendors/Model/CommentsManagerPDO.php on line 11

              Pourtant la class existe.

              <?php
              
              
              
              use \Entity\Comment;
               
              class CommentsManagerPDO extends CommentsManager
              {
                protected function add(Comment $comment)
                {
                  $q = $this->dao->prepare('INSERT INTO comments SET news = :news, auteur = :auteur, contenu = :contenu, date = NOW()');
               
                  $q->bindValue(':news', $comment->news(), \PDO::PARAM_INT);
                  $q->bindValue(':auteur', $comment->auteur());
                  $q->bindValue(':contenu', $comment->contenu());
               
                  $q->execute();
               
                  $comment->setId($this->dao->lastInsertId());
                }
               
                public function getListOf($news)
                {
                  if (!ctype_digit($news))
                  {
                    throw new \InvalidArgumentException('L\'identifiant de la news passé doit être un nombre entier valide');
                  }
               
                  $q = $this->dao->prepare('SELECT id, news, auteur, contenu, date FROM comments WHERE news = :news');
                  $q->bindValue(':news', $news, \PDO::PARAM_INT);
                  $q->execute();
               
                  $q->setFetchMode(\PDO::FETCH_CLASS | \PDO::FETCH_PROPS_LATE, '\Entity\Comment');
               
                  $comments = $q->fetchAll();
               
                  foreach ($comments as $comment)
                  {
                    $comment->setDate(new \DateTime($comment->date()));
                  }
               
                  return $comments;
                }
              }

              Donc, je remonte le chemin avec CommentsManager:

              <?php
              
              namespace Model;
              
              /**
               * Description of CommentsManager
               *
               */
              
               
              use \OCFram\Manager;
              use \Entity\Comment;
               
              abstract class CommentsManager extends Manager
              {
                /**
                 * Méthode permettant d'ajouter un commentaire.
                 * @param $comment Le commentaire à ajouter
                 * @return void
                 */
                abstract protected function add(Comment $comment);
               
                /**
                 * Méthode permettant d'enregistrer un commentaire.
                 * @param $comment Le commentaire à enregistrer
                 * @return void
                 */
                public function save(Comment $comment)
                {
                  if ($comment->isValid())
                  {
                    $comment->isNew() ? $this->add($comment) : $this->modify($comment);
                  }
                  else
                  {
                    throw new \RuntimeException('Le commentaire doit être validé pour être enregistré');
                  }
                }
               
                /**
                 * Méthode permettant de récupérer une liste de commentaires.
                 * @param $news La news sur laquelle on veut récupérer les commentaires
                 * @return array
                 */
                abstract public function getListOf($news);
              }
              

              Puis Manager

              <?php
              
              /*
               * To change this license header, choose License Headers in Project Properties.
               * To change this template file, choose Tools | Templates
               * and open the template in the editor.
               */
              
              namespace OCFram;
               
              abstract class Manager
              {
                protected $dao;
               
                public function __construct($dao)
                {
                  $this->dao = $dao;
                }
              }

              Je vois pas trop où est l'erreur.

              peut-etre quelle vient du Managers :

              <?php
              
              /*
               * To change this license header, choose License Headers in Project Properties.
               * To change this template file, choose Tools | Templates
               * and open the template in the editor.
               */
              
              namespace OCFram;
               
              class Managers
              {
                protected $api = null;
                protected $dao = null;
                protected $managers = [];
               
                public function __construct($api, $dao)
                {
                  $this->api = $api;
                  $this->dao = $dao;
                }
               
                public function getManagerOf($module)
                {
                  if (!is_string($module) || empty($module))
                  {
                    throw new \InvalidArgumentException('Le module spécifié est invalide');
                  }
               
                  if (!isset($this->managers[$module]))
                  {
                    $manager = '\\Model\\'.$module.'Manager'.$this->api;
               
                    $this->managers[$module] = new $manager($this->dao);
                  }
               
                  return $this->managers[$module];
                }
              }

              j'ai une erreur sur new $manager($this->dao) : Abstract class \OCFram\Manager can not be instantiated., et je n'arrive pas à comprendre ce quelle indique. LA classe ne peut pas être instantacié, mais pourquoi?

              Je continue de chercher


              • Partager sur Facebook
              • Partager sur Twitter
                7 septembre 2017 à 11:41:57

                Salut. Pour commencer, CommentsManager et CommentsManagerPDO ne sont pas dans le même namespace. Je suppose qu'ils devraient donc rajoute :
                namespace Model;
                dans CommentsManagerPDO.
                • Partager sur Facebook
                • Partager sur Twitter
                  7 septembre 2017 à 12:21:22

                  oups, un oubli.Merci Kulturman.

                  Du coup il cherchait pas au bon endroit. Logique quand on y pense

                  -
                  Edité par jissey 7 septembre 2017 à 12:25:52

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 septembre 2017 à 12:11:04

                    Bonjour,

                    à propos de "VirtualHost"...

                    il ne faut pas oublier la configuration du fichier "Hosts" (qui est lu en premier) ainsi que l'existence des dossiers (qui représentent les "sites") .
                    Voir ce TP de Otomatic, qui concerne Windows mais qui peut être appliqué (sauf erreur hormis les chemins) pour tout autre système...

                    Wampserver et plusieurs sites

                    notes:
                    j'utilise ce modèle depuis des années sans problème.
                    On galère un peu au début, mais une fois compris le principe dossiers/host/httpd-vhosts.conf, plus de problème.
                    --
                    Edit: corrigé après avoir vu la réponse ci-dessus, mais au cas où...

                    -
                    Edité par nanart 9 septembre 2017 à 12:15:34

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 septembre 2017 à 13:10:47

                      bon, en fait, pour le VirtualHost sous mac, j'avais trouvé en passant de tuto en explication sur forums et de test en test.

                      dans Application/MAMAP/conf/apache/httpd.conf, j'ai inséré les lignes :

                      #NameVirtualHost *
                      Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

                      dans extra j'ai rajouté la redirection comme demandé dans le tuto.

                      Mais ce que j'oubliais, c'est le fichier hosts caché dans etc avec l'ajout de la ligne

                      127.0.0.1 nomDuSiteRedirigé.loc

                       Je le note,des fois que j'ai à rechercher comment j'avais fait, ou que ça puisse aider quelqu'un d'autre.

                      Petite question d'écriture :

                      Que veut dire :

                      public function isValid($value)
                          {
                              return $value != '';
                          }

                      la fonction retourne une valeur seulement si elle vaut quelque chose dedans?

                      hum, je viens de reprendre tous les fichier un par un, et je me retrouve avec une soucis dans le Managers. Voici le code. si je ne m'abuse, il s'agit du même que dans le tuto :

                      <?php
                      
                      /*
                       * To change this license header, choose License Headers in Project Properties.
                       * To change this template file, choose Tools | Templates
                       * and open the template in the editor.
                       */
                      
                      namespace OCFram;
                       
                      class Managers
                      {
                        protected $api = null;
                        protected $dao = null;
                        protected $managers = [];
                       
                        public function __construct($api, $dao)
                        {
                          $this->api = $api;
                          $this->dao = $dao;
                        }
                       
                        public function getManagerOf($module)
                        {
                          if (!is_string($module) || empty($module))
                          {
                            throw new \InvalidArgumentException('Le module spécifié est invalide');
                          }
                       
                          if (!isset($this->managers[$module]))
                          {
                            $manager = '\\Model\\'.$module.'Manager'.$this->api;
                       
                            $this->managers[$module] = new $manager($this->dao);
                          }
                       
                          return $this->managers[$module];
                        }
                      }

                      et j'ai une erreur qui s'affiche sur le new $manager($this->dao); :

                      abstract class \OCFram\Manager can not be instantacied

                      j'ai recopié tout les fichiers pour refaire le site tel qu'il est dans le "Si vous êtes perdu", et c'est pareil. Avez-Vous cette erreur aussi?



                      -
                      Edité par jissey 17 septembre 2017 à 12:50:08

                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 septembre 2017 à 19:33:35

                        Bonjour,

                        je démarre en POO.

                        Dans le cours, au chapitre "Manipulation de données stockées",  dans l’exemple donné en :

                         https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php/manipulation-de-donnees-stockees#/id/r-1669516, 

                        il est écrit :  

                        // On admet que le constructeur de la classe appelle chaque setter pour assigner les valeurs qu'on lui a données aux attributs correspondants.

                        Vu le temps que j'ai mis à trouver comment rédiger le constructeur, je le partage ici pour ceux qui ont galéré comme moi sur le sujet :

                        et pour les setters, du type :

                        Tout paraît si simple une fois qu'on a trouvé comment le faire !

                        -
                        Edité par Bchauchat 15 septembre 2017 à 8:33:12

                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 septembre 2017 à 15:42:08

                          Bonjour!

                          As-tu essayé avec hydrate()?

                          J'ai pour ma part une question:

                          Depuis un moment que je travaille sur le jeu de combat, je me rend compte que la mise à jour ne se fait pas quand bien même, à mon avis, la fonction uppdate est bien implémentée.

                          En effet, quand le joueur à 0 degat je vois son degat augmenté lorsque ke clique dessus (à 5 bien sûr). En revenche à partir de 5 rien ne se passe quand bien même que le joueur est frappé avec le message qui s'affiche le personnage a été frappé.

                          Voici le code source:

                          index

                          <?php
                          //autoload
                          require_once 'autoload.php';
                          
                          session_start();
                          
                          if (isset($_GET['deconnexion'])) {
                            session_destroy();
                            header('Location: .');
                            exit();
                          }
                          
                          if (isset($_SESSION['perso'])) {
                            $perso = $_SESSION['perso'];
                          }
                          
                          require_once 'connection.php'; // database connection
                          
                          $manager = new PersonnageDAO($db);
                          
                          if (isset($_POST['create']) && isset($_POST['name'])) { // if we want to create
                            // a new person
                            $perso = new Personnage(array('name' => $_POST['name']));
                          
                            if (!$perso->validName()) {
                              $message = 'Le nom choisi n\'est pas valide.';
                              unset($perso);
                            }
                            elseif ($manager->exists($perso->name())) {
                              $message = 'Le nom choisi existe deja.';
                              unset($perso);
                            }
                            else {
                              $manager->add($perso);
                            }
                          }
                          
                          elseif (isset($_POST['use']) && isset($_POST['name'])) { // if we want to use
                            if ($manager->exists($_POST['name'])) {
                              $perso = $manager->get($_POST['name']);
                            }
                            else {
                              $message = 'Ce personnage n\'existe pas.';
                            }
                          }
                          
                          elseif (isset($_GET['frapper'])) {
                            if (!isset($perso)) {
                              $message = 'Merci de creer un personnage ou de vous identifier.';
                            }
                          
                            else
                          {
                            if (!$manager->exists((int) $_GET ['frapper']))
                            {
                              $message = 'Le personnage que vous voulez frapper n\'existe pas !';
                            }
                          
                            else {
                              $persoToAtack = $manager->get((int) $_GET['frapper']); // register errors
                              // or messages returned by the method frapper
                          
                              $back = $perso->frapper($persoToAtack);
                          
                              switch ($back) {
                                case Personnage::CEST_MOI :
                                  $message = 'Mais ... pourquoi voulez-vous vous frapper.';
                                  break;
                          
                                case Personnage::PERSONNAGE_FRAPPE :
                                  $message = 'Le personnage a bien été frappé.';
                          
                                  $manager->update($perso);
                                  $manager->update($persoToAtack);
                          
                                  break;
                          
                                case Personnage::PERSONNAGE_TUE :
                                  $message = 'Vous avez tue ce personnage.';
                          
                                  $manager->update($perso);
                                  $manager->delete($persoToAtack);
                          
                                  //break;
                              }
                            }
                          }
                          }
                          
                          ?>
                          
                          <!DOCTYPE html>
                          <html>
                            <head>
                              <meta charset="utf-8">
                              <title>Jeu de combat en PHP OO</title>
                            </head>
                            <body>
                              <p>Nombre de personnages crées: <?php echo $manager->count(); ?></p>
                          
                              <?php
                              if (isset($message)) { // is there a message ?
                                echo '<p>' ,$message, '</p>'; // show it.
                              }
                          
                              if (isset($perso)) { // is there a person (new or not)
                              ?>
                          
                              <p><a href='?deconnexion=1'>Déconnexion</a></p>
                          
                              <fieldset>
                                <legend>Mes infos</legend>
                                <p>
                                  Nom: <?php echo htmlspecialchars($perso->name()); ?> <br>
                                  Dégâts: <?php echo $perso->degats(); ?><br>
                                  Experience: <?php echo $perso->xp(); ?><br>
                                  Niveau: <?php echo $perso->level(); ?>
                          
                                  <?php //print_r($perso); ?>
                                </p>
                              </fieldset>
                          
                              <fieldset>
                                <legend>Qui frapper?</legend>
                                <p>
                                  <?php
                                  $persos = $manager->getList($perso->name());
                          
                                  if (empty($persos)) {
                                    echo 'Personnages à frapper';
                                  }
                                  else {
                                    foreach ($persos as $aPerso) {
                                      echo '<ul><li><a href="?frapper=' ,$aPerso->id(), '">'
                                      ,htmlspecialchars($aPerso->name()),  '</a> (dégâts: '
                                      ,$aPerso->degats(), ', experience: ' ,$aPerso->xp(), ', niveau: '
                                      ,$aPerso->level(), ')</ul></li>';
                                    }
                                    //print_r($persos);
                                  }
                                  ?>
                                </p>
                              </fieldset>
                          
                              <?php
                              }
                              else {
                          
                              ?>
                          
                              <form action="" method="post">
                                <p>
                                  Nom: <input type="text" name="name">
                          
                                  <input type="submit" name="create" value="Créer ce personnage">
                                  <input type="submit" name="use" value="Utiliser ce personnage">
                                </p>
                              </form>
                          
                              <?php
                              }
                              ?>
                            </body>
                          </html>
                          
                          <?php
                          if (isset($perso)) // if a new personnage is created, save it on a variable
                          // instead of doing a sql request (performance purpose)
                          {
                            $_SESSION['perso'] = $perso;
                          }
                          ?>
                          

                          POPO

                          <?php
                          
                          /**
                           * This is the definition of the class nemed Personnage
                           *
                           *@author Abel L.
                           *@version 1.0
                           */
                          class Personnage
                          {
                          
                            private $_id,
                                    $_name,
                                    $_degats,
                                    $_xp,
                                    $_level;
                          
                            const CEST_MOI = 1,
                                  PERSONNAGE_FRAPPE = 2,
                                  PERSONNAGE_TUE = 3,
                                  EXPERIENCE_AUGMENTEE = 4,
                                  NIVEAU_AUGMENTE = 5;
                          
                            function __construct(array $data)
                            {
                              $this->hydrate($data);
                            }
                          
                            public function frapper(Personnage $perso) {
                              if ($perso->id() == $this->_id) {
                                return self::CEST_MOI;
                              }
                          
                              //$this->_xp =+ 1;
                          
                              // tell the user that is beaten or killed
                              return $perso->recevoirDegats();
                            }
                          
                            //hydrate objects
                            public function hydrate(array $data) {
                              foreach ($data as $key => $value) {
                                $method = 'set' .ucfirst($key);
                          
                                if (method_exists($this, $method)) {
                                  $this->$method($value);
                                }
                              }
                            }
                          
                            public function recevoirDegats() {
                              $this->_degats =+ 5;
                          
                              //if degats is 100
                              if ($this->_degats >= 100) {
                                return self::PERSONNAGE_TUE;
                              }
                          
                              return self::PERSONNAGE_FRAPPE;
                            }
                          
                            public function id() {
                              return $this->_id;
                            }
                          
                            public function setId($id) {
                              $id = (int) $id;
                          
                              if ($id > 0) {
                                $this->_id = $id;
                              }
                            }
                          
                              public function name() {return $this->_name;}
                          
                              public function setName($name) {
                                if (is_string($name)) {
                                  $this->_name = $name;
                                }
                              }
                          
                              public function degats() {return $this->_degats;}
                          
                              public function setDegats ($degats) {
                                $degats = (int) $degats;
                          
                                if ($degats >= 0 && $degats <= 100) {
                                  $this->_degats = $degats;
                                }
                              }
                          
                              public function xp() {return $this->_xp;}
                          
                              public function setXp($xp) {
                                  $xp = (int) $xp;
                          
                                  if ($xp >= 0 && $xp <= 100) {
                                    $this->_xp = $xp;
                                  }
                              }
                          
                              public function level() {return $this->_level;}
                          
                              public function setLevel($level) {
                                  $level = (int) $level;
                                  $this->_level = $level;
                          
                              }
                          
                              public function validName() {
                                return !empty($this->_name);
                              }
                            }
                          

                          DAO

                          <?php
                          
                          /**
                           *
                           */
                          class PersonnageDAO
                          {
                          
                            private $_db;
                          
                            function __construct($db)
                            {
                              $this->setDb($db);
                            }
                          
                            public function add(Personnage $perso) {
                              $sql = 'INSERT INTO t_personnage(name) VALUES(:name)';
                              $stmt = $this->_db->prepare($sql);
                          
                              $stmt->bindValue(':name', $perso->name());
                              $stmt->execute();
                          
                              $perso->hydrate(array(
                                'id' => $this->_db->lastInsertId(),
                                'degats' => 0,
                                'experience' => 0,
                                'level' => 1
                              ));
                            }
                          
                            public function count() {
                              return $this->_db->query('SELECT COUNT(*) FROM t_personnage'
                              )->fetchColumn();
                          
                            }
                          
                            public function delete(Personnage $perso) {
                              $this->_db->exec('DELETE FROM t_personnage WHERE id=' .$perso->id());
                            }
                          
                            public function exists($info) {
                              // check if a user with id = $info exists
                              if (is_int($info)) {
                                return (bool) $this->_db->query('SELECT COUNT(*) FROM t_personnage
                                WHERE id=' .$info)->fetchColumn();
                              }
                          
                              // or if $info is not int, means check by name if user exists
                              $sql = 'SELECT COUNT(*) FROM t_personnage WHERE name= :name';
                              $stmt = $this->_db->prepare($sql);
                          
                              $stmt->execute(array(':name' => $info));
                          
                              return (bool) $stmt->fetchColumn();
                            }
                          
                            public function get($info) {
                              if (is_int($info)) {
                                $sql = $this->_db->query('SELECT * FROM t_personnage
                                                          WHERE id=' .$info);
                                $data = $sql->fetch(PDO::FETCH_ASSOC);
                          
                                return new Personnage($data);
                              }
                              else {
                                $sql = 'SELECT * FROM t_personnage WHERE name= :name';
                                $stmt = $this->_db->prepare($sql);
                          
                                $stmt->execute(array(':name' => $info));
                          
                                return new Personnage($stmt->fetch(PDO::FETCH_ASSOC));
                              }
                            }
                          
                            public function getList($name) {
                              $persos = array();
                          
                              $sql = 'SELECT * FROM t_personnage WHERE name<>:name ORDER BY name';
                              $stmt = $this->_db->prepare($sql);
                          
                              $stmt->execute(array(':name' => $name));
                          
                              while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
                                $persos [] = new Personnage($data);
                              }
                          
                              return $persos;
                            }
                          
                            public function update(Personnage $perso) {
                              $sql = 'UPDATE t_personnage SET degats = :degats, experience = :xp
                                      WHERE id= :id';
                              $stmt = $this->_db->prepare($sql);
                          
                              $stmt->bindValue(':degats', $perso->degats(), PDO::PARAM_INT);
                              $stmt->bindValue(':id', $perso->id(), PDO::PARAM_INT);
                              //$stmt->bindValue(':xp', $perso->xp(), PDO::PARAM_INT);
                          
                              $stmt->execute();
                            }
                          
                            public function setDb(PDO $db) {
                              $this->_db = $db;
                            }
                          }
                          

                          Il y a-t-il une erreur dans mon code?

                          Merci d'avance!


                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 septembre 2017 à 8:55:01

                            Désolé, je ne vois pas. Suis pas assez expérimenté.

                            De mon côté, j'ai fini par trouver comment faire mon construct.
                            Voir mon post précédent que j'ai mis à jour

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 septembre 2017 à 19:43:47

                              Bonjour

                              je sais pas si c'est du à mon erreur du haut, mais lorsque je lance l'application, je n'ai pas d'espace de connexion, donc je ne sais pas si la partie admin fonctionne. je viens de terminer la partie gestion des formulaire. chez vous, la partie admin s'affiche?

                              Merci

                              -
                              Edité par jissey 17 septembre 2017 à 19:44:10

                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 septembre 2017 à 22:46:42

                                Bonjour.

                                Je ne connais pas grand chose, j'essaie de faire un petit exercice avec les conditions,Pour un formulaire que je voudrais créer avec le PHP :

                                <?php

                                $name

                                if($name == "jojo")

                                {

                                    echo "vous etes un homme";

                                }

                                ?>

                                <form action="" >

                                <input type ="text" name="" >

                                <input type="submit" name="envoyer" value="dis moi">

                                </form>

                                Mais que je lance le formulaire, voici ce qu'il me dit:  ( ! ) Parse error: syntax error, unexpected 'if' (T_IF) in C:\wamp\www\index\formu4.php on line 4

                                Quel qu'un m'aider s'il vous plait ? où est mon erreur? . 

                                Merci beaucoup

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 septembre 2017 à 18:50:25

                                  salut, déjà l' erreur que je vois : oublie du ; aprés $name.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    20 septembre 2017 à 20:17:43

                                    -

                                    -
                                    Edité par Anonyme 20 septembre 2017 à 23:30:43

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 septembre 2017 à 9:49:33

                                      Jissey, merci d'avoir réagi. je ne trouve aucun problème à  chercher à savoir. en fait, j'aimerais faire un formulaire qui  reconnait seulement des personnes qui sont deja pré-définies. je m'explique: si la personne  ecrit Johanne200 ? PAR EXAMPLE, et que johanne200 est pré defini, alors un message sera afiché. je ne vois comment le faire meme avec if(isset($_POST ['' ])).

                                      Si tu sais de ton côté et le mettre sur ici sur le forum je n'aurai qu'à le copier. Merci beaucoup

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        21 septembre 2017 à 17:20:39

                                        JhonnyReyes, je ne vais te donner une formule tout faite, car je suis sur qu'il existe des tas de solution. Pour ma part, celle qui me viens en tête, c'est de faire un tableau de tes noms prédéfinis, après tu pourras utiliser ton if(issset()). je te laisse chercher un peu, mais pour t'aider je peu te suggérer d'avoir recours à in_array (http://php.net/manual/fr/function.in-array.php)

                                        Bam92, dans ton code, regarde du coté de

                                        public function recevoirDegats() {
                                            $this->_degats =+ 5;

                                        je crois qu'il faut plutôt marquer += 5;

                                        -
                                        Edité par jissey 21 septembre 2017 à 17:32:52

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          25 septembre 2017 à 20:23:00

                                          Petite question, est-ce normal que un type + variable en argument fonctionne pour un array ou un objet comme ci-dessous :

                                          public function hydrate(array $data) ...;
                                          public function setArme(Arme arme) ...;


                                          Mais pas les autres comme int, bool etc... :

                                          public function setId(int $id) ...;
                                          public function setInvulnerable(bool $value) ...;

                                          j'ai cette erreur qui me dit que l'argument doit être une instance de bool quand j'utilise setInvulnerable(true) :

                                          Catchable fatal error: Argument 1 passed to Personnage::setInvulnerable() must be an instance of bool, boolean given


                                          Une idée du pourquoi j'ai cette erreur ? :o.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            26 septembre 2017 à 10:17:28

                                            C'est parfait, j'ai activé PHP 7.0.10 sur WampServer et ça a fonctionné, merci Willy ^^.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              29 septembre 2017 à 14:20:30

                                              Bonjour les gars j'ai un problème pour résoudre ma page de connexion , en faite ma requête retourne toujours une valeur 1 ( c'est à dire vraie) avec n'importe quel information . voici l'essentiel : 

                                              <?php 

                                              $requete = (" select * from etudiant where Email_etudiant = '$Email' AND Mot_de_passe = '$password' ");

                                              $result = $connexion -> exec( $requete );

                                              if ( count ($result ) == 1 )

                                              {

                                              echo ' CONNEXION REUSSIE  ';

                                                      }

                                              else  echo '  Vous n\'etes pas incrit au site cliquer <a href=\'inscription.php\'> ici </a> pour s\'inscrire' ;

                                              ?> 

                                              Besoin de votre aide !!!!!!!!!!

                                              -
                                              Edité par AlAmine7 29 septembre 2017 à 14:28:41

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                29 septembre 2017 à 21:38:57

                                                Je suis pas entièrement sur mais je crois que c'est parce que result contient simplement le fait que la connexion a été réussie.

                                                Mais sinon, si tu utilise un objet pour gerer l'éxécution, tu devrais carrément préparer la requête, ça sera bien plus visible et logique, et ça te permettrait de d'inserer les variables de manière sécurisé.

                                                Dernier détails, si tu souhaites savoir si un utilisateur existe, tu devrais COMPTER et donc utiliser la requete SQL associé, et non selectionner des données. Ah et peu importe les données que tu va chercher, il faut toujours faire un petit fetch pour les organiser proprement dans un tableau php.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  4 octobre 2017 à 13:34:30

                                                  Salut à toutes et à tous,

                                                  Je suis au TP 3 de ce cours, et j'avoue être dans le brouillard pour ce cours là...

                                                  Concernant le TP 3 et créer un système de mise en cache, déjà je n'arrive pas à avoir la bonne interface, avec les news ou ajout de news pour l’accueil.

                                                  J'ai du me planter pour la configuration du fichier Host ou le fichier de config Apache, ma page d'accueil se trouve sur :

                                                  http://localhost/site-de-news/Web/

                                                  J'ai ajouté une news via PhpMyAdmin mais voici ce que j'ai avec cette adresse :

                                                  Ensuite je ne sais pas par quoi commencer pour ce TP, à par avoir compris de la pure théorie en POO Php, je trouve les exercices et TP trop dur.

                                                  J'aimerais savoir si quelqu'un a pu utiliser la code de base (du prof) concernant la gestion de news et ensuite si quelqu'un peut juste me donner quelques indications pour le dernier TP, merci beaucoup car je suis bloqué !

                                                  -
                                                  Edité par seb606 6 octobre 2017 à 15:28:59

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    10 octobre 2017 à 17:15:17

                                                    bonjour je suis nulle en programmation et j aimerais apprendre le langage de programmation php

                                                    qu'est ce que vous me proposer comme prérequis avant que je me lance?

                                                    merci de pouvoir m'aider

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      10 octobre 2017 à 18:01:27

                                                      DingoKalisto a écrit:

                                                      bonjour je suis nulle en programmation et j aimerais apprendre le langage de programmation php

                                                      qu'est ce que vous me proposer comme prérequis avant que je me lance?

                                                      merci de pouvoir m'aider



                                                      Bonjour,

                                                      Tu peux déjà commencer par ceci : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql, comme il est dit dans l'introduction du cours auquel ce forum est dédié...

                                                      Cdlt

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        11 octobre 2017 à 5:08:08

                                                        Salut graboide,

                                                        Si les 3 élèves ont rendu une copie blanche, ça peut aussi vouloir dire qu'il y a une grosse incompréhension concernant ce cours.

                                                        Perso j'ai trouvé ce cours ennuyeux et mal expliqué, il faudrait plus de petits exercices pour pratiquer et faire comprendre petit à petit le concept de la Poo.

                                                        J'ai un ami ingénieur et prof dans ce domaine qui a regardé le cours et m'a dit que celui-ci est mal fait et que le TP est trop dur pour des élèves débutants et qui n'ont pas de pratique...

                                                        Pour ma part, je suis coincé sur le TP (j'ai posté un message sur le forum, je n'ai pas eu de réponse), je comprend la théorie pour la POO et j'ai eu de bons résultats au quizz mais le TP, je pense le "sécher".

                                                        Je pense plus pratiquer pour le projet Php et je vais lire un livre sur la Poo en Php où il y a bc d'exercices.

                                                        Tu as mis 3 zéros aux gens pour la correction, tu aurais pu penser aussi qu'ils avaient eu un problème avec ce cours (mais ils auraient dans ce cas pu te le dire en commentaire ^^).

                                                        graboide a écrit:

                                                        J'ai enfin fini !

                                                        J'attend la correction de l'activité,

                                                        Pas facile mais pas impossible, en tout cas l’activité ma plus, elle permet de vraiment comprendre le fonctionnement de ce mini framework, j'ai pataugé au début puis c'est venu tous seul, le plus dur au finale c'est de réussir a comprendre ce que l'auteur veut qu'on face, il est pas trés clair du tout.

                                                        exemples, il parle du cache DES vues tout au long de l’énoncé mais a la fin il nous dit de réaliser seulement LA vue de l'index, du coup je savais plus ! une ou plusieurs ? 

                                                        la méthode createCache ben je trouve qui a mieux quand même que faire comme ça ! :/

                                                        par contre, j'ai corriger trois exercice = 3 zéros car feuille blanche ce qui veut dire :

                                                        -ces personnes ce fiche d'avoir le certificats et donc envoie n'importe quoi pour avoir la correction

                                                        -ou elle veulent la correction pour refaire le tp sur un autre compte

                                                        -ou elles ce sont tromper

                                                        dans les deux premiers cas il y a fort a parier que ces personnes corrigerons a l'arrache car pas intéressé voir mettrons 0 ou (j’espère c'est mieux)10  

                                                        mais sans vraiment corriger, en tout cas je suis déçut de pas voir pu corriger de vrais exercices, c'est enrichissant de voir les méthodes de d'autres personnes.

                                                        Bon courage a tous !



                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        MOOC Programmez en orienté objet en PHP

                                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                        • Editeur
                                                        • Markdown