La j'ai 2 préoccupations :
1. je comprend pas bien :
ce code ne te permettra que d'uploader un fichier écrit dans ton script. Si tu veux pouvoir choisir le fichier joint par l'intermédiaire de l'explorateur de fichiers au moment de l'envoi, le code sera sensiblement différent .
2. j'ai poursuivi pour pouvoir atteindre mon objetif s'est à dire dès qu'on impute le courrier à quelqu'on(le destinateire) en clickant sur le bouton valider la personne reçois un mail et un fichier .
quand j'execute je rècois le mail mais le fichier ne s'ouvre pas .
voici les erreur affichées :
Warning: fopen(upload_fichier/image.jpg) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 105
Warning: filesize() [function.filesize]: stat failed for upload_fichier/image.jpg in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 106
Warning: fread() expects parameter 1 to be resource, boolean given in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 106
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 108
voici mon 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)) {
//echo $row['monemail'];
//echo $row[0]; // 42
//echo $row[1]; // la valeur du champ email
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 = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("upload_fichier/image.jpg", "r");
$attachement = fread($fichier, filesize("upload_fichier/image.jpg"));
$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);
//==========
}
}
}
?>
La j'ai 2 préoccupations :
1. je comprend pas bien :
ce code ne te permettra que d'uploader un fichier écrit dans ton script. Si tu veux pouvoir choisir le fichier joint par l'intermédiaire de l'explorateur de fichiers au moment de l'envoi, le code sera sensiblement différent .
2. j'ai poursuivi pour pouvoir atteindre mon objetif s'est à dire dès qu'on impute le courrier à quelqu'on(le destinateire) en clickant sur le bouton valider la personne reçois un mail et un fichier .
quand j'execute je rècois le mail mais le fichier ne s'ouvre pas .
voici les erreur affichées :
Warning: fopen(upload_fichier/image.jpg) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 105
Warning: filesize() [function.filesize]: stat failed for upload_fichier/image.jpg in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 106
Warning: fread() expects parameter 1 to be resource, boolean given in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 106
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\wamp\www\GESTION COURRIER MINISTERE_email\testmail3.php on line 108
voici mon 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)) {
//echo $row['monemail'];
//echo $row[0]; // 42
//echo $row[1]; // la valeur du champ email
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 = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("upload_fichier/image.jpg", "r");
$attachement = fread($fichier, filesize("upload_fichier/image.jpg"));
$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]