Bonjour
Ci joint mon code php de traitement formulaire, envoi pj ok dans boite mail,test sur type de fichier ok mais si il n'y a pas de fichier joint je reçois le mail, je voudrais bloquer l'envoi si il n'y a pas de fichier joint
Test non valable?
$tmp_file = $_FILES['id_14']['tmp_name'];
if ($tmp_file<>""){
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}


<?PHP 
session_start();
/* Nous testons que la variable existe et qu'elle a bien la longueur souhaitée */
if(!isset($_SESSION['code']) OR strlen($_SESSION['code']) !=7) exit("Erreur !");
 
/* Comparaison entre les deux valeurs si elles sont différentes on arrete tout sinon on continue et on envoie le mail */
if($_SESSION['code'] != $_POST['verif']) exit("Erreur les valeurs sont différentes !");

$page_courante=1;
$num_cde=rand(10000,90000);
if ($_SESSION['page_courante']>$page_courante)
{
$retour_precedent=true;
}
$_SESSION['page_courante']=$page_courante;
$url_upload='';
$data='';
function convert_date_fr($date){
$myd=explode("/",$date);
return $myd[2]."-".$myd[1]."-".$myd[0];
}
$_SESSION["champs"]["1"]["libelle"]="Nom";$_SESSION["champs"]["1"]["contenu"]=str_replace('"','\"',$_POST["id_1"]);$_SESSION["champs"]["5"]["libelle"]="Ville";$_SESSION["champs"]["5"]["contenu"]=str_replace('"','\"',$_POST["id_5"]);$_SESSION["champs"]["6"]["libelle"]="Email";$_SESSION["champs"]["6"]["contenu"]=str_replace('"','\"',$_POST["id_6"]);
$content_dir = 'upload/'; 
$content_dir.=$chiffre."/";
$envoi_mail_pj=1;
IF (!file_exists("./upload")){
umask(0);
@mkdir("./upload",0777);
}
IF (!file_exists("./upload/$chiffre")){
umask(0);
@mkdir("./upload/$chiffre",0777);
}$nb_fic=0;
$url_chemin=str_replace("formulaire.php","","http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'] );

[b]$tmp_file = $_FILES['id_14']['tmp_name'];
if ($tmp_file<>""){
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}[/b]

if ( $_FILES['id_14']['size']>750000){
exit("Le poids de votre fichier est trop important.");
}

// on vérifie maintenant l'extension
$type_file1 = explode(".",$_FILES['id_14']['name']);
$type_file=strtolower($type_file1[count($type_file1)-1]);
IF (!strstr($type_file, 'doc')&&  !strstr($type_file, 'jpg') ){
exit("Ce type de fichier n'est pas autorisé.");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['id_14']['name'];

if( @preg_match('#[\x00-\x1F\x7F-\x9F/\\]#', $name_file))
{
exit("Nom de fichier non valide");
}
else {
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
else {
  $url_upload.='fichier à télécharger sur le serveur : '.$url_chemin.$content_dir . $name_file.'<br>';
  $nb_fic++;
$tab_fic[$nb_fic][0]=$content_dir . $name_file;
$tab_fic[$nb_fic][1]=$_FILES['id_14']['type'];
}	
}
}



$data.=$url_upload;
include('class.phpmailer.php');
if (@count($_SESSION["champs"] )>0) {
   foreach ($_SESSION["champs"] as $key => $value) {
     $data.=$value["libelle"]."=".$value["contenu"]."<br>";
   }
}
$data.=$msg_client_txt; 
$mail = new PHPMailer();
$mail->From     = ".....@....";
$mail->FromName = "";
$mail->Subject="testformulaire" ;
$mail->AddAddress('.....@.....', '');

$mail->Body    = $data.$msg_html_prod;
$mail->AltBody = $data.$msg_txt_prod;
      if ($nb_fic>0 && $envoi_mail_pj==1){ 
$x=1;

while ($x<=count($tab_fic)){

//$m->attachFile($tab_fic[$x][0],$tab_fic[$x][1]);
$mail->AddAttachment($tab_fic[$x][0], $tab_fic[$x][1]);
$x++;
}
}
$mail->send();
session_destroy() ;
header("location:  http://.../merci.html");
 
exit();
?>


*Utiliser les balises de colorisation syntaxique s'il vous plait, merci.

Modifié par 6l20 (25 Feb 2014 - 18:55)
jb_gfx a écrit :
Non, je te demande ce que signifie cette condition : &lt;&gt; (car ton problème vient de là).


Je ne sais pas si tu veux parler de la syntaxe (j'ai pas lu le code présenté), mais le <> est simplement l'équivalent de !=, comparaison. Après c'est peut être pas ce que tu pointais du toi Smiley smile

EDIT: doigt* pas toi.
Modifié par floreo (25 Feb 2014 - 20:51)