Bonjour je suis débutant en php et voila ce qui m'amène ..J'ai un site pour une association de pêche hébergé chez Alwaysdata qui comporte un formulaire mail() de contact et jusqu'à maintenant les photos étaient reçues par la fonction move_uploaded_file mais ça pose un problème vu qu"elles ne sont pas dans le mail mais dans un dossier "image_upload" et que bon nombre d'internautes oublient de les renommer a leur noms ..du coup on ne sait plus a qui elles appartiennent j'ai donc décidé d'écrire un script qui envoie les photos directement dans le mail ..Il serait plus facile d'utiliser une base de donnée mais voila les membres du bureau de l'association ne savent pas comment aller dedans et j'ai eu beau leur expliquer j'ai du supprimer les BDD ..
J'ai trouvé un script qui fonctionne si on met directement l'URL de la photo dans les "" de la variable $fichier mais qui refuse de la charger si on passe par le formulaire html je mets un copié collé de la page html partie concernée au pièce jointe et celle de la partie php si je passe par le formulaire html ça me dit que la partie $sFileAdd du script est vide alors je n'y comprend plus rien j'ai essayé $_POST|'fichier']; et $_FILES mais rien n'y fait et je n'y comprend plus rien ..
Pourriez vous m'aider SVP ..?
la partie html du formulaire pièce jointe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 $fichier="$_FILES['fichier']; $fichier=""; //( ça c'est moi qui ai rajouté et si je mets l'URL dedans la photo est envoyée ) $message .= "--=c=h=a=m=p=a=l=u=\r\n"; $message .= "Content-Type: application/octet-stream; "; $message .= "name=\"$fichier\"\r\n"; $message .= "Content-Transfer-Encoding: base64\r\n"; $message .= "Content-Disposition: attachment; "; $message .= "filename=\"$fichier\"\r\n"; $message .= "$fichier\r\n"; // lecture du fichier en pièce jointe $sFileAdd = file_get_contents("$fichier"); //ICI aussi // encodage et découpage des données $sFileAdd = chunk_split(base64_encode($sFileAdd)); // pièce jointe de la partie (intégration dans le message) $message .= "$sFileAdd\r\n"; $message .= "\r\n"; // ligne vide // Délimiteur de fin du message. $message .= "--=c=h=a=m=p=a=l=u=--\r\n"; // Envoi. $bEnvoie = mail($destinataires,$objet,$message,$entetes,$fichier); ?>
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <form id="form" enctype="multipart/form-data" action="piecejointe.php" method="post"> <input type="hidden" name="max_file_size" value="1000000"> Envoyer : <input name="fichier" type="file"> <br/> <input type="submit" value="Envoyer le fichier">
Et ce n'est pas parce que les photos sont trop lourdes car ce sont majoritairement des photos d'identité le 1000000 c'est moi qui l'ai mis pour m'assurer que ce n'était pas la cause
______________________________________________________________________
Partager