salut voici un code que je viens de créer pour la gestion du courrier de mon ministère .
le code permet d'enregister les imputation de courrier et envoyer un mail au destinateur ( celui a qui on a imputer ).
de plus le mail doit contenir le fichier courrier qui avait auparavant été scanné .
je pense que le code marche bien main il prend trop de temps pour s’exécuter quand on click sur le bouton valider .
je pense que c'est du au fichier qui doit être envoyé par mail .
je vous demande de parcourir mon code pour voir :
1. s'il est bien conçu
2. comment éviter si possible cette lourdeur lors de l'envoi du code.
voici le code :
<?php
if (isset($_POST["valider"])) {
/*IMPORTANT*/
include("connection.php");
/*faut securiser*/
foreach($_POST as $k => $v){
$v=mysql_real_escape_string(strip_tags($v));
$_POST[$k]=$v;
}
/*faut securiser*/
foreach($_GET as $k => $v){
$v=mysql_real_escape_string(strip_tags($v));
$_POST[$k]=$v;
}
$NumEnreg=trim($_POST["NumEnreg"]);
$dateArrCourrier=trim($_POST["dateArrCourrier"]);
$dateReinsert=trim($_POST["dateReinsert"]);
$expediteur=trim($_POST["expediteur"]);
$destinataire=trim($_POST["destinataire"]);
$DateImput=trim($_POST["DateImput"]);
$delaisImput=trim($_POST["delaisImput"]);
$instructions=trim($_POST["instructions"]);
$autreInstruction=trim($_POST["autreInstruction"]);
$contact=trim($_POST["contact"]);
$NoteDirCab=trim($_POST["NoteDirCab"]);
$NoteMinitr=trim($_POST["NoteMinitr"]);
$monemail=trim($_POST["monemail"]);
//requète sql
$sql = "SELECT NumEnreg FROM Courrierimputation WHERE NumEnreg='$NumEnreg'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) // l'url existe déjà, on affiche un message d'erreur
{
$msg = 'Désolé, mais ce numero existe déjà dans notre base.';
echo '<script>alert(\' '.$msg.' \');</script>';
}
else // L'url n'existe pas, on insère les informations du formulaire dans la table
{
// insertion de l'ex-combattants
$sql = "INSERT INTO Courrierimputation( id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,delaisImput,instructions,autreInstruction,contact,NoteDirCab,NoteMinitr) VALUES('','".$NumEnreg."','".$dateArrCourrier."','".$expediteur."','".$destinataire."','".$monemail."','".$DateImput."','".$delaisImput."','".$instructions."','".$autreInstruction."','".$contact."','".$NoteDirCab."','".$NoteMinitr."')";
// on insère les informations du formulaire dans la table
$result= mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$msg = 'Les informations sur le courrier ont été ajoutées ont été ajoutées dans la base de données.</br>';
///echo '<font color="red">'.$msg.'</font>';
echo '<script>alert(\' '.$msg.' \');</script>';
}
if($result)
{
$q = mysql_query("SELECT * FROM Courrierimputation where NumEnreg=$NumEnreg"); // requete
if (!$q) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($q)) {
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('SMTP', 'smtp.aviso.ci');
ini_set('smtp_port', 25);
ini_set('sendmail_from', '[email protected]');
// To
$mail = $row['monemail'] ;
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Vous venez de recevoir un mail du cabinet . Veuillez ouvvir le courrier et suivre les instruction . merci .";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//========
//requète pour recuperer le nom de l'image
$qt = mysql_query("SELECT renseigner.fichier_choisi,renseigner.id_victime,servicecourrier.id_sc,servicecourrier.NumEnreg,courrierimputation.NumEnreg FROM renseigner , servicecourrier , courrierimputation WHERE renseigner.id_victime=servicecourrier.id_sc AND servicecourrier.NumEnreg=courrierimputation.NumEnreg "); // requete
if (!$qt) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($qt)) {
$monImage = $row['fichier_choisi'] ;
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen($monImage, "r");
$attachement = fread($fichier, filesize("$monImage"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Hey mon ami !";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"WeaponsB\"<[email protected]>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <[email protected]>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe.
$message.= "Content-Type: image/jpeg; name=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
}
}
}
//}
}
?>
salut voici un code que je viens de créer pour la gestion du courrier de mon ministère .
le code permet d'enregister les imputation de courrier et envoyer un mail au destinateur ( celui a qui on a imputer ).
de plus le mail doit contenir le fichier courrier qui avait auparavant été scanné .
je pense que le code marche bien main il prend trop de temps pour s’exécuter quand on click sur le bouton valider .
je pense que c'est du au fichier qui doit être envoyé par mail .
je vous demande de parcourir mon code pour voir :
1. s'il est bien conçu
2. comment éviter si possible cette lourdeur lors de l'envoi du code.
voici le code :
[php]<?php
if (isset($_POST["valider"])) {
/*IMPORTANT*/
include("connection.php");
/*faut securiser*/
foreach($_POST as $k => $v){
$v=mysql_real_escape_string(strip_tags($v));
$_POST[$k]=$v;
}
/*faut securiser*/
foreach($_GET as $k => $v){
$v=mysql_real_escape_string(strip_tags($v));
$_POST[$k]=$v;
}
$NumEnreg=trim($_POST["NumEnreg"]);
$dateArrCourrier=trim($_POST["dateArrCourrier"]);
$dateReinsert=trim($_POST["dateReinsert"]);
$expediteur=trim($_POST["expediteur"]);
$destinataire=trim($_POST["destinataire"]);
$DateImput=trim($_POST["DateImput"]);
$delaisImput=trim($_POST["delaisImput"]);
$instructions=trim($_POST["instructions"]);
$autreInstruction=trim($_POST["autreInstruction"]);
$contact=trim($_POST["contact"]);
$NoteDirCab=trim($_POST["NoteDirCab"]);
$NoteMinitr=trim($_POST["NoteMinitr"]);
$monemail=trim($_POST["monemail"]);
//requète sql
$sql = "SELECT NumEnreg FROM Courrierimputation WHERE NumEnreg='$NumEnreg'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) // l'url existe déjà, on affiche un message d'erreur
{
$msg = 'Désolé, mais ce numero existe déjà dans notre base.';
echo '<script>alert(\' '.$msg.' \');</script>';
}
else // L'url n'existe pas, on insère les informations du formulaire dans la table
{
// insertion de l'ex-combattants
$sql = "INSERT INTO Courrierimputation( id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,delaisImput,instructions,autreInstruction,contact,NoteDirCab,NoteMinitr) VALUES('','".$NumEnreg."','".$dateArrCourrier."','".$expediteur."','".$destinataire."','".$monemail."','".$DateImput."','".$delaisImput."','".$instructions."','".$autreInstruction."','".$contact."','".$NoteDirCab."','".$NoteMinitr."')";
// on insère les informations du formulaire dans la table
$result= mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$msg = 'Les informations sur le courrier ont été ajoutées ont été ajoutées dans la base de données.</br>';
///echo '<font color="red">'.$msg.'</font>';
echo '<script>alert(\' '.$msg.' \');</script>';
}
if($result)
{
$q = mysql_query("SELECT * FROM Courrierimputation where NumEnreg=$NumEnreg"); // requete
if (!$q) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($q)) {
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('SMTP', 'smtp.aviso.ci');
ini_set('smtp_port', 25);
ini_set('sendmail_from', '
[email protected]');
// To
$mail = $row['monemail'] ;
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Vous venez de recevoir un mail du cabinet . Veuillez ouvvir le courrier et suivre les instruction . merci .";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//========
//requète pour recuperer le nom de l'image
$qt = mysql_query("SELECT renseigner.fichier_choisi,renseigner.id_victime,servicecourrier.id_sc,servicecourrier.NumEnreg,courrierimputation.NumEnreg FROM renseigner , servicecourrier , courrierimputation WHERE renseigner.id_victime=servicecourrier.id_sc AND servicecourrier.NumEnreg=courrierimputation.NumEnreg "); // requete
if (!$qt) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($qt)) {
$monImage = $row['fichier_choisi'] ;
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen($monImage, "r");
$attachement = fread($fichier, filesize("$monImage"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Hey mon ami !";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"WeaponsB\"<
[email protected]>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <
[email protected]>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe.
$message.= "Content-Type: image/jpeg; name=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
}
}
}
//}
}
?>[/php]