Bonjour,
Je viens de créer un formulaire tout simple en Php avec différents champs (nom, prénom etc...) dont un d'envoi de fichier (en locurrence un CV...).
Le formaulaire marche sans problème, tout les champs sont a la fois enregistrés dans une base de données et envoyés par mail.
J'aimerais ajouter une structure de controle sur le champ "file" (envoi du fichier) afin d'obtenir les action suivante :
1) --> Remplacer les " " (espaces) par des "_".
2) --> Vérifier si un fichier ne porte pas déjà ce nom, si oui, ajouter le chiffre "1" a la fin (ou un é si il y a déjà un 1...)
3) --> limter la taille du fichier à 2Mo
4) --> limiter les extensions (juste .doc, .zip, .pdf etc...)
voila,
Je pense que cela ne doit pas forcément être trop difficile, mais le dévelopement Php est loin d'être ma spécialité...
Voici le code :
Grand merci pour votre aide
Je viens de créer un formulaire tout simple en Php avec différents champs (nom, prénom etc...) dont un d'envoi de fichier (en locurrence un CV...).
Le formaulaire marche sans problème, tout les champs sont a la fois enregistrés dans une base de données et envoyés par mail.
J'aimerais ajouter une structure de controle sur le champ "file" (envoi du fichier) afin d'obtenir les action suivante :
1) --> Remplacer les " " (espaces) par des "_".
2) --> Vérifier si un fichier ne porte pas déjà ce nom, si oui, ajouter le chiffre "1" a la fin (ou un é si il y a déjà un 1...)
3) --> limter la taille du fichier à 2Mo
4) --> limiter les extensions (juste .doc, .zip, .pdf etc...)
voila,
Je pense que cela ne doit pas forcément être trop difficile, mais le dévelopement Php est loin d'être ma spécialité...
Voici le code :
<?
include("config/db.php");
opendb();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
width:100%; height:100%; margin:0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: normal;
}
#logo_repotel {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
text-transform: uppercase;
position:relative;
top:20px;
left:152px;
border:0;
z-index:1;
}
#logo_clinalliance {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
text-transform: uppercase;
position:relative;
top:-20px;
left:50px;
border:0;
z-index:2;
}
-->
</style>
</head>
<body>
<?
$classoubli = "style=\"visibility:hidden\"";
// DEBUT DE DU CONTROLES REMPLISSAGE DU FORMULAIRE + ENVOI MAIL ETC...
if ($_GET["action"] == "send_request")
{
$classoubli = "style=\"visibility:hidden\"";
if (empty($_POST["nom"]))
{
$ClassEmptyNom = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{
if (empty($_POST["prenom"]))
{
$ClassEmptyPrenom = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{
if (empty($_POST["adresse"]))
{
$ClassEmptyAdresse = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{
// A DECOMMENTER SI CHAMP "MAIL" OBLIGATOIRE
//function VerifierAdresseMail($adresse)
// {
// $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
// if(preg_match($Syntaxe,$adresse))
// return true;
// else
// return false;
// }
//if (empty($_POST["mail"]))
//{ echo "mail vide!!";}
//else
//{
//if (!VerifierAdresseMail($_POST["mail"]))
//{ echo "Vérifiez votre adresse mail";}
//else
//{
if (empty($_POST["contact"]))
{
$ClassEmptyContact = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{
if (empty($_POST["request"]))
{
$ClassEmptyRequest = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{
if (empty($_POST["etablissement"]))
{
$ClassEmptyEtablissement = "style=\"color:#FF0000\"";
$classoubli = "style=\"color:#FF0000\"";
}
else
{ //DEBUT DE L'ENVOI DU MAIL
$mes .= "Un message vient d'être envoyé depuis votre site web";
$mes .= " <br>";
$mes .= "<table border=\"1\" width=\"500\" cellpadding=\"3\">";
$mes .= " <tr>";
$mes .= " <td align=\"right\" width=\"255\">Nom de la personne</td>";
$mes .= " <td align=\"left\">$nom $prenom </td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Adresse</td>";
$mes .= " <td align=\"left\"> $adresse </td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Telephone fixe</td>";
$mes .= " <td align=\"left\">$telephone_fixe</td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Telephone portable</td>";
$mes .= " <td align=\"left\">$telephone_portable</td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Adresse mail</td>";
$mes .= " <td align=\"left\"><a href=\"mailto:$mail\">$mail</a></td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Desire être contacté par un établissement?</td>";
$mes .= " <td align=\"left\">$contact</td>";
$mes .= " </tr>";
if ($_POST["request"] == "retraite") { $request ="Obtenir des informations concernant une residence de retraite"; }
elseif ($_POST["request"] == "clinique") { $request ="Obtenir des informations concernant une clinique"; }
elseif ($_POST["request"] == "autre") { $request ="Autre"; }
$mes .= " <tr>";
$mes .= " <td align=\"right\">Nature de la demande :</td>";
$mes .= " <td align=\"left\">$request</td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">établissement concerné :</td>";
$sql = "SELECT id_residence,dep_residence,nom_residence,adresse_mail FROM residence WHERE id_residence=$etablissement";
$result = mysql_query($sql);
while ($val = mysql_fetch_array($result))
{
$id_residence = $val["id_residence"];
$dep_residence = $val["dep_residence"];
$nom_residence = $val["nom_residence"];
$adresse_mail = $val["adresse_mail"];
$nom_de_etablissement = "$dep_residence$nom_residence";
}
$mes .= " <td align=\"left\">$nom_de_etablissement</td>";
$mes .= " </tr>";
$mes .= " <tr>";
$mes .= " <td align=\"right\">Message:</td>";
$mes .= " <td align=\"left\">$message</td>";
$mes .= " </tr>";
$mes .= "</table>";
//echo $mes; // A SUPPRIMER (DEBUG)
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// En-têtes additionnels
$headers .= 'From: Repotel communication du site <contact@repotel.fr>' . "\r\n";
//Envoi du mail
mail($adresse_mail, 'Message depuis votre site web [Ne pas répondre]', stripslashes($mes), $headers);
// enregistrement du fichier sur le serveur (répertoire /CV)
$Fichier = $HTTP_POST_FILES["Fichier"];
$nom_du_fichier = basename($HTTP_POST_FILES["Fichier"]["name"]);
if ( isset($Fichier) && !empty($Fichier) )
{
echo "<span class=\"ok\">Photo uploadée ($nom_du_fichier)</span>";
copy($HTTP_POST_FILES["Fichier"]["tmp_name"], "cv/$nom_du_fichier");
}
// DEBUT INSERTION DE L'ENVOI DANS LA BASE DE DONNEE
$date1=date("Y-m-d");
$time=date("H:i:s");
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$adresse=$_POST["adresse"];
$telephone_fixe=$_POST["telephone_fixe"];
$telephone_portable=$_POST["telephone_portable"];
$mail=$_POST["mail"];
$contact=$_POST["contact"];
$request=$_POST["request"];
$etablissement=$_POST["etablissement"];
$message=$_POST["message"];
$nom=addslashes($nom);
$prenom=addslashes($prenom);
$adresse=addslashes($adresse);
$message=addslashes($message);
//enregistrement des informations dans la base de données
if(mysql_query("INSERT INTO `log_mail` ( `nom_mail` , `date_mail` , `time_mail` , `prenom_mail` , `adresse_mail` , `telephone_fixe_mail` , `telephone_portable_mail` , `mail_mail` , `contact_mail` , `request_mail` , `etablissement_mail` , `message_mail` , `nom_fichier_cv` )
VALUES ('".$nom."', '".$date1."', '".$time."', '".$prenom."', '".$adresse."', '".$telephone_fixe."', '".$telephone_portable."', '".$mail."', '".$contact."', '".$request."', '".$etablissement."', '".$message."', '".$nom_du_fichier."');"
))
echo "<center>Informations envoyées avec succès.</center>";
else
echo "<center>Erreur lors de l'envoi des informations.</center>";
// FIN INSERTION DE L'ENVOIE DANS LA BASE DE DONNEE
}
}
}
// accolades des mails
//}
//}
}
}
}
}
?>
<table align="center" cellpadding="0" cellspacing="0" border="0" width="737" style="background-image:url(img/background_contact.jpg); height:737px;">
<tr>
<td height="170" width="130"><span id="logo_repotel"><a href="index.php" target="_self"><img src="img/logo_repotel.png" alt="Repotel" border="0"></a></span><span id="logo_clinalliance"><a href="../Clinalliance" target="_self"><img src="img/logo_clinalliance.png" alt="Clinalliance" border="0"></a></span></td>
<td></td>
</tr>
<tr>
<td></td>
<td valign="top">
<span <? echo $classoubli; ?>>Merci de remplir les champs en rouge.</span>
<form enctype="multipart/form-data" action="<? echo $PHP_SELF; ?>?action=send_request" method="post" name="form_contact">
<table>
<tr>
<td align="right" width="84" nowrap <? echo $ClassEmptyNom; ?>>*Nom:</td>
<td><input type="text" name="nom" value="<? if ($_POST["nom"]!="") echo $_POST["nom"];?>"></td>
<td align="right" width="84" nowrap <? echo $ClassEmptyPrenom; ?>>*Prenom:</td>
<td align="right" nowrap <? echo $ClassEmptyPrenom; ?>><input type="text" name="prenom" value="<? if ($_POST["prenom"]!="") echo $_POST["prenom"];?>"></td>
</tr>
</table>
<table width="550" border="0">
<tr>
<td align="right" width="84" nowrap <? echo $ClassEmptyAdresse; ?>>*Adresse :</td>
<td align="left"><input type="text" name="adresse" size="60" value="<? if ($_POST["adresse"]!="") echo $_POST["adresse"];?>"></td>
</tr>
</table>
<table>
<tr>
<td align="right" width="84" nowrap>Téléphone:</td>
<td align="left" nowrap><input type="text" name="telephone_fixe" value="<? if ($_POST["telephone_fixe"]!="") echo $_POST["telephone_fixe"];?>"></td>
<td align="right" width="84">Portable:</td>
<td align="left" nowrap><input type="text" name="telephone_portable" value="<? if ($_POST["telephone_portable"]!="") echo $_POST["telephone_portable"];?>"></td>
</tr>
</table>
<table width="450" border="0">
<tr>
<td align="right" width="84" nowrap>Email : </td>
<td><input type="text" name="mail" value="<? if ($_POST["mail"]!="") echo $_POST["mail"];?>"></td>
</tr>
</table>
<table border="0">
<tr>
<td>
<table>
<tr>
<td>*Desirez-vous être contacté par un établisement?</td>
<td <? echo $ClassEmptyContact; ?>><input type="radio" value="oui" name="contact" <? if ($_POST["contact"]=="oui") echo "checked=\"checked\"";?>>Oui</td>
</tr>
<tr>
<td></td>
<td <? echo $ClassEmptyContact; ?>><input type="radio" value="non" name="contact" <? if ($_POST["contact"]=="non") echo "checked=\"checked\"";?>>non</td>
</tr>
<tr>
<td></td>
<td <? echo $ClassEmptyContact; ?>><input type="radio" value="par mail uniquement" name="contact" <? if ($_POST["contact"]=="par mail uniquement") echo "checked=\"checked\"";?>>Par mail uniquement</td>
</tr>
</table>
</td>
</tr>
<tr>
<td <? echo $ClassEmptyRequest; ?>>*Vous souhaitez :
<select name="request">
<option value=""> </option>
<option value="retraite" <? if ($_POST["request"]=="retraite") echo "selected=\"selected\"";?>>Obtenir des informations concernant une residence de retraite</option>
<option value="clinique" <? if ($_POST["request"]=="clinique") echo "selected=\"selected\"";?>>Obtenir des informations concernant une clinique</option>
<option value="autre" <? if ($_POST["request"]=="autre") echo "selected=\"selected\"";?>>Autre</option>
</select>
</td>
</tr>
<tr>
<td <? echo $ClassEmptyEtablissement; ?>>*établissement concerné :
<select name="etablissement">
<option value=""> </option>
<optgroup label="Repotel">
<? $sql = "SELECT id_residence,dep_residence,nom_residence FROM residence WHERE type_residence='repotel' ORDER BY dep_residence";
$result = mysql_query($sql);
while ($val = mysql_fetch_array($result))
{
$id_residence = $val["id_residence"];
$dep_residence = $val["dep_residence"];
$nom_residence = $val["nom_residence"];
if ($id_residence == $_POST["etablissement"]) { $select1 = "selected=\"selected\""; } else { $select1 = ""; }
echo "<option value=\"$id_residence\" $select1>$dep_residence $nom_residence</option>";
}
?>
</optgroup>
<optgroup label="Clinalliance">
<? $sql = "SELECT id_residence,dep_residence,nom_residence FROM residence WHERE type_residence='clinalliance' ORDER BY dep_residence";
$result = mysql_query($sql);
while ($val = mysql_fetch_array($result))
{
$id_residence = $val["id_residence"];
$dep_residence = $val["dep_residence"];
$nom_residence = $val["nom_residence"];
if ($id_residence == $_POST["etablissement"]) { $select1 = "selected=\"selected\""; } else { $select1 = ""; }
echo "<option value=\"$id_residence\" $select1>$dep_residence $nom_residence</option>";
}
?>
</optgroup>
</select>
</td>
</tr>
<tr>
<td>
joindre votre cv <input type="hidden" name="MAX_FILE_SIZE" value="10000000"><input name="Fichier" type="file">
</td>
</tr>
<tr>
<td>Votre Message :</td>
</tr>
<tr>
<td><textarea cols="60" rows="8" name="message"><? if ($_POST["message"]!="") echo stripslashes($_POST["message"]);?></textarea></td>
</tr>
<tr style="margin-right:100">
<td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" align="right">* Champs obligatoires </td>
<td align="left" nowrap="nowrap" width="180"><input type="submit" value="Envoyer"> <input type="button" value="Annuler" onclick="javascript:history.back ()"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
<?
closedb();
?>
Grand merci pour votre aide
