[RESOLU] Formulaire fonctionne en PHP 5.2 et pas en 5.3

Mickey2705
Invité n'ayant pas de compte PHPfrance

27 août 2013, 16:07

Bonjour,

Bonjour, tout est dans le titre le même formulaire chez Amen en PHP 5.2 fonctionne et chez OVH il envoie le texte mais pas les variables.
Voici le script :
(Merci pour votre aide)


$message ="";
$message ="\n";
$message = $message."Fiche contact site Web\n";
$message = $message."--------------------------------------- \n";
$message = $message."Nom :\t".$nom."\n";
$message = $message." \n";
$message = $message."Prenom :\t".$prenom."\n";
$message = $message." \n";
$message = $message."E-Mail :\t".$mail."\n";
$message = $message." \n";
$message = $message."Message :\t\t".$mess."\n";
$message = $message." \n";
$message = $message."--------------------------------------- \n";
mail ( "[email protected]","Fiche Contact Site de : ".$nom." ".$prenom,$message,"From: $mail\nReply-To: $mail");
// ------------------------------------------------------------------------- //


// ---------------------------- Success Message ---------------------------- //
?>
<html><head><title>merci</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-image: url(images/fond_2.jpg);
}
.Style1 {color: #000066}
p {
color: #CCC;
}
p {
font-weight: bold;
}
p {
text-align: center;
}
p {
font-size: large;
}
p {
font-family: Gabriola, "Times New Roman", Times, serif;
font-weight: bold;
}
-->
</style></head>
<body background="images/fond_2.jpg">

<p align="center" class="Style1">&nbsp;</p>
<p align="center" class="Style1">&nbsp;</p>
<p><br>
</p>
<p>Merci, Votre message a bien &eacute;t&eacute; envoy&eacute;, <br>
nous vous r&eacute;pondrons dans les meilleurs d&eacute;lais.</span> <span class="Style1"><br>
</span></p>
<pre>&nbsp; </pre>
<p align="center" class="Style1"><A HREF="contact.html"><img src="images/fermer.png" width="155" height="29"></A><br>
</p>
</div>
<div align="center"></div>
</body>
</html>

Mickey2705
Invité n'ayant pas de compte PHPfrance

27 août 2013, 17:39

bon je viens de réussir à passer en 5.2 chez OVH et ... j'ai le même problème, INCROYABLE.
Je ne comprends pas ça vient peut-etre de ma page contact.html qui appelle ce formulaire.
pfffffff !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 août 2013, 19:39

Salut,

Non tu as sûrement un problème de register globals

Ce paramètre est désactivé par défaut depuis php 4.2.0 (sortie le 29 août 2000 il y a donc 13 ans) et supprimé depuis php 5.4.

Il te faut revoir ton formulaire pour coller a un mode de fonctionnement plus moderne, sécurisé et moins "bordélique" ;)

Un tuto sur le fonctionnement des formulaires http://www.lephpfacile.com/cours/8-recu ... ormulaires


@+
Il en faut peu pour être heureux ......

Mickey2705
Invité n'ayant pas de compte PHPfrance

28 août 2013, 09:38

SUPEEEER !

Merci beaucoup en fait j'ai juste à remplacer mes $variable par $_POST['variable'] .

ça marche impec merci infiniment !

Mickey2705
Invité n'ayant pas de compte PHPfrance

28 août 2013, 09:55

bon je me suis emballé en fait il y des trucs qui ne fonctionnent pas .
l'affichage des noms et prenoms dans l'objet du mail fonctionnent et l'affichage du message ($mess) dans le corps du mail également, tout le reste non (l'affichage des noms et prénoms dans le corps du mail le from et reply ).

Auriez vous un cours ou la syntaxe à utiliser pour remplacer :

$message ="";
$message ="\n";
$message = $message."Fiche contact site Web\n";
$message = $message."--------------------------------------- \n";
$message = $message."Nom :\t".$nom."\n";
$message = $message." \n";
$message = $message."Prenom :\t".$prenom."\n";
$message = $message." \n";
$message = $message."E-Mail :\t".$mail."\n";
$message = $message." \n";
$message = $message."Message :\t\t".$mess."\n";
$message = $message." \n";
$message = $message."--------------------------------------- \n";
mail ( "[email protected]","Fiche Contact Site de : ".$nom." ".$prenom,$message,"From: $mail\nReply-To: $mail");

ViPHP
xTG
ViPHP | 7331 Messages

28 août 2013, 10:41

$message = $message."Nom :\t".$_POST['nom']."\n";
Voici la syntaxe.

Mickey2705
Invité n'ayant pas de compte PHPfrance

28 août 2013, 16:21

Merci je m'y mets de suite !!

Mickey2705
Invité n'ayant pas de compte PHPfrance

28 août 2013, 16:48

Bon ça ne fonctionne pas (du moins pas complètement).

L'affichage des noms et prenoms dans l'objet du mail fonctionnent et l'affichage du message ($mess) dans le corps du mail également, tout le reste non (l'affichage du nom, prénom et email dans le corps du mail et le from et reply ).

Pour le ""From:$mail\nReply-To:$mail"" j'ai remis cette syntaxe car si je déclare les variables avec $_POST['mail'] ... j'ai une erreur le cript ne fonctionne pas .

Voici mon script :


$message ="";
$message ="\n";
$message = $message."Fiche contact site Web\n";
$message = $message."--------------------------------------- \n";
$message = $message."Nom :\t".$_POST['nom']."\n";
$message = $message." \n";
$message = $message."Prenom :\t".$_POST['prenom']."\n";
$message = $message." \n";
$message = $message."E-Mail :\t".$_POST['mail']."\n";
$message = $message." \n";
$message = $message."Message :\t\t".$_POST['mess']."\n";
$message = $message." \n";
$message = $message."--------------------------------------- \n";
mail ( "[email protected]","Fiche Contact Site : ".$_POST['prenom']." ".$_POST['nom'],$_POST['message'],"From:$mail\nReply-To:$mail");

Mickey2705
Invité n'ayant pas de compte PHPfrance

28 août 2013, 17:49

Bon ça marche presque, caractères accentués et tout et tout (juste le from et reply (si quelqu'un sait pourquoi ... merci encore) :

$_POST['message'] = htmlentities($_POST['message'], ENT_QUOTES,'UTF-8');
$_POST['mess'] = htmlentities($_POST['mess'], ENT_QUOTES,'UTF-8');
$_POST['nom'] = htmlentities($_POST['nom'], ENT_QUOTES,'UTF-8');
$_POST['prenom'] = htmlentities($_POST['prenom'], ENT_QUOTES,'UTF-8');

$_POST['message'] ="";
$_POST['message'] ="\n";
$_POST['message'] = $_POST['message']."Fiche contact site Web\n";
$_POST['message'] = $_POST['message']."--------------------------------------- \n";
$_POST['message'] = $_POST['message']."Nom :\t".$_POST['nom']."\n";
$_POST['message'] = $_POST['message']." \n";
$_POST['message'] = $_POST['message']."Prenom :\t".$_POST['prenom']."\n";
$_POST['message'] = $_POST['message']." \n";
$_POST['message'] = $_POST['message']."E-Mail :\t".$_POST['mail']."\n";
$_POST['message'] = $_POST['message']." \n";
$_POST['message'] = $_POST['message']."Message :\t\t".$_POST['mess']."\n";
$_POST['message'] = $_POST['message']." \n";
$_POST['message'] = $_POST['message']."--------------------------------------- \n";
mail ( "[email protected]","Fiche Contact Site : ".$_POST['prenom']." ".$_POST['nom'],$_POST['message'],"From:$mail\nReply-To:$mail");

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 août 2013, 18:22

comme le reste la variable $mail n'existe pas...

Active l'affichage des erreurs et le niveau de rapport à E_ALL sinon tu ne va pas t'en sortir.

@+
Il en faut peu pour être heureux ......

Invité
Invité n'ayant pas de compte PHPfrance

29 août 2013, 12:40

Bonjour et merci,

C'est tout bon j'ai ajouté une ligne :
$mail=$_POST['mail'];

Sinon, comment activer l'affichage des erreurs et le niveau de rapport à E_ALL ?

ViPHP
xTG
ViPHP | 7331 Messages

29 août 2013, 13:01


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 août 2013, 16:33

Modération :
Puisque ta question est résolue, je l'indique en cliquant sur le bouton "Mettre le sujet en tant que Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert situé en haut de la page à côté du titre, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Il en faut peu pour être heureux ......