Probleme retour erreur

Résolu/Fermé
nightcryo76 Messages postés 5 Date d'inscription mercredi 20 janvier 2016 Statut Membre Dernière intervention 20 janvier 2016 - 20 janv. 2016 à 16:14
nightcryo76 Messages postés 5 Date d'inscription mercredi 20 janvier 2016 Statut Membre Dernière intervention 20 janvier 2016 - 20 janv. 2016 à 22:35
bonjour,
je rencontre un problème avec mon code, jai protéger les extension pour ne pas recevoir de fichier .php et quand je télécharge un fichier .php je ne reçoi pas le message d'erreur de l'extension et il envoi quand même mon formulaire.
voici mon fichier:

<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] > 0) $erreur = "Erreur lors du transfert";

{

// Testons si le fichier n'est pas trop gros

if ($_FILES['monfichier']['size'] <= 1000000)

{

// Testons si l'extension est autorisée

$infosfichier = pathinfo($_FILES['monfichier']['name']);

$extension_upload = $infosfichier['extension'];

$extensions_autorisees = array('.jpg', '.jpeg');

if (in_array($extension_upload, $extensions_autorisees))
{

// On peut valider le fichier et le stocker définitivement

move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));

echo "";

}

}

}
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']) and isset($_POST['prix']) and isset($_POST['objet']) and isset($_FILES['monfichier']['name']))
{
$destinataire = 'contact@carpepassion.fr';
$email = htmlentities($_POST['email']);
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`
~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
{
$sujet = 'Contact: '.(strip_tags (stripslashes($_POST['sujet']))) ;
$message = (strip_tags (stripslashes($_POST['objet']))) .'-' . (strip_tags (stripslashes($_POST['prix']))) .'-' . (strip_tags (stripslashes($_POST['message']))) .'-' . (strip_tags (stripslashes($_FILES['monfichier']['name']))) .'-' ;

$headers = "From: <".$email.">\n";
$headers .= "Reply-To: ".$email."\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "<strong style=\"color:#FFFFFF;\">Votre annonce a bien ete envoye avec succes et sera mise en ligne prochainement.</strong>";
}
else
{
echo "<strong style=\"color:#FFFFFF;\">Une erreur c'est produite lors de l'envois du message.</strong>";
}
}
else
{
echo "<strong style=\"color:#FFFFFF;\">L'email que vous avez entré est invalide.</strong>";
}
}
else
{
?>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend><font color="#FFFFFF">deposer une annonce</font></legend>
<p></p>
<label for="sujet" style="display:inline-block;width:100px;"><strong><font color="#FFFFFF">pseudo:</font></strong></label> <input type="sujet" name="sujet" id="sujet" /><br />
<p></p>
<label for="email" style="display:inline-block;width:100px;"><strong><font color="#FFFFFF">Email:</font></strong></label> <input type="text" name="email" id="email" /><br />
<p></p>
<label for="objet" style="display:inline-block;width:100px;"><strong><font color="#FFFFFF">Objet:</font></strong></label> <input type="text" name="objet" id="objet" /><br />
<p></p>
<label for="prix" style="display:inline-block;width:100px;"><strong><font color="#FFFFFF">prix:</font></strong></label> <input type="number" name="prix" id="prix" /><br />
<p></p>
<label for="message"><strong><font color="#FFFFFF">Votre annonce:</font></strong></label><br />
<textarea cols="70" rows="4" name="message" id="message"></textarea><br />
<p></p>
<label for="photo" style="display:inline-block;width:100px;"><strong><font color="#FFFFFF">photo:</font></strong></label><font color="#FFFFFF"><input type="file" name="monfichier" /></font><br />
<p></p>
<input type="submit" value="Envoyer" />
</fieldset>
</form>
<?php
}
?>

4 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
20 janv. 2016 à 16:54
Salut,

Tu n'as aucun traitement pour le cas où l'extension n'est pas autorisée.
Il faut ajouter un bloc else à la suite du bloc
if (in_array($extension_upload, $extensions_autorisees))
afin d'afficher un message d'erreur.

Bonne journée
1
nightcryo76 Messages postés 5 Date d'inscription mercredi 20 janvier 2016 Statut Membre Dernière intervention 20 janvier 2016 1
20 janv. 2016 à 22:35
Bonsoir,
J'ai trouvé une autre solution, j'ai utilisé type mime, tout fonctionne impeccablement bien. donc j'ai remplacer sa:

 
$infosfichier = pathinfo($_FILES['monfichier']['name']);

$extension_upload = $infosfichier['extension'];

$extensions_autorisees = array('jpg', 'jpeg');

if (in_array($extension_upload, $extensions_autorisees))



par sa:

$type_file = $_FILES['fichier']['type'];
$allowed_types = array(
"image/pjpeg",
"image/jpeg",

);
if (!in_array($_FILES['fichier']['type'], $allowed_types))
die ('fichier incorrect');
1
nightcryo76 Messages postés 5 Date d'inscription mercredi 20 janvier 2016 Statut Membre Dernière intervention 20 janvier 2016 1
20 janv. 2016 à 17:30
Bonjour,
j'ai essayé, je n'ais pas dut bien le codé car quand je met le bloque else sa me met une erreur à la ligne de mon message d'erreur
0
nightcryo76 Messages postés 5 Date d'inscription mercredi 20 janvier 2016 Statut Membre Dernière intervention 20 janvier 2016 1
20 janv. 2016 à 18:26
Bonjour, voilà le changement apporté a mon codage, mais sa ne fonctionne toujour pas:

if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] > 0) $erreur = "Erreur lors du transfert";

{

// Testons si le fichier n'est pas trop gros

if ($_FILES['monfichier']['size'] <= 1000000)

{

// Testons si l'extension est autorisée

$infosfichier = pathinfo($_FILES['monfichier']['name']);

$extension_upload = $infosfichier['extension'];

$extensions_autorisees = array('jpg', 'jpeg');

if (in_array($extension_upload, $extensions_autorisees))

{

// On peut valider le fichier et le stocker définitivement

move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));

{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}

}

}

}
0