explication de correction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : explication de correction

Re: explication de correction

par Spols » 20 juil. 2017, 08:08

La fonction de ta classe crée un dossier selon certaine condition.

Afin de rester le plus généraliste possible, le mieux serait d'utiliser des arguments à ta fonction plutot que d'y utiliser les variable $_POST

Imagine que plus tard, tu te retrouve avec un autre formulaire demandant une ville par exemple, et que tu veuille créer un dossier au nom de cette ville. Tu ne pourra pas réutiliser ta fonction actuelle, car tu l'a limité à la variable $_POST['nom'];

en mettant donc tes 2 variables $_POST['valider'] et $_POST['nom'] en paramètres de ta fonction, tu devra l'appeler en précisant ceux-ci : $create->getCreate($_POST['valider'], $_POST['nom']);
Mais cela te permettra d'appeler plus tard $create->getCreate($_POST['valider'], $_POST['ville']); si besoin
<?php
class Create
{
public function getCreate($validation, $dossier,$titre = 'nom')
{
//si le formulaire est soumis
if(isset($$validation))
{
if (!empty($dossier)) 
{
//si le champ name n'est pas vide
if(!file_exists($dossier))
{
//si le dossier n'existe pas déjà
mkdir($dossier,0777,true);
echo "Le Dossier -- ".$dossier." -- a bien été crée";
}
}else
{
echo "Veuillez rentrer un ".$titre;
}
}
}
}
?>
La variable $titre permet de rester souple au niveau du message d'erreur, mais une valeur par défaut est fourni en cos d’omission du 3ème paramètre.

explication de correction

par quattro » 19 juil. 2017, 18:39

Voici un corrigé :
<?php
class Create
{
public function getCreate() // WARNING: le but d'une fonction est d'appliquer à une donnée passée en argument un traitement qui sera retournée à la fin
  {
   //si le formulaire est soumis
   if(isset($_POST['valider'])) //WARNING: il est préférable de passer cette donnée en paramètre de la fonction
   {
     if (!empty($_POST['nom'])) //WARNING: il est préférable de passer cette donnée en paramètre de la fonction 
      {
   //si le champ name n'est pas vide
        $dossier = $_POST['nom']; //WARNING: il est préférable de passer cette donnée en paramètre de la fonction
   //si le dossier n'existe pas déjà
      if(!file_exists($dossier))
      {
         mkdir($dossier,0777,true);
      echo "Le Dossier -- ".$dossier." -- a bien ete cree";
        }
      }else
      {
        echo "Veuillez rentrer un nom";
      }
   }
  }
}
?>
Comment interprété les 2 premier warning de la correction.