Bonjour, voila grace a ce site j ai reussi a faire un upload , ou j ai rajouter des champs.
Mon probleme c est que dans mon formulaire , si les gens remplisse des champs et ne mettent rien dans l upload le formulaire a part , et inversement si les gens mettent un upload , mais ne remplisse pas les champsle formulaire par aussi et biensur si tout les champs sont remplis le formulaire par aussi.
Donc mon probleme est bien la verification des champs , voici mon code en esperant que quelqu un pourra m aider, je pense que vous constaterez le probleme par vous meme.
<font size="4">
<font color="#FF0000">
<center>
<?php
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$extension = strrchr($_FILES'avatar']'name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement remplis:</font><br/>";
$msg_ok = "Votre envoie a bien été prise en compte.<br/></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br/></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com'); // remplacer par votre email
define('MAIL_SUJET', 'Envoie de fichier');
?>
</center>
<font color="#0000FF">
<CENTER>
<?php
// vérification des champs
if (empty($_POST'Nom']))
$message .= "Veuillez indiquer votre nom<br/>";
if (empty($_POST'Nom']))
$message .= "Veuillez indiquer votre nom<br/>";
if (isset($_POST'Email'])) {
$_POST'Email'] = htmlspecialchars($_POST'Email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
$message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
}
if (isset($_POST'Emaill'])) {
$_POST'Emaill'] = htmlspecialchars($_POST'Emaill']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
$message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br/>';
}
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur))
echo $message;
// sinon c'est ok
else {
foreach ($_POST as $index => $valeur)
$$index = stripslashes(trim($valeur));
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST'Nom']} ";
$mail_entete .= "<{$_POST'Email']}>\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";
// préparation du corps du mail
$mail_corps .= "Fichier recu\n";
$mail_corps .= "\n";
$mail_corps .= "Nom : $Nom\n";
$mail_corps .= "Email : $Email\n";
$mail_corps .= "\n";
$mail_corps .= "Les Fridolin's\n";
$mail_corps .= "\n";
$mail_corps .= "Email: tsf@saint-fridolin.com\n";
$mail_corps .= "Site: www.saint-fridolin.com\n";
// Si l'envois du mail fonctionne.
if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete))
echo $msg_ok;
//Sinon si l'envois ne fonctionne pas.
else
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Essai sa:
<font size="4">
<font color="#FF0000">
<center>
<?php
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$extension = strrchr($_FILES'avatar']'name'], '.');
if(!in_array($extension, $extensions)) {
$erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille>$taille_maxi) {
$erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
$msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
define('MAIL_SUJET', 'Envoie de fichier');
?>
</center>
<font color="#0000FF">
<CENTER>
<?php
if (empty($_POST'Nom'])) {
$message .= "Veuillez indiquer votre nom<br />";
}
if (!empty($_POST'Email'])) {
$_POST'Email'] = htmlspecialchars($_POST'Email']);
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
$message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
}
else {
$message .= "Veuillez indiquer votre Email<br />";
}
if (!empty($_POST'Emaill'])) {
$_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
$message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
}
else {
$message .= "Veuillez indiquer votre Email de confirmation<br />";
}
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
}
else {
foreach ($_POST as $index => $valeur)
$$index = stripslashes(trim($valeur));
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST'Nom']} ";
$mail_entete .= "<{$_POST'Email']}>\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";
$mail_corps .= "Fichier recu\n";
$mail_corps .= "\n";
$mail_corps .= "Nom : $Nom\n";
$mail_corps .= "Email : $Email\n";
$mail_corps .= "\n";
$mail_corps .= "Les Fridolin's\n";
$mail_corps .= "\n";
$mail_corps .= "Email: tsf@saint-fridolin.com\n";
$mail_corps .= "Site: www.saint-fridolin.com\n";
if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
echo $msg_ok;
}
else {
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
}
if(!isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
echo 'Upload effectué avec succès !';
}
else{
echo 'Echec de l\'upload !';
}
}
else{
echo $erreur;
}
?>
merci pour ta reponse mais je recois un message d erreur unexpected T_VARIABLE , ta une idée?
Merci pour ton aide
Change la fin du code:
if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
echo 'Upload effectué avec succès !';
}
else{
echo 'Echec de l\'upload !';
}
}
else{
echo $erreur;
}
<font size="4">
<font color="#FF0000">
<center>
<?php
if (!empty($_POST) AND empty($_FILES)) {
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$extension = strrchr($_FILES'avatar']'name'], '.');
if(!in_array($extension, $extensions)) {
$erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille>$taille_maxi) {
$erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
$msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
define('MAIL_SUJET', 'Envoie de fichier');
?>
</center>
<font color="#0000FF">
<CENTER>
<?php
if (empty($_POST'Nom'])) {
$message .= "Veuillez indiquer votre nom<br />";
}
if (!empty($_POST'Email'])) {
$_POST'Email'] = htmlspecialchars($_POST'Email']);
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
$message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
}
else {
$message .= "Veuillez indiquer votre Email<br />";
}
if (!empty($_POST'Emaill'])) {
$_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
$message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
}
else {
$message .= "Veuillez indiquer votre Email de confirmation<br />";
}
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
}
else {
foreach ($_POST as $index => $valeur)
$$index = stripslashes(trim($valeur));
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST'Nom']} ";
$mail_entete .= "<{$_POST'Email']}>\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";
$mail_corps .= "Fichier recu\n";
$mail_corps .= "\n";
$mail_corps .= "Nom : $Nom\n";
$mail_corps .= "Email : $Email\n";
$mail_corps .= "\n";
$mail_corps .= "Les Fridolin's\n";
$mail_corps .= "\n";
$mail_corps .= "Email: tsf@saint-fridolin.com\n";
$mail_corps .= "Site: www.saint-fridolin.com\n";
if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
echo $msg_ok;
}
else {
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
}
if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
echo 'Upload effectué avec succès !';
}
else{
echo 'Echec de l\'upload !';
}
}
else{
echo $erreur;
}
}
?>
Je te donne aussi mon code du formulaire au cas ou
<form method="post" action="reception.php" enctype="multipart/form-data">
<center>
<p><u>Veuillez taper votre Nom :</u></p>
<p><input type="text" name="nom" required="required" /></p>
<br/>
<p><u>Veuillez taper votre Email :</u></p>
<p><input type="text" name="email" required="required" /></p>
<br/>
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
<p><u>Fichier :</u></p>
<input type="file" name="avatar" required="required" /><br/><br/>
<input type="submit" name="Envoyer" id="Envoyer" value="Envoyer"/>
</center>
</form>
En espérant que c'est bon:
<font size="4">
<font color="#FF0000">
<center>
<?php
if (!empty($_POST) OR !empty($_FILES)) {
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$extension = strrchr($_FILES'avatar']'name'], '.');
if(!in_array($extension, $extensions)) {
$erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille > $taille_maxi) {
$erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
$msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
define('MAIL_SUJET', 'Envoie de fichier');
}
?>
</center>
<font color="#0000FF">
<CENTER>
<?php
if (!empty($_POST) OR !empty($_FILES)) {
if (empty($_POST'Nom'])) {
$message .= "Veuillez indiquer votre nom<br />";
}
if (!empty($_POST'Email'])) {
$_POST'Email'] = htmlspecialchars($_POST'Email']);
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
$message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
}
else {
$message .= "Veuillez indiquer votre Email<br />";
}
if (!empty($_POST'Emaill'])) {
$_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill'])) {
$message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
}
}
else {
$message .= "Veuillez indiquer votre Email de confirmation<br />";
}
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
}
else {
foreach ($_POST as $index => $valeur)
$$index = stripslashes(trim($valeur));
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST'Nom']} ";
$mail_entete .= "<{$_POST'Email']}>\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";
$mail_corps .= "Fichier recu\n";
$mail_corps .= "\n";
$mail_corps .= "Nom : $Nom\n";
$mail_corps .= "Email : $Email\n";
$mail_corps .= "\n";
$mail_corps .= "Les Fridolin's\n";
$mail_corps .= "\n";
$mail_corps .= "Email: tsf@saint-fridolin.com\n";
$mail_corps .= "Site: www.saint-fridolin.com\n";
if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
echo $msg_ok;
}
else {
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
}
if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
echo 'Upload effectué avec succès !';
}
else{
echo 'Echec de l\'upload !';
}
}
else{
echo $erreur;
}
}
?>