try and cache

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 : try and cache

Re: try and cache

par @rthur » 20 déc. 2017, 12:42

salut @rthur,
comment tu vérifie la condition d'un if?
En faisant un var_dump() de la condition de ton if pour voir si ça te renvoie bien true/false comme souhaité

Re: try and cache

par Ryle » 20 déc. 2017, 12:36

Ce n'est pas une question de nom de variable, c'est surtout une question de séparer les instructions pour permettre à ceux qui devront lire et maintenir ton code de comprendre ce qui t'as traversé l'esprit au moment où tu l'as codé (et cette personne, ça peut très bien être toi dans 6 mois ;))
$mimes = array(
 // ms office
 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 'doc' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
 'xls' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 
 // adobe
 'pdf' => 'application/pdf',
 // archives
 'zip' => 'application/zip,application/x-zip,application/x-zip-compressed',
 'rar' => 'application/x-rar-compressed',
);

$fileInfo = $finfo->file($_FILES['file']['tmp_name']);

$ext = array_search( $fileInfo, $mimes,  true);

if ($ext === false) {
  ...
}
Et pour tester le if, tu peux ainsi facilement ajouter des echo pour afficher $fileInfo et constater des valeurs que tu reçois et compare :)

Re: try and cache

par tycoons » 10 déc. 2017, 14:49

salut @rthur,
comment tu vérifie la condition d'un if?
si je mais autre chose que zip est rar exemple un docx sa fonctionne, j'ai fait une erreur dans mon code?
tu préconise que je change le nom de mes variables pas de souci je viens de le faire mais je sèche sur ce if
merci de ton aide

Re: try and cache

par @rthur » 09 déc. 2017, 12:25

Bonjour,

Vérifie la condition de ton if() qui déclenche cette erreur
Par ailleurs, il serait préférable que tu sépare proprement tes affectations de variables pour rendre ton code + lisibles et limiter le risque de bug par la même occasion ;)

try and cache

par tycoons » 08 déc. 2017, 13:23

Bonjour a tous,
j'ai une erreur étrange avec mon try and cache de formulaire et je ne voie pas ou sa peche:
 try {
if(!isset($_FILES,$_POST["upload"]))
{
         $tab = array("post "=> $_POST,"files" => $_FILES);
         $de=$_POST['email_de'];
         $a=$_POST['a'];
         $sujet=$_POST['sujet'];
         $msg=$_POST['msg'];
}
if(empty($_POST['email_de']))
   {
  throw new RuntimeException('votre email est  obligatoire.');

   }
if(empty($_POST['sujet']))
   {
  throw new RuntimeException('le sujet est obligatoire.');

   }
 if ( !isset($_FILES['file']['error']) || is_array($_FILES['file']['error']) ) 
{
           throw new RuntimeException('parametre invalide.');
           }
switch ($_FILES['file']['error']) 
{

 case UPLOAD_ERR_OK:
  break;
 case UPLOAD_ERR_NO_FILE:
       throw new RuntimeException('le fichier n as pas été envoyer');
break;
case UPLOAD_ERR_INI_SIZE:
break; 
case UPLOAD_ERR_FORM_SIZE:
   throw new RuntimeException('la taille est trop grande');
break;
default:
      throw new RuntimeException('Erruer inconnue');
}
 // Cheking file size.
 if ($_FILES['file']['size'] >  209715200  ) 
 { 
 throw new RuntimeException('La Taille du fichier est trop grosse 200MO maxi.');
 }
 // Check MIME Type
 $finfo = new finfo(FILEINFO_MIME_TYPE);
 if ( false === $ext = array_search(
 $finfo->file($_FILES['file']['tmp_name']),
 array(
 // ms office
 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 'doc' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
 'xls' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
 
 // adobe
 'pdf' => 'application/pdf',
 // archives
 'zip' => 'application/zip,application/x-zip,application/x-zip-compressed',
 'rar' => 'application/x-rar-compressed',
 ),
 true
 )) 
 {
 throw new RuntimeException('Le format du fichier est invalide.');
}
//ici j insert dans ma base et j envoie un mail
 catch (RuntimeException $e) {

    echo $e->getMessage();

}
mais j ai une erreur lors de l envoi de mon fichier les zip et rar sa me dit format invalide
pourtant je me suis baser sur sa pour la versification de files: http://php.net/manual/en/features.file-upload.php
je doit avoir une erreur de syntaxe mais je la vois pas
merci pour votre aide