Formmail : problème !
Dernière réponse : dans Programmation
Slt tout le monde ! J'ai un gros problème génant, je n'arrive pas à faire fonctionner formmail et c'est plutot génant car je suis en train de créer un site pour quelqu'un ! Voilà la page ou se trouve formmail : http://62.147.181.251/jean-mi/mail/form.html
Voila à quoi j'ai droit une fois que j'essaye d'envoyer un message :
Quelqu'un pourrait m'aider ? Je sais plus bidouiller que programmer si vous voyez ce que je veux dire
Voila à quoi j'ai droit une fois que j'essaye d'envoyer un message :
Notice: Undefined variable: subject in e:\apache\www\jean-mi\mail\formmail.php on line 373
Notice: Undefined variable: msg in e:\apache\www\jean-mi\mail\formmail.php on line 374
Notice: Undefined variable: email in e:\apache\www\jean-mi\mail\formmail.php on line 378
Notice: Undefined variable: email1 in e:\apache\www\jean-mi\mail\formmail.php on line 382
Notice: Undefined variable: priority in e:\apache\www\jean-mi\mail\formmail.php on line 385
Notice: Undefined variable: NomFichier_name in e:\apache\www\jean-mi\mail\formmail.php on line 386
Notice: Undefined property: organization in e:\apache\www\jean-mi\mail\formmail.php on line 312
Notice: Undefined property: priority in e:\apache\www\jean-mi\mail\formmail.php on line 315
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in e:\apache\www\jean-mi\mail\formmail.php on line 176
Notice: Undefined variable: NomFichier_name in e:\apache\www\jean-mi\mail\formmail.php on line 391
Entrez ici la réponse quand une personne envoie le formulaire
Quelqu'un pourrait m'aider ? Je sais plus bidouiller que programmer si vous voyez ce que je veux dire
Autres pages sur : formmail probleme
Lassé par la pub ? Créez un compte
Shino-Genin a dit :
Si l'envoi ne marche pas en local, tu as essayé de le mettre chez ton hébergeur de site ?Sinon, balance le code de ta page et de formail.
Donc voila la page de départ ou il y a le formulaire :
<title>Estimation</title>
<body bgcolor="#E60030">
<form vname="FormName" action="formmail.php" method="post" enctype="multipart/form-data" name="form">
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="60%" height="159">
<tr>
<td width="110" bgcolor="#FFFFFF" bordercolor="#FFCC00" height="96" align="center">
<img border="0" src="../images/logo_orpi_2.jpg" width="110" height="96"></td>
<td width="430" bgcolor="#FFFFFF" bordercolor="#FFCC00" height="96" colspan="3" align="center">
<p align="center" dir="ltr">
<img border="0" src="../images/index.1.jpg" width="80%" height="95%"></td>
</tr>
<tr>
<td width="540" bgcolor="#FFFFFF" bordercolor="#FFCC00" height="6" colspan="4" align="center"> </td>
</tr>
<tr>
<td width="110" bgcolor="#E90232" bordercolor="#FFFFFF" height="19" align="center" style="border-style: none; border-width: medium">
<b><font face="Microsoft Sans Serif" size="2" color="#FFFFFF">
<a href="../index.htm" style="text-decoration: none"><font color="#FFFFFF">Acceuil</font></a></font></b></td>
<td width="160" bgcolor="#E90232" bordercolor="#FFFFFF" height="19" align="center" style="border-style: none; border-width: medium">
<b><a style="text-decoration: none" href="../ventes-achats.htm"><font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Ventes /
Achats</font></a></b></td>
<td width="135" bgcolor="#E90232" bordercolor="#FFFFFF" height="19" align="center" style="border-style: none; border-width: medium">
<b>
<font face="Microsoft Sans Serif" size="2">Contacts</font></b></td>
<td width="135" bgcolor="#E90232" bordercolor="#FFFFFF" height="19" align="center" style="border-style: none; border-width: medium">
<b>
<a href="<a href="http://62.147.181.251/jean-mi/subscribe.php" target="_blank">http://62.147.181.251/jean-mi/subscribe.php</a>" style="text-decoration: none"><font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Newslestter</font></a></b></td>
</tr>
<tr>
<td bgcolor="#808080" bordercolor="#FFCC00" height="15" colspan="4" align="center" width="540">
<p align="center">
<font face="Times New Roman" color="#FFFFFF" style="font-size: 9pt">
<marquee scrollamount="4">LAWRENCE IMMOBILIER ---- Offres du moment : Maison 120 m² à Pau 850000 € ; Appartement T3 80 m² 25790 € ---- LAWRENCE IMMOBILIER</marquee></font></td>
</tr>
<tr>
<td width="540" bgcolor="#FFFFFF" bordercolor="#FFCC00" height="19" colspan="4" align="center">
<p align="left">
<font face="Microsoft Sans Serif" style="font-size: 9pt"><u>Vous êtes ici</u>
: Contacts</font></td>
</tr>
<tr>
<td width="540" bgcolor="#FFFFFF" bordercolor="#FFCC00" height="19" colspan="4" align="center">
<p align="left"><font face="Microsoft Sans Serif" size="2">Veuillez
indiquer :</font></p>
<p align="justify"><font face="Microsoft Sans Serif" size="2">- Votre nom,
prénom, adresse, mail et un numéro de téléphone pour que je puisse vous
joindre. Vous pouvez insérer un fichier joint si besoin.</font></td>
</tr>
</table>
</center>
</div>
<div align="center">
<center>
<table border="0" cellpadding="5" cellspacing="0" width="60%" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="68">
<font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Expéditeur:</font></td>
<td width="501"><font face="Microsoft Sans Serif" color="#FFFFFF"><input type="text" name="email" size="35"></font></td>
</tr>
<tr>
<td width="68">
<font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Sujet</font></td>
<td width="501"><font face="Microsoft Sans Serif" color="#FFFFFF"><input type="text" name="subject" size="35"></font></td>
</tr>
<tr>
<td width="68">
<font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Message</font></td>
<td width="501"><font face="Microsoft Sans Serif" color="#FFFFFF">
<textarea rows="12" name="msg" cols="54">Nom :
Prénom :
Adresse domicile :
Votre email :
Votre numero de téléphone :
Entrez votre message</textarea></font></td>
</tr>
<tr>
<td width="68">
<font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Fichier joint:</font></td>
<td width="501"><font face="Microsoft Sans Serif" color="#FFFFFF"><input type="hidden" name="MAX_FILE_SIZE" value="100000">
</font><font face="Microsoft Sans Serif" color="#FFFFFF"><input name="NomFichier" type="file" size="16"></font></td>
</tr>
<tr>
<td width="68">
<font face="Microsoft Sans Serif" size="2" color="#FFFFFF">Priorité:</font></td>
<td width="501">
<div align="left">
<font face="Microsoft Sans Serif"><font color="#FFFFFF">
<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ès basse
</select></font><font size="2" color="#FFFFFF"> </font>
<font color="#FFFFFF"> <input type="submit" value="Envoyer"></font></font></div>
</td>
</tr>
</table>
</center>
</div>
</form>
Oulala ! Mon serveur à un gros bord.. ! Ya plus aucun forum ou truc en php qui fonctionne !!! C'est peut-être parceque j'ai mis trop de bases de données ? Y'en à déjà 10... Vous croyez que ca peut venir de la ?
formmail.php
Je ne vois rien aux lignes ou il y a soit-disant un problème...
Bon après c'est vrai j'y connait rien au PHP
formmail.php
<?
/* PARAMETRAGE DU SCRIPT */
/* ENTREZ VOTRE ADRESSE EMAIL ENTRE LES GUILLEMETS*/
$dest="seb.calero@free.fr";
$reponse=StripSlashes("Entrez ici la réponse quand une personne envoie le formulaire");
/* FIN DU PARAMETRAGE */
/*
Form Mail +
Loïc Bresler
Script permettant 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 un fichier joint 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) et modifiée par mes soins.
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";
?>
Je ne vois rien aux lignes ou il y a soit-disant un problème...
Bon après c'est vrai j'y connait rien au PHP
Et j'espère que quand tu dis bases, tu parles en fait des tables d'une seule et même base ? Il ne sert à rien de multiplier les bases...
Il te dit simplement que tes variables ($...) n'existent pas ! En gros, sauf erreur de ma part, il te manque la transmission des variables de ton formulaire vers lon script formmail.php
Par ex, on ne voit nulle part : "$msg = $_POST['message'];" signifiant que la variable $msg prend la valeur de ce qui a été mis dans le formulaire au niveau de la zone "message".
Et ça ne te dirait pas d'arêter la programmation à papy et de passer au xhtml/css, parce que là, ton code est imbuvable à lire...
Il te dit simplement que tes variables ($...) n'existent pas ! En gros, sauf erreur de ma part, il te manque la transmission des variables de ton formulaire vers lon script formmail.php
Par ex, on ne voit nulle part : "$msg = $_POST['message'];" signifiant que la variable $msg prend la valeur de ce qui a été mis dans le formulaire au niveau de la zone "message".
Et ça ne te dirait pas d'arêter la programmation à papy et de passer au xhtml/css, parce que là, ton code est imbuvable à lire...
Dans le sens de marsien, tu as deux choix :
* soit comme elle le dit si bien "$msg = $_POST['message'];"
* soit tu met le paramètre register_globalà la valeur On (si je me rapelle bien), cela aura pour effet de faire ceci : "$message = $_POST['message'];" Sans que tu n'est rien à faire. Mais bon pour programmer c'est pas le top je trouve
* soit comme elle le dit si bien "$msg = $_POST['message'];"
* soit tu met le paramètre register_globalà la valeur On (si je me rapelle bien), cela aura pour effet de faire ceci : "$message = $_POST['message'];" Sans que tu n'est rien à faire. Mais bon pour programmer c'est pas le top je trouve
Bon, je vais voir tout ca ! Sinon, vous ne connaissez pas un formulaire tout pret avec demande du nom, prénom, adresse perso et mail + zone de message et qui envoi directe à une adresse mail sans utiliser "mailto" qui ouvre la messagerie ? Et dernier truc, j'ai lu que il n'y avait que certains serveurs qui supportaient l'envoi d'email à partir d'un page, vous croyez que mon serveur justement ne supporte pas cette fonction ?
Il te faut regarder la configuration dans ton php.ini (ou avec phpinfo() ).
Pour plus d'informations : http://fr.php.net/manual/fr/ref.mail.php
Pour plus d'informations : http://fr.php.net/manual/fr/ref.mail.php
Citation :
Il te faut regarder la configuration dans ton php.ini (ou avec phpinfo() ).Pour plus d'informations : http://fr.php.net/manual/fr/ref.mail.php
Merci Orni ca marche ! Mais j'ai abandonné formmail pour PHPML : génial ! Mais la un seul et unique problème : quand j'essaye d'envoyer un message à un inscrit dans la liste à partir de l'interface :
Parse error: parse error in e:\apache\www\jean-mi\php_mail\Mail_fonctions\Fonction_mail_bcc.php on line 49
D'autre fois c'est aussi :
Parse error: parse error in e:\apache\www\jean-mi\php_mail\Mail_fonctions\Fonction_mail_bcc.php on line 46
Voilà la page en question qui merdouille :
<?php
/*
***************************************************************************************************************************
* *
* Nom de la source : *
* PHP ML *
* Nom du fichier par défaut : *
* Fonction_mail_bcc.php *
* Auteur : *
* Nuel Guillaume alias Immortal-PC *
* Site Web : *
* <a href="http://www.immortalpc.free.fr/" target="_blank">http://www.immortalpc.free.fr/</a> *
* *
***************************************************************************************************************************
*/
if(!defined('PROTECTION')){include('./Error404.php');}// Protection
if($_POST['to'] == 'Tout les membres'){// Si $_POST['to'] = 'Tout les membres' alors on envoie un E-Mail a tout les membres
// On optient toutes les adresses email
$res = requette_MySQL('SELECT `email` FROM `'.$prefix_table.'_emails`;');
$email = '';
while($db = mysql_fetch_array($res)){
$email .= $db['email'].',';
}
// On vérifie si le dernier caratère et une virgule
if($email{strlen($email)-1} === ','){
$email{strlen($email)-1} = '';
}
$name_to = 'Tout les Membres';
$mail_to = $_POST['from'];
$entete .= 'Bcc: '.$email."\r\n";
}elseif(substr_count($_POST['to'], ',')){
$name_to = str_replace(',', ', ', $_POST['to']);
$mail_to = $_POST['from'];
$entete .= 'Bcc: '.$_POST['to']."\r\n";
}else{// Si non c'est que $_POST['to'] n'est pas egale à 'Tout les membres' alors envoie du message a une personne bien précise
$name_to = $_POST['to'];
$mail_to = $_POST['to'];
}
if(mail($mail_to, $_POST['objet'], $texte_html, $entete)){// E-Mail
if($name_to == 'Tout les membres'){$name_to = $mail_to;}
redirect($_SERVER['REQUEST_URI'].'&mail=send&to='.$name_to);// Redirection pour éviter de renvoyer l'E-Mail une 2 ème fois
}else{
echo '<div class="center Texte_Rouge"><img src="./Images/Del.gif" alt="Erreur" /> L\' E-Mail avec le sujet \'<span class="Gras">',$_POST['objet'],'</span>\' n\' a été envoyé à \'<span class="Gras">',$name_to,'</span>\'.</div>',"\r\n";
}
?>
J'ai configuré php.ini avec smpt en port 25, l'adresse mail de départ que je veux et pop.free.fr
merci d'avance
Je vois pas trop d'erreurs, mais plusieurs remarques :
- Tu dois initialiser tes variables en dehors des boucles et autres conditions (if, elseif et else). C'est pas obligatoire mais conseillé !
- Tu ne vérifie à aucun moment si tes variables sont addslashées (et autres problèmes qui pourraient intervenir).
Sinon teste bien toutes tes variables pour voir si elles sont correctes (vive la fonction echo).
- Tu dois initialiser tes variables en dehors des boucles et autres conditions (if, elseif et else). C'est pas obligatoire mais conseillé !
- Tu ne vérifie à aucun moment si tes variables sont addslashées (et autres problèmes qui pourraient intervenir).
Sinon teste bien toutes tes variables pour voir si elles sont correctes (vive la fonction echo).
Lassé par la pub ? Créez un compte
- Contenus similaires :