Modification d'un script php

Fermé
Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011 - 2 avril 2007 à 22:16
Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011 - 3 avril 2007 à 19:12
Bonsoir. J'ai découvert un script php mais j'aimerais qu'il soit modifier.
http://www.asp-php.net/ressources/bouts_de_code.aspx?id=83

Est-ce que quelque un pourrait modifier le code pour qu'il n'y est que le champ "file" qui permet d'envoyer des fichiers (pas les autres champs) ! Hum... Et lieu de choisir son destinaire, j'aimerais que dès qu'on a cliqué sur "envoi", que le formulaire soit envoyer automatiquement à notre adresse e-mail. J'en demande trop mais j'aimerais vraiment que quelque un m'aide. Car je fais un site sur des Userbars, les graphismes ça va mais la programmation... ça laisse à désirer. Si vous le faites, je vous mets sur mon site le lien du vôtre. Merci !
A voir également:

1 réponse

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 avril 2007 à 13:06
Bonjour,

Voilà en gros ce que tu veux :
<html>
<body> 

<form ENCTYPE="multipart/form-data" action="./mail4.php" method=POST>
<center>
<INPUT TYPE=FILE NAME="monfichier"><BR>
<input type=submit value="envoi">
</center>
</form>

</body>
</html>


La deuxième page appelée ici mail4.php :
<html>
<body> <center>
<?

$name_file = $_FILES['monfichier']['name']; 
$source=$_FILES['monfichier']['tmp_name'];

move_uploaded_file($source, "./".$name_file); 

$extension=get_extension($name_file);

$type="text/plain";
if($type=="doc")
{
   $type="text/vnd.ms-word";
}
else if($type=="xls")
{
   $type="text/vnd.ms-excel";
}

$type2="image/png";

if($extension=="gif")
{
   $type2="image/gif";
}
else if($extension=="bmp")
{
   $type2="image/bmp";
}

function get_extension($filename)
{
   $parts = explode('.',$filename);
   $last = count($parts) - 1;
   $ext = $parts[$last];
   return $ext;
}

//----------------------------------
// Construction de l'entête
//----------------------------------

if($_POST['to']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Un nouveau fichier vient de vous être envoyé";
$msg .= "\r\n";

if($name_file!="")
{
$file = $name_file;
$fp = fopen($file, "rb");  
$attachment = fread($fp, filesize($file));
fclose($fp);

$attachment = chunk_split(base64_encode($attachment));


$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type2; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}

$destinataire = "TAPE ICI TON ADRESSE EMAIL";
$expediteur   = "METS ICI L'ADRESSE QUE TU VEUX";
$reponse      = $expediteur;
echo "Mail envoyé à $destinataire";

mail($destinataire, "Nouveau fichier", $msg,
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

if($name_file!="")
{
unlink($name_file);
}
?>
</center>
</body>
</html>
Voilà, ça te convient ?
0
Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011 11
3 avril 2007 à 14:08
Merci Reivax962 d'avoir pris du temps pour m'aider, je t'en suis reconnaissant. J'ai copier/coller les codes que tu as modifié mais il y'a un problème. Je ne reçois rien. J'ai bien mis mon adresse e-mail dans le deuxième code. En fait, quand je clique sur "envoi", la page "mail4.php" se charge et... voila. En tout cas, je ne reçois pas d'e-mail. Je crois avoir trouvé l'erreur, mais je n'en suis pas sûr. 13ème ligne à partir du bas du deuxième code, il y'a ça : mail($destinataire, "Nouveau fichier", $msg,
Est-ce normal qu'il y'est "$msg" ? Si ce n'est pas ça le problème, j'aimerais que tu regarde si il y'a quelque chose qui cloche. Si tu pouvais m'aider, comem tu viens de le faire jusqu'à présent, se serait FoRmIdAbLe ! Courage Reivax962, n'abondonne pas... Tu risquerai de rendre malheureux une personne... (Snif).
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011
3 avril 2007 à 14:19
Dans la version précédente, ça marchait ?
Est-ce que tu as un serveur smtp sur la machine qui héberge ton serveur web ? (pour vérifier ça, exécute un fichier php contenant une seule ligne : mail("tonEmail", "test", "test", "From: test@test.com");
Quelle est la taille du fichier que tu essaies d'envoyer ?
0
Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011 11 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
3 avril 2007 à 14:26
Pour le serveur smtp, j'ai localhost et la taille du fichier que j'essaye d'envoyer ne pèse que 8Ko !
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
3 avril 2007 à 17:39
OK.
Donc, pour tester l'envoie de mail en général...
Crée une nouvelle page php, par exemple test.php
Dedans, mets :
<?
    if(mail("tonEmail", "test", "test"))
        echo "Mail envoyé !";
    else
        echo "Votre serveur n'est pas correctement configuré pour envoyer des emails";
?>

Remplace bien sûr "tonEmail" par l'adresse où tu veux recevoir cet email.
Place-la sur ton serveur web, et ouvre-la via ton navigateur.
Qu'obtiens-tu ?
0
Randal Messages postés 88 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 12 décembre 2011 11 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
3 avril 2007 à 19:12
Merci pour l'aide que tu me donne Reivax962. Alors, ça m'écris : Mail envoyé !
Et je reçois l'e-mail. Sujet et message contiennent : test
0