Envoi de mail avec pièce jointe ! Problème !! URGENT TRES URGENT

Résolu
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 - 1 sept. 2010 à 17:01
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 !!

9 réponses

WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
6 sept. 2010 à 15:43
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>";
}
}
3
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
1 sept. 2010 à 23:19
Salut,

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

Cordialement,


Kohntark -
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
1 sept. 2010 à 23:32
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 ^^
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 sept. 2010 à 06:28
Il y a une liste déroulante en haut de la page nommée "view this page in"
... il suffit de choisir "French"


Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
2 sept. 2010 à 08:22
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.
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
2 sept. 2010 à 10:34
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 !!
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 sept. 2010 à 17:13
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 !!
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
3 sept. 2010 à 08:55
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.
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
3 sept. 2010 à 09:15
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 !!^^
0
Rejoignez-nous