Bonjour à tous,
Donc voilà je me heurte à un problème, je suis en train de concevoir un formulaire permettant l'inscription à un concours.
Les participants doivent donc remplir ce formulaire en remplissant différents champs. Ceci fait les champs sont enregistré dans une base de donnée et un mail m'est envoyé en même temps.
Jusqu'à là aucun problème...
Le souci est que le participant devra uploader un fichier (une vidéo pour être plus précis) et là je bloque, ce bouton upload se trouve et doit se trouver dans le formulaire, et est donc envoyé en même temps que les informations entré.
La solution BLOB ne va pas avec mon utilisation (ça ramerait, et en plus pas assez de place dans la base de donnée).
Donc il me reste 2 solutions :
- Uploader le fichier sur mon server, et stocker le lien de la vidéo dans la base de donné.
- Envoyer la vidéo par email en fichier joint en même temps .
Voici mon code php une fois le formulaire valider.
J'aimerai savoir ou et quoi placer afin que l'une de mes solutions (ou une autre) soit fonctionnel.
Code PHP :
<?php
define('DB_SERVER', ''); // serveur mysql
define('DB_SERVER_USERNAME', ''); // nom d'utilisateur
define('DB_SERVER_PASSWORD', ''); // mot de passe
define('DB_DATABASE', ''); // nom de la base
// parametres email
define('MAIL_DESTINATAIRE','email@email');
define('MAIL_SUJET','Inscription dans la base de donnée');
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Merci, <br/> votre inscription a bien été prise en compte ! <br/> <p><br/> <br/></p> ";
$message = $msg_erreur;
// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Merci, <br/> votre inscription a bien été prise en compte ! <br/> <p> <br/> <br/></p> ";
$message = $msg_erreur;
// l'entête du mail
$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="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 = "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;
// envoi du mail
$res_mail = mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete);
foreach($_POST as $index => $valeur) {
// utilisez addslashes() au lieu de mysql_real_escape_string()
// si vous n'etes pas sur PHP5 ou si la fonction pose probleme
$$index = mysql_real_escape_string(trim($valeur));
}
$sql = "INSERT INTO formulaire VALUES ('', '".$civilite."', '".$nom."', '".$prenom."', '".$age."','".$codepostal."','".$ville."','".$niveauetude."', '".$nomecole."', '".$email."', '".$telephone."','".$lienvideo."','".$offre."', now())";
$res_sql = mysql_query($sql);
// si le mail a ete envoye par mail et mysql
if ($res_mail && $res_sql) {
echo $msg_ok;
// si mysql a retourné une erreur
} else if (!$res_sql) {
echo mysql_error();
// si le mail n'a pas été envoyé
} else if (!$res_mail) {
echo 'Erreur. Le formulaire ne nous a pas été correctement envoyé par email.';
}
}
?>
Merci à vous.