> Tous les forums > Forum des Webmasters
 Formulaire php avec upload de 2 fichiers. Formail
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Rickyo74
  Posté le 07/02/2011 @ 22:20 
Aller en bas de la page 
Nouvel astucien

Bonjour à tous,

Je ne suis pas trés doué en ecriture de script, aussi cela fait des jours que j'essai à partir d'un script trouvé sur le net d'ajouter un second fichier à uploader depuis un formulaire sur un site que je suis en train de concevoir.

Le script que j'ai mis en place est ecrit par loic Bresler et utilise une partie la classe Mail. Il permet au visiteur d'envoyer un email et de mettre un fichier joint avec son message. Il fonctionne trés bien avec mon formulaire d'envoi, mais je ne peux qu' uploader qu'un seul fichier et mon souhait serait d'en mettre 2.

Est ce qu'un connaisseur pourrait venir à mon aide ? Ce serait vraiment sympa et surtout ça m'enléverait une grosse epine du pied car sans cela je ne peux publier mon projet.

Je vous joint le script .....:

Ceci est la "form Html" du formulaire :

<form vname="FormName" action="formmail.php" method="post" enctype="multipart/form-data" name="form">

<table border="0" cellpadding="5" cellspacing="0" width="137">

<tr>

<td>Votre E-mail:</td>

<td><input type="text" name="email" size="35"></td>

</tr>

<tr>

<td>Sujet</td>

<td><input type="text" name="subject" size="35"></td>

</tr>

<tr>

<td>Message</td>

<td><textarea rows="12" name="msg" cols="60"></textarea></td>

</tr>

<tr>

<td>Fichier joint:</td>

<td><input type="hidden" name="MAX_FILE_SIZE" value="1000000"><input name="NomFichier" type="file" size="16">

</tr>

<tr>

<td>Votre photo:</td>

<td><input name="nom_du_fichier" type="file" size="16"></td>

</tr>

<tr>

<td>Priorit&eacute;:</td>

<td>

<div align="left">

<select name="priority" size="1">

<option value="1">Urgent

<option value="2">Haute

<option value="3">Moyenne

<option value="4">Basse

<option value="5">Tr&egrave;s basse

</select> <input type="submit" value="Envoyer"></div>

</td>

</tr>

</table>

</form>

...Et là le "formmail.php" :

<?

/* PARAMETRAGE DU SCRIPT */

/* ENTREZ VOTRE ADRESSE EMAIL ENTRE LES GUILLEMETS*/

$dest="x@email.com";

$reponse=StripSlashes("Entrez ici la réponse quand une personne envoie le formulaire");

/* FIN DU PARAMETRAGE */

DESCRIPTION

this class encapsulates the PHP mail() function.

implements CC, Bcc, Priority headers

*/

class Mail

{

var $sendto= array();

var $from, $msubject;

var $acc= array();

var $abcc= array();

var $aattach= array();

var $priorities= array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );

// Mail contructor

function Mail()

{

$this->autoCheck( true );

}

/* autoCheck( $boolean )

* activate or desactivate the email addresses validator

* ex: autoCheck( true ) turn the validator on

* by default autoCheck feature is on

*/

function autoCheck( $bool )

{

if( $bool )

$this->checkAddress = true;

else

$this->checkAddress = false;

}

/* Subject( $subject )

* define the subject line of the email

* $subject: any valid mono-line string

*/

function Subject( $subject )

{

$this->msubject = strtr( $subject, "\r\n" , " " );

}

/* From( $from )

* set the sender of the mail

* $from should be an email address

*/

function From( $from )

{

if( ! is_string($from) ) {

echo "Class Mail: error, From is not a string";

exit;

}

$this->from= $from;

}

/* To( $to )

* set the To ( recipient )

* $to : email address, accept both a single address or an array of addresses

*/

function To( $to )

{

// TODO : test validité sur to

if( is_array( $to ) )

$this->sendto= $to;

else

$this->sendto[] = $to;

if( $this->checkAddress == true )

$this->CheckAdresses( $this->sendto );

}

/* Cc()

* set the CC headers ( carbon copy )

* $cc : email address(es), accept both array and string

*/

function Cc( $cc )

{

if( is_array($cc) )

$this->acc= $cc;

else

$this->acc[]= $cc;

if( $this->checkAddress == true )

$this->CheckAdresses( $this->acc );

}

/* Bcc()

* set the Bcc headers ( blank carbon copy ).

* $bcc : email address(es), accept both array and string

*/

function Bcc( $bcc )

{

if( is_array($bcc) ) {

$this->abcc = $bcc;

} else {

$this->abcc[]= $bcc;

}

if( $this->checkAddress == true )

$this->CheckAdresses( $this->abcc );

}

/* Body()

* set the body of the mail ( message )

*/

function Body( $body )

{

$this->body= $body;

}

/* Send()

* fornat and send the mail

*/

function Send()

{

// build the headers

$this->_build_headers();

// include attached files

if( sizeof( $this->aattach > 0 ) ) {

$this->_build_attachement();

$body = $this->fullBody . $this->attachment;

}

// envoie du mail aux destinataires principal

for( $i=0; $i< sizeof($this->sendto); $i++ ) {

$res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);

// TODO : trmt res

}

}

/* Organization( $org )

* set the Organisation header

*/

function Organization( $org )

{

if( trim( $org != "" ) )

$this->organization= $org;

}

/* Priority( $priority )

* set the mail priority

* $priority : integer taken between 1 (highest) and 5 ( lowest )

* ex: $m->Priority(1) ; => Highest

*/

function Priority( $priority )

{

if( ! intval( $priority ) )

return false;

if( ! isset( $this->priorities[$priority-1]) )

return false;

$this->priority= $this->priorities[$priority-1];

return true;

}

/* Attach( $filename, $filetype )

* attach a file to the mail

* $filename : path of the file to attach

* $filetype : MIME-type of the file. default to 'application/x-unknown-content-type'

* $disposition : instruct the Mailclient to display the file if possible ("inline") or always as a link ("attachment")

* possible values are "inline", "attachment"

*/

function Attach( $filename, $filetype='application/x-unknown-content-type', $disposition = "inline" )

{

// TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier

$this->aattach[] = $filename;

$this->actype[] = $filetype;

$this->adispo[] = $disposition;

}

/* Get()

* return the whole e-mail , headers + message

* can be used for displaying the message in plain text or logging it

*/

function Get()

{

$this->_build_headers();

if( sizeof( $this->aattach > 0 ) ) {

$this->_build_attachement();

$this->body= $this->body . $this->attachment;

}

$mail = $this->headers;

$mail .= "\n$this->body";

return $mail;

}

/* ValidEmail( $email )

* return true if email adress is ok - regex from Manuel Lemos (mlemos@acm.org)

* $address : email address to check

*/

function ValidEmail($address)

{

if( ereg( ".*<(.+)>", $address, $regs ) ) {

$address = $regs[1];

}

if(ereg( "^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$address) )

return true;

else

return false;

}

/* CheckAdresses()

* check validity of email addresses

* if unvalid, output an error message and exit, this may be customized

* $aad : array of emails addresses

*/

function CheckAdresses( $aad )

{

for($i=0;$i< sizeof( $aad); $i++ ) {

if( ! $this->ValidEmail( $aad[$i]) ) {

echo "Class Mail, method Mail : invalid address $aad[$i]";

exit;

}

}

}

/********************** PRIVATE METHODS BELOW **********************************/

/* _build_headers()

* [INTERNAL] build the mail headers

*/

function _build_headers()

{

// creation du header mail

$this->headers= "From: $this->from\n";

$this->to= implode( ", ", $this->sendto );

if( count($this->acc) > 0 ) {

$this->cc= implode( ", ", $this->acc );

$this->headers .= "CC: $this->cc\n";

}

if( count($this->abcc) > 0 ) {

$this->bcc= implode( ", ", $this->abcc );

$this->headers .= "BCC: $this->bcc\n";

}

if( $this->organization != "" )

$this->headers .= "Organization: $this->organization\n";

if( $this->priority != "" )

$this->headers .= "X-Priority: $this->priority\n";

}

/*

* _build_attachement()

* internal use only - check and encode attach file(s)

*/

function _build_attachement()

{

$this->boundary= "------------" . md5( uniqid("myboundary") ); // TODO : variable bound

$this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";

$this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n" . $this->body ."\n";

$sep= chr(13) . chr(10);

$ata= array();

$k=0;

// for each attached file, do...

for( $i=0; $i < sizeof( $this->aattach); $i++ ) {

$filename = $this->aattach[$i];

$basename = basename($filename);

$ctype = $this->actype[$i]; // content-type

$disposition = $this->adispo[$i];

if( ! file_exists( $filename) ) {

echo "Class Mail, method attach : file $filename can't be found"; exit;

}

$subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n";

$ata[$k++] = $subhdr;

// non encoded line length

$linesz= filesize( $filename)+1;

$fp= fopen( $filename, 'r' );

$data= base64_encode(fread( $fp, $linesz));

fclose($fp);

$ata[$k++] = chunk_split( $data );

/*

// OLD version - used in php < 3.0.6 - replaced by chunk_split()

$deb=0; $len=76; $data_len= strlen($data);

do {

$ata[$k++]= substr($data,$deb,$len);

$deb += $len;

} while($deb < $data_len );

*/

}

$this->attachment= implode($sep, $ata);

}

} // class Mail

$subject=StripSlashes($subject);

$msg=StripSlashes($msg);

$msg="Message depuis votre site web:

$msg";

$m= new Mail; // create the mail

$m->From( "$email" );

$m->To( "$dest");

$m->Subject( "$subject" );

$m->Body( $msg); // set the body

if ($email1!="") {

$m->Cc( "$email1");

}

$m->Priority($priority) ;

if ("$NomFichier_name"!="") {

copy("$NomFichier","../upload/$NomFichier_name");

$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );

}

$m->Send();

if ("$NomFichier_name"!="") {

Unlink("../upload/$NomFichier_name"); }

echo "$reponse";

?>

Quelqu'un aurait il la gentillesse de me guider pour inserer le script pour le second champ Upload ? Merci


Publicité
Rickyo74
 Posté le 09/02/2011 à 01:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Personne ne peut m'aider ?

Jean-Pierre
 Posté le 09/02/2011 à 18:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Bonjour,

es-tu certain que ton but est bien défini ?

aussi cela fait des jours que j'essai à partir d'un script trouvé sur le net d'ajouter un second fichier à uploader depuis un formulaire sur un site que je suis en train de concevoir.

Pas possible de zipper X fichiers pour UN envoi ?

@+

ndmsp
 Posté le 09/02/2011 à 20:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je me bats avec ca sur un site (Voir mon sujet d'upload sur windows, c'est ca qui est concerné...). Tu peux essayer avec des scripts de multi-upload en Jquery, ca marche bien, mais sur un serveur Linux

a+

Rickyo74
 Posté le 10/02/2011 à 06:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Jean-Pierre a écrit :

Bonjour,

es-tu certain que ton but est bien défini ?

aussi cela fait des jours que j'essai à partir d'un script trouvé sur le net d'ajouter un second fichier à uploader depuis un formulaire sur un site que je suis en train de concevoir.

Pas possible de zipper X fichiers pour UN envoi ?

@+

Bonjour, si ça fonctionne si on regroupe plusieurs docs dans un dossier compressé mais ce n'est pas ce que je recherche....il existe bien des scripts avec envoi de plusieurs fichiers, sauf que les fichiers sont stockers dans un dossier "Upload" placé dans le dossier du site.

De plus je souhaiterais que les visiteurs de mon site puissent envoyer un doc et une photo separement accompagné de leur message et coordonnées que je receptionnerai sur ma boite mail.

Rickyo74
 Posté le 10/02/2011 à 06:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
ndmsp a écrit :

Je me bats avec ca sur un site (Voir mon sujet d'upload sur windows, c'est ca qui est concerné...). Tu peux essayer avec des scripts de multi-upload en Jquery, ca marche bien, mais sur un serveur Linux

a+

Merci pour ta reponse, c'est sympa mais pas possible pour moi....

Rickyo74
 Posté le 10/02/2011 à 07:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

J'ai encore bossé dessus, je suis malheureusement pas si loin du but...Il me semble etre sur la bonne voie. J'ai pu modifier mon formulaire ainsi que le script ! Tout fonctionne...seulement ya un HIC {#}.........En faisant des essais j'arrive à envoyer mon message ainsi que mes 2 documents mais ........le tout est envoyé dans la nature je ne sais ou (?????).

Rien dans ma messagerie & rien dans de stocker dans mon dossier "Upload" ?????

Je ne comprend pas pourquoi ça fonctionne trés bien avec un simple formulaire et un seul "upload" et pas 2 ?????

Voici ce que j'ai fait :

Le formulaire :

<form vname="FormName" action="formmail.php" method="post" enctype="multipart/form-data" name="form">

<table border="0" cellpadding="5" cellspacing="0" width="137">

<tr>

<td>Exp&eacute;diteur:</td>

<td><input type="text" name="email" size="35"></td>

</tr>

<tr>

<td>Sujet</td>

<td><input type="text" name="subject" size="35"></td>

</tr>

<tr>

<td>Message</td>

<td><textarea rows="12" name="msg" cols="60"></textarea></td>

</tr>

<tr>

<td>Fichier:</td>

<td><input type="hidden" name="MAX_FILE_SIZE" value="500000"><input name="NomFichier" type="file" size="16"></td>

</tr>

<tr>

<td>Fichier 2:</td>

<td><input type="hidden" name="MAX_FILE_SIZE" value="500000"><input name="NomFichier2" type="file" size="16"></td>

</tr>

<td>Priorit&eacute;:</td>

<td>

<div align="left">

<select name="priority" size="1">

<option value="1">Urgent

<option value="2">Haute

<option value="3">Moyenne

<option value="4">Basse

<option value="5">Tr&egrave;s basse

</select> <input type="submit" value="Envoyer"></div>

</td>

</tr>

</table>

</form>


Et là mon fameux script !!!

<?

/* PARAMETRAGE DU SCRIPT */

/* ENTREZ VOTRE ADRESSE EMAIL ENTRE LES GUILLEMETS*/

$dest="machin@bidule.com";

$reponse=StripSlashes("Merci, votre formulaire a bien été envoyé. Nous traiterons vos données dans les 24h");

/* FIN DU PARAMETRAGE */

/*

DESCRIPTION

this class encapsulates the PHP mail() function.

implements CC, Bcc, Priority headers

*/

class Mail

{

var $sendto= array();

var $from, $msubject;

var $acc= array();

var $abcc= array();

var $aattach= array();

var $priorities= array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );

// Mail contructor

function Mail()

{

$this->autoCheck( true );

}

/* autoCheck( $boolean )

* activate or desactivate the email addresses validator

* ex: autoCheck( true ) turn the validator on

* by default autoCheck feature is on

*/

function autoCheck( $bool )

{

if( $bool )

$this->checkAddress = true;

else

$this->checkAddress = false;

}

/* Subject( $subject )

* define the subject line of the email

* $subject: any valid mono-line string

*/

function Subject( $subject )

{

$this->msubject = strtr( $subject, "\r\n" , " " );

}

/* From( $from )

* set the sender of the mail

* $from should be an email address

*/

function From( $from )

{

if( ! is_string($from) ) {

echo "Class Mail: error, From is not a string";

exit;

}

$this->from= $from;

}

/* To( $to )

* set the To ( recipient )

* $to : email address, accept both a single address or an array of addresses

*/

function To( $to )

{

// TODO : test validité sur to

if( is_array( $to ) )

$this->sendto= $to;

else

$this->sendto[] = $to;

if( $this->checkAddress == true )

$this->CheckAdresses( $this->sendto );

}

/* Cc()

* set the CC headers ( carbon copy )

* $cc : email address(es), accept both array and string

*/

function Cc( $cc )

{

if( is_array($cc) )

$this->acc= $cc;

else

$this->acc[]= $cc;

if( $this->checkAddress == true )

$this->CheckAdresses( $this->acc );

}

/* Bcc()

* set the Bcc headers ( blank carbon copy ).

* $bcc : email address(es), accept both array and string

*/

function Bcc( $bcc )

{

if( is_array($bcc) ) {

$this->abcc = $bcc;

} else {

$this->abcc[]= $bcc;

}

if( $this->checkAddress == true )

$this->CheckAdresses( $this->abcc );

}

/* Body()

* set the body of the mail ( message )

*/

function Body( $body )

{

$this->body= $body;

}

/* Send()

* fornat and send the mail

*/

function Send()

{

// build the headers

$this->_build_headers();

// include attached files

if( sizeof( $this->aattach > 0 ) ) {

$this->_build_attachement();

$body = $this->fullBody . $this->attachment;

}

// envoie du mail aux destinataires principal

for( $i=0; $i< sizeof($this->sendto); $i++ ) {

$res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);

// TODO : trmt res

}

}

/* Organization( $org )

* set the Organisation header

*/

function Organization( $org )

{

if( trim( $org != "" ) )

$this->organization= $org;

}

/* Priority( $priority )

* set the mail priority

* $priority : integer taken between 1 (highest) and 5 ( lowest )

* ex: $m->Priority(1) ; => Highest

*/

function Priority( $priority )

{

if( ! intval( $priority ) )

return false;

if( ! isset( $this->priorities[$priority-1]) )

return false;

$this->priority= $this->priorities[$priority-1];

return true;

}

/* Attach( $filename, $filetype )

* attach a file to the mail

* $filename : path of the file to attach

* $filetype : MIME-type of the file. default to 'application/x-unknown-content-type'

* $disposition : instruct the Mailclient to display the file if possible ("inline") or always as a link ("attachment")

* possible values are "inline", "attachment"

*/

function Attach( $filename, $filetype='application/x-unknown-content-type', $disposition = "inline" )

{

// TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier

$this->aattach[] = $filename;

$this->actype[] = $filetype;

$this->adispo[] = $disposition;

}

/* Get()

* return the whole e-mail , headers + message

* can be used for displaying the message in plain text or logging it

*/

function Get()

{

$this->_build_headers();

if( sizeof( $this->aattach > 0 ) ) {

$this->_build_attachement();

$this->body= $this->body . $this->attachment;

}

$mail = $this->headers;

$mail .= "\n$this->body";

return $mail;

}

/* ValidEmail( $email )

* return true if email adress is ok - regex from Manuel Lemos (mlemos@acm.org)

* $address : email address to check

*/

function ValidEmail($address)

{

if( ereg( ".*<(.+)>", $address, $regs ) ) {

$address = $regs[1];

}

if(ereg( "^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$address) )

return true;

else

return false;

}

/* CheckAdresses()

* check validity of email addresses

* if unvalid, output an error message and exit, this may be customized

* $aad : array of emails addresses

*/

function CheckAdresses( $aad )

{

for($i=0;$i< sizeof( $aad); $i++ ) {

if( ! $this->ValidEmail( $aad[$i]) ) {

echo "Class Mail, method Mail : invalid address $aad[$i]";

exit;

}

}

}

/********************** PRIVATE METHODS BELOW **********************************/

/* _build_headers()

* [INTERNAL] build the mail headers

*/

function _build_headers()

{

// creation du header mail

$this->headers= "From: $this->from\n";

$this->to= implode( ", ", $this->sendto );

if( count($this->acc) > 0 ) {

$this->cc= implode( ", ", $this->acc );

$this->headers .= "CC: $this->cc\n";

}

if( count($this->abcc) > 0 ) {

$this->bcc= implode( ", ", $this->abcc );

$this->headers .= "BCC: $this->bcc\n";

}

if( $this->organization != "" )

$this->headers .= "Organization: $this->organization\n";

if( $this->priority != "" )

$this->headers .= "X-Priority: $this->priority\n";

}

/*

* _build_attachement()

* internal use only - check and encode attach file(s)

*/

function _build_attachement()

{

$this->boundary= "------------" . md5( uniqid("myboundary") ); // TODO : variable bound

$this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";

$this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n" . $this->body ."\n";

$sep= chr(13) . chr(10);

$ata= array();

$k=0;

// for each attached file, do...

for( $i=0; $i < sizeof( $this->aattach); $i++ ) {

$filename = $this->aattach[$i];

$basename = basename($filename);

$ctype = $this->actype[$i]; // content-type

$disposition = $this->adispo[$i];

if( ! file_exists( $filename) ) {

echo "Class Mail, method attach : file $filename can't be found"; exit;

}

$subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n";

$ata[$k++] = $subhdr;

// non encoded line length

$linesz= filesize( $filename)+1;

$fp= fopen( $filename, 'r' );

$data= base64_encode(fread( $fp, $linesz));

fclose($fp);

$ata[$k++] = chunk_split( $data );

/*

// OLD version - used in php < 3.0.6 - replaced by chunk_split()

$deb=0; $len=76; $data_len= strlen($data);

do {

$ata[$k++]= substr($data,$deb,$len);

$deb += $len;

} while($deb < $data_len );

*/

}

$this->attachment= implode($sep, $ata);

}

} // class Mail

$subject=StripSlashes($subject);

$msg=StripSlashes($msg);

$msg="Message depuis votre site web:

$msg";

$m= new Mail; // create the mail

$m->From( "$email" );

$m->To( "$dest");

$m->Subject( "$subject" );

$m->Body( $msg); // set the body

if ($email1!="") {

$m->Cc( "$email1");

$m->Priority($priority) ;

if ($_FILES['NomFichier']['tmp_name'] !="" AND $_FILES['NomFichier2']['name'] !="") {

copy_file($_FILES['NomFichier']['tmp_name'],"../upload/" . $_FILES['NomFichier']['name']);

copy_file($_FILES['NomFichier2']['tmp_name'],"../upload/" . $_FILES['NomFichier2']['name']);

$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );

$m->Attach( "../upload/$NomFichier2_name", "application/octet-stream" );

}

$m->Send();

Unlink("../upload/$NomFichier_name");

Unlink("../upload/$NomFichier2_name"); }

echo "$reponse";

?>

*******************************************

En gros j'ai repris le 1er script ( upload d'un fichier) et j'ai modifier la partie CLASS MAIL en ( en bleu)

Il doit surement manquer quelque chose pour que je puisse recevoir tout ça dans ma boite mail ? Aidez moi s'il vous plait, ça m'empéche de dormir !!!

Surtout que ce script pourrait aider en même temps pas mal de personnes !!

Rickyo74
 Posté le 10/02/2011 à 07:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Je precise bien: Ce Script permet d'envoyer un mail grâce à un formulaire sur un site. Ce qu'il fait de plus que les autres c'est qu'il gère la priorité du message, les copies et permet d'envoyer 2 fichiers joint ( enfin pour l'instant il permet qu'un fichier) si l'hébergeur le permet(en gros presque tous sauf Online et Nexen).
Le script utilise une version de la classe Mail() développée par Leo West (lwest.free.fr)

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
GratuitJeu PC Wargame: Red Dragon gratuit
Valable jusqu'au 11 Mars

Epic Game Store offre actuellement le jeu PC Wargame: Red Dragon. Plus grande, plus riche et plus spectaculaire que jamais, la série Wargame fait son grand retour. Dans Wargame: Red Dragon, vous prenez part à un conflit d'envergure opposant les puissances occidentales au bloc communiste.


> Voir l'offre
340,11 €Mini PC MINISFORUM UM300 (Ryzen 3 3300U, 16Go RAM, 512 Go SSD) à 340,11 € avec le code BGDKMN3
Valable jusqu'au 07 Mars

Banggood propose actuellement le mini PC MINISFORUM UM300 à 329,91 € avec le code promo BGDKMN3. Ce mini PC au format NUC d'Intel possède un processeur Ryzen 3 3300U avec chip graphique Vega 6, 16 Go de RAM DDR4 et un SSD de 512 Go. Il dispose d'une connectique complète : un emplacement 2,5 pouces libre (pour ajouter un disque dur ou un SSD supplémentaire, le WiFi6, le bluetooth 5.1, 3 ports USB 3.1, un port HDMI 2.0, un DisplayPort, deux ports Ethernet Gigabit et tourne sous Windows 10 que vous pourrez mettre en français. Il est livré avec une alimentation européenne. Branchez ce mini PC sur une TV ou un écran et vous avez un ordinateur discret et performant. Comptez 10,20 € pour l'assurance et la livraison soit un total de 340,11 € livré.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une vingtaine de jours. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
103,39 €SSD PNY XLR8 CS3030 1 To (NMVe M.2, 3500 Mo/s) à 103,39 € livré
Valable jusqu'au 07 Mars

Amazon Allemagne fait une promotion sur le SSD PNY XLR8 CS3030 1 To (NMVe M.2) qui passe à 98,87 €. Comptez 4,52 € pour la livraison en France soit un total de 103,39 € livré alors qu'on le trouve ailleurs à partir de 150 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen3 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 3500 Mo/s en lecture séquentielle et jusqu’à 2000 Mo/s en écriture séquentielle.

Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre

Sujets relatifs
Formulaire pb avec les fichiers recus [résolu]
Formulaire qui ne fonctionne pas avec Joomla
Pas de mail recu avec formulaire html et php
Utilité d'un captcha avec un formulaire
Help Malcom : formulaire mail php avec copie caché
Formulaire HTML avec DreamWeaver CS3
problème upload avec htaccess
transfert de fichiers sur site, avec hotspots
Gestion de CV en ligne avec upload CV+LM
Formulaire avec Webcreator Pro4
Plus de sujets relatifs à Formulaire php avec upload de 2 fichiers. Formail
 > Tous les forums > Forum Forum des Webmasters