Bonjour,

Je suis débutant en php, et j'aurai besoin de votre aide dans la réalisation d'un formulaire de contact avec la possibilité aux visiteurs du site de joindre un fichier image.

J'ai tester phpmailer et autres tuto sur le sujet, mais je n'y arrive pas, peut être que je suis pas assez caler sur le sujet, ou je comprend tous les fonctions.

voici mon code :

<form method="post" action="traitement_soumission_actualite.php">
   <h2>SELECTIONNE VOTRE SOUS CATEGORIE</h2>
<fieldset id="coordonnees">
<p id="forumles"><label>Sous Catégorie :</label>
<select name="produit">
<option value="choix">Faite votre choix</option>
<option value="a la une">A la une</option>
<option value="departementale et regionale">Départementale et régionale</option>
<option value="internationale">Internationale</option>
<option value="locale">Locale</option>
<option value="petites annonces">Petites annonces</option>
<option value="radio">Radio</option>
<option value="agences de presse">Agences de presse</option>
<option value="repertoires de la presse">Répertoires de la presse</option>
<option value="blog">Medias alternatifs et blog</option>
<option value="presse people">Presse people</option>
<option value="television">Télévision</option>
<option value="attache de presse">Conseil et attachés de presse</option>
<option value="meteo">Info-trafic et météo</option>
<option value="journaux magazines">Journaux et Magazines</option>
<option value="presse spécialisee">Presse spécialisée</option>
<option value="Medias sociaux">Medias sociaux</option>
<option value="Communiquer de Presse">Communiquer de Presse</option>
</select><br />
</p>
</fieldset>

<h2>VOS COORDONNEES</h2>
<fieldset id="coordonnees"><p id="civilite"><label>Civilité :</label>
<input type="radio" name="civilite" value="M" checked="checked"/>
M
<input type="radio" name="civilite" value="Mme" />Mme
<input type="radio" name="civilite" value="Mlle" />Mlle
</p>
<p>
<label>Nom : </label>
<input type="text" name="nom" size="30" /><br />
<label>Email : </label>
<input type="text" name="email" size="30"/><br />
</p>
</fieldset>

<h2>VOTRE SITE:</h2>
<fieldset id="coordonnees"><p><label>URL : </label>
<input type="text" name="url" size="30" /><br />
<label>Titre du site<br />
(max 50 caractères) : </label>
<input type="text" name="titre" size="30" /><br />
<label>Description du site<br />
(max 255 caractères): </label>
<textarea name="description" rows="2" cols="300"></textarea>
</p>
</fieldset>

<h2>LIEN DE RETOUR:</h2>
<fieldset id="coordonnees"><p id="formules">
<h4>Indiquez nous la page du lien retour:</h4>
<p><label>URL de la page: </label>
<input type="text" name="lienretour" size="30" /><br /></p>
</p>
</fieldset>
<h2>VOTRE FICHIER:</h2>
<fieldset id="coordonnees"><p id="formules">
<h4>Votre Logo au Format 120X90:</h4>
<input type="file" name="monfichier" size="30"><br />
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
</p>
</fieldset>
<p id="bouton">
<input type="submit" value="ENVOYER" />
<input type="reset" value="EFFACER" /> 
</p>
</form>


voici mon code php

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande de Soumission<br />
Pour la catégorie Actualitée a bien été envoyé.";
$message = $msg_erreur;

define('MAIL_DESTINATAIRE',' contact@example.com'); // remplacez par votre email
define('MAIL_SUJET','DEMANDE DE SOUMISSION ACTUALITE');

// vérification des champs 
if (empty($_POST['nom'])) 
$message .= "Votre nom<br/>";
if (empty($_POST['email'])) 
$message .= "Votre adresse mail<br/>";
if (empty($_POST['url'])) 
$message .= "Votre Site Web<br/>";
if (empty($_POST['titre'])) 
$message .= "Votre Titre du site<br/>";
if (empty($_POST['description'])) 
$message .= "Votre description<br/>";
if (empty($_POST['lienretour'])) 
$message .= "Votre Lien retour<br/>";

if (strlen($message) > strlen($msg_erreur)) {

echo $message;

}

else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

$produit = $_POST['produit'];
$sqlpref = '';
for ($i=0; $i<count($produit); $i++)
{
$sqlpref .= $produit[$i];
$sqlpref .= ', ';
}

$mail_corps = "Message de : $civilite $nom\n";
$mail_corps .= "Email : $email\n";
$mail_corps .= "Sous Catégorie : $produit\n";
$mail_corps .= "Site Web : $url\n";
$mail_corps .= "Titre : $Titre\n";
$mail_corps .= "Description : $description\n";
$mail_corps .= "Lien de Retour : $lienretour\n";


$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset=utf-8"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer [langue]HP/' . phpversion()."\r\n";

$nomOrigine = $_FILES['monfichier']['name'];
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("jpeg", "jpg", "gif");
if (!(in_array($extensionFichier, $extensionsAutorisees))) {
    echo "Le fichier n'a pas l'extension attendue";
} else {    
    // Copie dans le repertoire du script avec un nom
    // incluant l'heure a la seconde pres 
    $repertoireDestination = dirname(__FILE__)."upload_image";
    $nomDestination = "fichier_du_".date("YmdHis").".".$extensionFichier;

    if (move_uploaded_file($_FILES["monfichier"]["tmp_name"], 
                                     $repertoireDestination.$nomDestination)) {
        echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
                " a été déplacé vers ".$repertoireDestination.$nomDestination;
    } else {
        echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
                "Le déplacement du fichier temporaire a échoué".
                " vérifiez l'existence du répertoire ".$repertoireDestination;
    }
}


// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

//Le mail est bien expédié
echo $msg_ok;
} else {

//Le mail n a pas été expédié
echo 'Suite à un problème technique, votre message n a pas été envoyé';
}
}

Modifié par Heyoan (21 Sep 2010 - 13:49)