OVH Community, votre nouvel espace communautaire.

Formulaire de contact php ne fonctionne pas


avoodware
16/03/2006, 13h25
ok et merci encore

Shadow aok
16/03/2006, 11h52
A faire des sauts de ligne mais à la sauce windows
(donc pour un hébergement sous windows)

avoodware
16/03/2006, 11h47
merci très beaucoup

si rien ne m'a échappé, il suffit donc uniquement d'enlever tous les \r
c'est ça ?

à quoi ils servaient ?

Shadow aok
16/03/2006, 10h55
Voilà

Code PHP:

$form_message 
'Pour adresser un message, remplissez le formulaire ci-dessous.';
$email_address 'login@avoodware.com';

$form_element0 $_POST['form_element0'];
$sent_message .= '
'
;$sent_message .= 'Votre nom : '$_POST['form_element0'];$sent_message .= '
'
;$form_element1 $_POST['form_element1'];
$sent_message .= '
'
;$sent_message .= 'Votre prÈnom : '$_POST['form_element1'];$sent_message .= '
'
;$form_element2 $_POST['form_element2'];
$sent_message .= '
'
;$sent_message .= 'Votre adresse mail : '$_POST['form_element2'];$sent_message .= '
'
;$form_element3 $_POST['form_element3'];
$sent_message .= '
'
;$sent_message .= 'Le sujet de votre message : '$_POST['form_element3'];$sent_message .= '
'
;$form_element4 $_POST['form_element4'];
$sent_message .= '
'
;$sent_message .= 'Votre Message : '$_POST['form_element4'];$sent_message .= '
'
;if (!eregi ("^([a-z0-9_]|-|.)+@(([a-z0-9_]|-)+.)+[a-z]{2,4}$"$email_address)) {
unset(
$email_address);
}

if (
file_exists($tmp_name)){
if(
is_uploaded_file($tmp_name)){
$file fopen($tmp_name,'rb');
$data fread($file,filesize($tmp_name));
fclose($file);
$data chunk_split(base64_encode($data));

}

$headers="From:$form_element2\n" "MIME-Version: 1.0\n" "Content-Type: multipart/mixed;\n" "boundary=\"{$mime_boundary}\"";

$sent_message .= "This is a multi-part message in MIME format.\n\n" "--{$mime_boundary}\n" "Content-Type: text/plain; charset=\"iso-8859-1\"\n" "Content-Transfer-Encoding: 7bit\n\n" $sent_message "\n\n";

$sent_message .= "--{$mime_boundary}\n" "Content-Type: {$type};\n" " name=\"{$name}\"\n" "Content-Transfer-Encoding: base64\n\n" $data "\n\n" "--{$mime_boundary}--\n";
}

else
{
$headers="From:$form_element2\n" ."MIME-Version: 1.0\n" ."Content-Type: text/plain; charset=\"iso-8859-1\"\n";
}if(
$form_element3 && $form_element4 &&  $email_address)
{
$mailed=mail($email_address$form_element3$sent_message$headers);
$form_message 'Votre message a bien été envoyé.Je vous en remercie.
';
}

else {
$form_message 'Pour adresser un message, remplissez le formulaire ci-dessous.
Les champs marqués # sont requis.';

}

?>
echo $form_message;
?>

avoodware
16/03/2006, 10h23
bah ce coup-ci mon code php est devenu visible dans mon formulaire (???)
et en effet je vois les caractères en cause : \r et \n

que faut-il donc que je fasse pour que les serveurs OVH ne considèrent pas les messages envoyés comme du spam... et ainsi pouvoir utiliser mes adresses sur mon nom de domaine plutôt que celles créées sur le domaine de mon FAI ?

merci de ton aide

voici donc le code php :

Code PHP:

$form_message 
'Pour adresser un message, remplissez le formulaire ci-dessous.';
$email_address 'login@avoodware.com';

$form_element0 $_POST['form_element0'];
$sent_message .= '
'
;$sent_message .= 'Votre nom : '$_POST['form_element0'];$sent_message .= '
'
;$form_element1 $_POST['form_element1'];
$sent_message .= '
'
;$sent_message .= 'Votre prÈnom : '$_POST['form_element1'];$sent_message .= '
'
;$form_element2 $_POST['form_element2'];
$sent_message .= '
'
;$sent_message .= 'Votre adresse mail : '$_POST['form_element2'];$sent_message .= '
'
;$form_element3 $_POST['form_element3'];
$sent_message .= '
'
;$sent_message .= 'Le sujet de votre message : '$_POST['form_element3'];$sent_message .= '
'
;$form_element4 $_POST['form_element4'];
$sent_message .= '
'
;$sent_message .= 'Votre Message : '$_POST['form_element4'];$sent_message .= '
'
;if (!eregi ("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}$"$email_address)) {
unset(
$email_address);
}

if (
file_exists($tmp_name)){
if(
is_uploaded_file($tmp_name)){
$file fopen($tmp_name,'rb');
$data fread($file,filesize($tmp_name));
fclose($file);
$data chunk_split(base64_encode($data));

}

$headers="From:$form_element2\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed;\r\n" .
"boundary=\"{$mime_boundary}\"";

$sent_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$sent_message "\n\n"

$sent_message .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data "\n\n" .
"--{$mime_boundary}--\n"
}

else
{
$headers="From:$form_element2\r\n" ."MIME-Version: 1.0\r\n" ."Content-Type: text/plain; charset=\"iso-8859-1\"\n"
 }if(
$form_element3 && $form_element4 &&  $email_address)
{
$mailed=mail($email_address$form_element3$sent_message$headers);
$form_message 'Votre message a bien été envoyé.Je vous en remercie.
';
}

else {
$form_message 'Pour adresser un message, remplissez le formulaire ci-dessous.
Les champs marquÈs # sont requis.';

}

?> 
 echo $form_message;
 
?>

Shadow aok
16/03/2006, 09h53
Poste ton code (ouvre ton fichier php avec le bloc-notes et insère le contenu ici)

avoodware
16/03/2006, 09h26
merci
mais comme j'utilises un logiciel de création de site (RapidWeaver sur Mac), ce n'est pas moi qui écrit les codes... et j'ai beau chercher dans tous les fichiers, notamment mon fichier contact.php,je ne trouve pas trace de \r, éventuellement des /br (pour saut de ligne XHtml), et d'ailleurs pas vraiment non plus de code php en réalité.
peux-tu me guider ? me dire où il faut que je regarde ?

merci

Shadow aok
15/03/2006, 16h51
Sous Windows un saut de ligne se fait avec \r\n et sous linux \n donc si tu utilises \r\n cela gêne.

Quand tu envoies un email avec la fonction mail(), tu déclares un header (from/to/reply-to ...), c'est là qu'il faut virer tes \r.

avoodware
15/03/2006, 16h47
Le probleme vient des \r que vous avez dans certains headers de votre formulaire, les \r font considéré le mail comme du spam et donc n'est pas reçu par nos serveurs mails.
... mais moi je ne sais même pas ce que c'est des \r , ni à quoi ça sert !

si quelqu'un peut compléter...

merci

avoodware
14/03/2006, 11h39
j'ai le même problème et j'interroge actuellement le support OVH à ce sujet

en attendant, la solution que j'ai trouvée est de faire pointer le formulaire vers une autre adresse : c'est-à-dire pas @mon-nom-de-domaine, mais @wanadoo.fr ou @hotmail.fr ou @free.fr etc...

en effet, le probléme (en tout cas pour moi) ne se pose que si je demande au formulaire sur mon site de pointer vers des adresses sur mon nom de domaine

à suivre pour la réponse OVH

zephiro
09/03/2006, 19h00
J'ai déjà rencontré ce problème mais seulement avec des retards pour la reception.

fred95
17/02/2006, 16h13
Bonjour,
newbie sur ce forum...
Un formulaire de contact Php qui fonctionne parfaitement sur un autre site (autre hébergeur) mais qui n'opère pas sur Ovh...
Pa de réception de mail bien que les fenêtres fonctionnent correctement
(envoi/message envoyé)
Quelqu'un a déjà connu ça ?
Existe t-il une astuce ou une modif particulière à effectuer pour un NDD hébergé sur un mutualisé ?
ça n'a peut-être pas de rapport!
Merci pour votre contribution
A+