Envoi de mail avec pièce jointe ! Problème !! URGENT TRES URGENT [Résolu]

Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
- - Dernière réponse : WrestlingMan
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
- 6 sept. 2010 à 15:43
Bonjour à tous !!
Après plusieurs tentatives de création de code, qui ne marche pas, je fais des recherches sur ce site, et à partir d'un sujet, j'ai réalisé mon code d'envoi de mail avec pièce jointe ! Mais voilà ce que j'obtiens :

Warning: copy() [function.copy]: Unable to access Array in D:\www\garodevoirs.com\htdocs\correction_exec.php on line 44

Warning: copy(Array) [function.copy]: failed to open stream: No error in D:\www\garodevoirs.com\htdocs\correction_exec.php on line 44
Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../upload/budget analytique avril2010.ods) is not within the allowed path(s): (d:/www/garodevoirs.com/htdocs) in D:\www\garodevoirs.com\htdocs\formmail.php on line 345
Class Mail, method attach : file ../upload/budget analytique avril2010.ods can't be found

La ligne 44 correspond à sa : copy($NomFichier,"upload/".$NomFichier_name);

et la ligne 345 n'est pas de moi et est sencé bien marché : if( ! file_exists( $filename) ) {
echo "Class Mail, method attach : file $filename can't be found"; exit;
}

Je pense qu'il s'agit du fait que le serveur ne me laisse pas avoir accès au dossier que j'ai créé pour mon upload temporaire ! Pourquoi ?? Comment résoudre ce problème ??
J'ai aussi ce même problème dans un formulaire d'upload !!

J'èspère que quelqu'un pourra m'aider ??

P.S : vraiment très urgent !!
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
3
Merci
Voilà qui est fait ! j'y suis parvenue ! Donc comme promis je post mon script reussi ! J'ai eu du mal à comprendre le truc mais j'ai reussi !! ^^

$mailUtilisateur=$_POST['txt_mail'];
$titre=$_POST['txt_titre'];
$description=$_POST['txt_description'];
$nbpage=$_POST['txt_nbpage'];
if(isset($_POST['s_mat']))
{
$matiere=$_POST['s_mat'];
}
{
$matiere="Aucune matière sélectionnée";
}
$nivo=$_POST['txt_nivo'];
$date=$_POST['txt_date'];
$prix=$_POST['txt_prix'];


//---------Upload du document à joindre au mail---------//
if($_FILES['up_document']['error']>0)
{
echo "<script>alert("Une erreur s'est produite lors du transfert du document")</script>";
echo "<script>location.replace("index.php?page=relecture")</script>";
}
else
{
$extensions_valides = array("doc", "pdf", "ppt", "xls", "docx", "ods", "odt", "pptx", "xlsx");
$extension_upload = strtolower( substr( strrchr($_FILES['up_document']['name'], '.') ,1) );
if ( in_array($extension_upload,$extensions_valides) )
{
mkdir('intermediaire/', 0777, true);
$nom = md5(uniqid(rand(), true));

$nom = "intermediaire/".$_FILES['up_document']['name'];
$resultat = move_uploaded_file($_FILES['up_document']['tmp_name'],$nom);
if ($resultat)
{
//---------Création du mail avec pièce jointe---------//
$mail = 'contact@garodevoirs.com';
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail))
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}

//déclaration du message en mode html
$message_html = "
<html>
<head><title>Demande de relecture d'un devoir</title></head>

Bonjour,


Ceci est un mail de Garodevoirs.com - Demande de relecture


Un utilisateur dont le mail est le suivant : $mailUtilisateur , souhaite que vous relisiez un devoir

Le titre du document est : $titre .


En voici une description :

$description


Ce devoir fait $nbpage pages.

Ce devoir concerne la matière suivante : $matiere

Et le niveau suivant : $nivo .

Ce devoir doit être remis pour la date suivante : $date

Pour le prix suivant : $prix €.


Merci et à bientôt !

</html>
";

//lecture et mise en forme de la pièce jointe
$fichier = fopen("$nom", "r");
$attachement = fread($fichier, filesize("$nom"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);

//création de la boundary
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());

//déclaration du sujet
$sujet = "Relecture de devoirs";

//déclaration du header de la fonction mail en php
$header = "From: "Garodevoirs.com - Relecture de devoirs"<>".$passage_ligne ;
$header.= "Reply-to: "" <$mailUtilisateur>".$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;

$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: $nom; name="$nom"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename="$nom"".$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);

//suppression du fichier uploader
$dir="intermediaire/";
$handle=@opendir($dir);
if($handle!=false)
{
while($item=readdir($handle))
{
if($item != "." && $item != "..")
{
if( is_dir( $dir.$item ) )
{
advRmDir( $dir.$item );
}
else
{
unlink( $dir.$item );
}
}
}
closedir($handle);
rmdir( $dir );
}

echo "<script>alert("Envoi du mail effectué")</script>";
echo "<script>location.replace("index.php?page=relecture")</script>";
}
else
{
echo "<script>alert("L'envoi du mail a échoué")</script>";
echo "<script>location.replace("index.php?page=relecture")</script>";
}
}
else
{
echo "<script>alert("L'extension de votre document n'est pas conforme aux documents autorisés !")</script>";
echo "<script>location.replace("index.php?page=relecture")</script>";
}
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de WrestlingMan
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

La lecture de ce lien t'aidera surement, ... à lire urgemment, TRES URGEMMENT !!!

Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
0
Merci
Désolé de te dérangé mais n'aurais tu pas un lien disons plus francophone pour moi ? Parce que moi et la langue anglaise sa fait deux !! mdr ^^
Commenter la réponse de WrestlingMan
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Il y a une liste déroulante en haut de la page nommée "view this page in"
... il suffit de choisir "French"


Kohntark -
Commenter la réponse de kohntark
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
11
0
Merci
Moi je trouve qu'en ce moment beaucoup de gens posent des questions.. avant d'avoir cherché au préalable.. LOL !!
J'en rigole mais hélas c'est souvent le cas.
S.
Commenter la réponse de syndrael
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
0
Merci
Contrairement à ce que tu crois, sa va faire une semaine que je me casse les c******* sur mes 2 scripts !! j'ai tenté j'ai pas reussi, donc j'ai recommencer à zéro et ainsi de suite en me servant d'exemple et de script trouvé sur ce site et d'autres sites spécialisés ! Quand je post ici c'est uniquement en dernier recours, et ces 2 scripts me prennent vraiment la tête !!
Commenter la réponse de WrestlingMan
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Peux tu fournir urgemment une réponse concernant le lien que je t'ai donné ?
T'a t-il aidé ?
Ton problème est il résolu ?
Si oui c'est urgent de bien vouloir donner des nouvelles, et très urgent de clôturer comme il ce doit ce thread.

Je ne mets pas en doute le fait que tu ai cherché (ce qui n'enlève rien à ce que dit Syndrael), mais vraisemblablement tu ne l'as pas fait avec les bons mots clés, car "open_basedir restriction in effect" donne environ 255 000 résultats (0,20 secondes)


Cordialement,

Kohntark -

P.S : vraiment très urgent de donner des nouvelles pour ta question URGENTE, TRES URGENTE !!
Commenter la réponse de kohntark
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
11
0
Merci
Juste une aparté.. toujours autour du thème de l'Urgence.. qui est très relative.. Les Appels d'offres à droite dans le site. On voit trop souvent du URGENT et un prix dérisoire.
Exemple du jour: URGENT Création site Joomla. à 600€. Si c'était si urgent, le budget serait à la hauteur. Il faut savoir que 600€ ne représente même pas 2 jours de boulot. Et faire un site en 2 jour c'est illusoire.. alors une vitrine n'en parlons pas.. surtout s'il est demandait un back office, une charte graphique etc..
J'ai vraiment l'impression que les gens ne mettent pas les moyens de leurs ambitions.. alors qu'ils refuseraient de rouler en 2CV.. pourtant 'ça' roule non.. 'ça' va bien d'un point à un autre.. mais non, 'ça' vaut rien..
Alors mon coup de gueule du matin c'est 'Donnez les moyens de vos ambitions'.
S.
Commenter la réponse de syndrael
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
0
Merci
Cela ne m'a pas aider du tout !
J'ai donc décidé de faire comme pour un autre script, je vais tout recommencé à zéro !!
En espérant que j'y arrive !!^^
Commenter la réponse de WrestlingMan