J'ai crée un petit site de coaching personnel.
il y a un formulaire à remplir et une photo à envoyer, mais j'ai quelques petit problèmes
avec le module traitement.php.
bon je n'y connais pour ainsi dire rien au php, j'ai donc été aidé au départ pour la partie php.
Quelqu'un pourrait il m'aider à corriger les problèmes restant :
Dans le formulaire il y a 2 boutons radio, 1 pour "envoi du formulaire avec photo" et un avec
"envoi du formulaire sans photo.
-le hic c'est que la vérification du champ de l'upload ne se fait pas, et donc il n'y a pas de message d'alerte en cas de non envoi
de la photo si l'option avec photo est coché.
-Il y a aussi un problème lorsque je reçois le texte que rempli la personne : un anti slash se place avant le signe apostrophe ou guillemet
Merci d'avance pour votre aide et compréhension.
Je vous donne le formulaire et son traitement :
Code : Tout sélectionner
<form action="traitementbabyl222.php" method="post" enctype="multipart/form-data">
<p>Cochez votre choix (tous les champs sont obligatoires) :</p>
<ul>
<li><input type="radio" id="sans_photo" name="question_type" value="Sans photo" checked="checked"><label for="sans_photo">Question sans photo / xx euros</label></li>
<li><input type="radio" id="avec_photo" name="question_type" value="Avec photo" checked="checked"><label for="avec_photo">Question avec photo / yy euros</label></li>
</ul>
<p><label for="prenom">Votre prénom :</label><br/><input type="text" id="prenom" name="prenom"></p>
<p><label for="email">Votre adresse e-mail :</label><br/><input type="text" id="email" name="email"></p>
<p><label for="question">Votre question :</label><br/><textarea id="question" name="question" cols="48" rows="8"></textarea></p>
<p><label for="photo">Votre photo :</label><br/><input type="file" id="photo" name="photo"></p>
<p>Si vous souhaitez une copie de ce formulaire par mail, cochez cette case :<input type="checkbox" name="copie" value="1"/></p>
<p><input type="submit" name="envoi" value="Envoyer">
</form>Le traitement.php :
Code : Tout sélectionner
<?php
// definitions
$adresse_ton_site = 'http://www.xxxxxxxxxxx.com/';
$destination_photos = 'photosclients/';
$destination_email = '[email protected]';
$objet = "Réception du formulaire :";
// recuperation des variables
$question_type = (isset($_POST['question_type'])) ? $_POST['question_type'] : '';
$prenom = (isset($_POST['prenom'])) ? sprintf("%s", trim($_POST['prenom'])) : '';
$email = (isset($_POST['email'])) ? sprintf("%s", trim($_POST['email'])) : '';
$question = (isset($_POST['question'])) ? sprintf("%s", trim($_POST['question'])) : '';
$taille = filesize($_FILES['photo']['tmp_name']); //Taille du fichier
// verification des variables
$erreurs = array(); // par defaut, vide
if ($prenom == '')
$erreurs[] = 'Il faut renseigner votre prenom.';
if (($email == '') || (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/" , $email) == false))
$erreurs[] = 'Votre email est vide ou mal orthographie. Verifiez.';
if ($question == '')
$erreurs[] = 'Il faut renseigner votre question.';
if (!in_array($question_type, array('Sans photo', 'Avec photo')))
$question_type = 'Sans photo'; // par defaut s'il triche et que rien n'est envoye, on reste sur "sans photo".
if (($question_type == 'Avec photo') && (!empty($_FILES['photo']['tmp_name'])))
{
$array_extensions_permises = array('gif', 'jpg', 'png');
$taille_maxi = 2300000; // taille maximum (en octets)
// on recupere l'extension de la photo
$temp = explode('.', basename($_FILES['photo']['name']));
$extension = $temp[count($temp) -1];
if (!in_array($extension, $array_extensions_permises))
$erreurs[] = 'Veuillez télécharger une photo en gif, jpg ou png, merci.';
// on limite la taille à 2 mo
if( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_maxi)
{
$erreurs[] = "Votre fichier doit faire moins de 2 mo !";
}
// on limite la taille à 2 Mo
if (isset($_FILES['photo']) && in_array($_FILES['photo']['type'], array('image/gif', 'image/jpg', 'image/png')))
{
$erreurs[] = 'Il faut telecharger une image, svp.';
}
}
if (count($erreurs) > 0)
{
echo '<center><p><strong style="color:#FF0000;">'.join('<br>', $erreurs).'</strong></p></center>';
}
else // formulaire OK
{
// on recupere la photo uniquement si le choix est sur "avec photo"
if (($question_type == 'Avec photo') && (!empty($_FILES['photo']['name'])))
{
// on recupere l'extension de la photo
$temp = explode('.', basename($_FILES['photo']['name']));
// on renomme la photo avec l'email et la date
$nom_photo = date('Ymd_His').'_photo_'.$email.'.'.$temp[count($temp) -1];
opendir($destination_photos);
if (!move_uploaded_file($_FILES['photo']['tmp_name'], $destination_photos.$nom_photo))
echo '<center><p><strong style="color:#FF0000;">Erreur au telechargement du fichier - trop gros ou pas le droit d ecriture.</strong></p></center>';
};
// on envoie le mail final
$headers = 'From: '.$prenom.' <'.$email.'>' . "\r\n";
$headers = 'Reply-To: '.$email. "rn";
$message = "Vous avez rempli le formulaire avec les informations suivantes, Lucile vous répondra au plus vite :\n\n";
if (($question_type == 'Avec photo') && (!empty($_FILES['photo']['name'])))
{
$message .= "Photo : ".$adresse_ton_site.$destination_photos.$nom_photo."\n\n";
}
$message .= "Prenom : ".$prenom."\n\n";
$message .= "Email : ".$email."\n\n";
$message .= "Question : ".$question."\n\n";
if (mail($destination_email, $objet, $message, $headers))
echo '<center><p><strong style="color:#009900;">Votre email m’est bien parvenu, merci !</strong></p></center>';
else
echo '<center><p><strong style="color:#FF0000;">Votre email n’est pas encore parti, veuillez reessayer SVP.</strong></p></center>';
//Envoi du double :
if (isset($_POST["copie"])){mail($email, $objet, $message, $headers);}
};
?>