juliusescalibus
Messages postés39Date d'inscriptionjeudi 9 janvier 2014StatutMembreDernière intervention 3 octobre 2014
-
22 mai 2014 à 09:01
-helper-
Messages postés89Date d'inscriptionmercredi 21 mai 2014StatutMembreDernière intervention15 juin 2014
-
24 mai 2014 à 10:09
Bonjour,
Je suis en train de realiser un formulaire de contact et je souhaiterai pouvoir y rajouter l'option de piece jointe . j'ai commencer en suivant certains tutos mais là je bloque v :
mon formulaire fonctionne et envoi bien le mail mais sans la piece jointe associée.
SI QQ PEUT AIDER , MERCI D'AVANCE §§
voici mon code :
<?php
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
# emplacement de la feuille de styles
$cssform = "webdev_form.css";
# nom du répertoire pour upload des pièces jointes
# le répertoire (ici "upload") doit être créé sur le serveur
$rep = "upload/"; // ne pas oublier le slash /
# taille max de la pièce jointe en Ko (multiple de 1024)
$taillemax = 5242880;
# pièce jointe (nouveauté 12.10.2005)
$piecejointe = "";
if(!$erreur && strlen($_FILES['Fichier']['name'])) {
$fichier = $_FILES['Fichier'];
# upload du fichier sur le serveur
$temp = $fichier['tmp_name'];
$name = $fichier['name'];
$size = $fichier['size'];
$destination = $rep.$name;
if($size > $taillemax)
$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
elseif(!@is_uploaded_file($temp))
$erreur = "Téléchargement du fichier $name impossible";
elseif(!@move_uploaded_file($temp, $destination))
$erreur = "Problème de transfert du fichier $name";
if($erreur) $focus = 7;
else {
# lecture du type de fichier
if(!function_exists('mime_content_type')) {
function mime_content_type($fichier) {
# ajouter autant de combinaisons que souhaitées
$mime = array(
'.gif' => 'image/gif',
'.jpg' => 'image/jpeg',
'.psd' => 'image/x-xwd',
'.png' => 'image/png',
'.txt' => 'text/plain',
'.doc' => 'application/msword',
'.xls' => 'application/vnd.ms-excel',
);
# par défaut
if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
return $type;
}
}
/*
pour utiliser mime_content_type()
éditer le fichier php.ini et enlever le commentaire sur :
extension=php_mime_magic.dll
sous Windows ajouter ces 2 lignes :
mime_magic.debug = On
mime_magic.magicfile = "c:\chemin_du_fichier\magic.mime"
NB : fonction non activée chez OVH
*/
$mimetype = mime_content_type($destination);
# lecture et conversion du fichier
if($openf = @fopen($destination, "rb")) {
$fichier = fread($openf, filesize($destination));
@fclose($openf);
# encodage norme RFC 2045
$piecejointe = chunk_split(base64_encode($fichier));
} else {
$erreur = "Problème de lecture du fichier $name";
$focus = 7;
}
}
}
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
//On commence une session pour enregistrer les variables du formulaire...
//Enregistrement des paramètres de la case 1...
$_SESSION['case1_'][0] = "";
if (isset($_POST['case1_'][0])) {
$_SESSION['case1_'][0] = $_POST['case1_'][0];
} // Fin du if...
$_SESSION['case1_'][1] = "";
if (isset($_POST['case1_'][1])) {
$_SESSION['case1_'][1] = $_POST['case1_'][1];
} // Fin du if...
//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];
// Définir l\'icone apparaissant en cas d\'erreur...
// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;
// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {
// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {
// Rediriger vers la page de remerciement
header("Location:http://acibois.fr/merci.php");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<html>
<head>
<meta name="robots" content="index, follow" />
<meta name="keywords" content="fenetres sur-mesure, porte-fenetres sur-mesure, portes sur-mesure, alu, pvc, Caen, menuiserie, menuiseries, sur-mesure, portes, persienne, porte, persiennes, fenetres, fenetre, portail, portails, oeil de boeuf, haut de gamme, acibois, particuliers, professionnels, pose, chene, sipo, meleze, bois, Normandie, couturier de la menuiserie sur mersure" />
<meta name="description" content="Acibois menuiserie sur-mesure à Caen en Normandie. Fabrication de fenêtres, volets, portes, portails et autres menuiseries bois, aluminium et PVC." />
<?php $titre="Acibois - Le Couturier de la menuiserie sur-mesure à Caen"; include("head.php"); ?>
<link rel="icon" href="/favicon.ico" type="image/ico" />
<link rel="shortcut icon" href="/favicon.ico" type="image/ico" />
<title>Formulaire</title><script language="JavaScript">
function verifSelection() {
if (document.mail_form.champ1.value == "") {
alert("Veuillez renseigner le Nom")
return false
}
for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}
atPos = document.mail_form.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
if (periodPos+3 > document.mail_form.zone_email1.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
if (document.mail_form.liste1.value == "") {
alert("Veuillez selectionner un objet à votre demande")
return false
}
nbrecases1 = document.mail_form.case1_.length
flag = 0
for (i = 0; i < nbrecases1 ; i++) {
if (document.mail_form.case1_[i].checked) {
flag = 1
}
}
if (flag == 0) {
alert("Veuillez preciser si vous etes professionnel ou particulier")
return false;
}
Magnifique post de 688785768576 lignes (que je ne pense pas avoir la force de lire; en effet je pense que je vais préférer faire une partie de startcraft) !