Page 1 sur 1

Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 03:19
par latypik
Bonjour,

Mon site était hébergé chez NFrance et mon formulaire marchait très bien. =D>

Sur ma page contact j'avais :
<form method=POST action="traitement.php">
              <blockquote>
                <div align="left">
                  <br>
                  <br>
                  <input type="text" name="prenom" size="19" maxlength="50" value="Pr&eacute;nom" onFocus="javascript:if(this.value == 'Pr&eacute;nom') this.value='';" onBlur="javascript:if(this.value == '') this.value='Pr&eacute;nom';">
                  <input type="text" name="nom" size="20" maxlength="50" value="Nom" onFocus="javascript:if(this.value == 'Nom') this.value='';" onBlur="javascript:if(this.value == '') this.value='Nom';">
                  <br>
                </div>
                <div align="left">
                  <p>
                    <input type="text" name="email" size="20" maxlength="50" value="Adresse e-mail" onFocus="javascript:if(this.value == 'Adresse e-mail') this.value='';" onBlur="javascript:if(this.value == '') this.value='Adresse e-mail';">
                  </p>
                  <p>&nbsp; </p>
                </div>
                <div align="left">
                  <p><strong><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">Commentaire :</font></strong></p>
                </div>
                <div align="left">
                  <p>
                    <TEXTAREA cols=60 rows=7 id=CPE value="" name=_Message style="margin-left:110px;"></TEXTAREA>
                </p>
                </div>
                <p><br>
                      <input name="submit" type="submit" value="Envoyer">
                      <input name="reset" type="reset" value="Annuler">
                  </div>
                </p>
              </blockquote>
            </form>
Et sur ma page de traitement
<?
            //On affiche ici les informations saisie
echo " Merci $prenom $nom,<br>";
?>
            <br>
            nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais </span>
            <p align="center" class="Style3"><span class="Style3">Edu</span>chine</p>
            <p align="center">&nbsp;</p>
             <?

$_Message = stripslashes($_Message);

//On envoit un mail contenant les données
mail("*****@educhine.com","Formulaire Contact","Prénom : $prenom\n Nom : $nom\n Email : $email\n\n Message :\n$_Message","From: $email\nReply-To: $email"); 

?>
J'ai copié à l'identique le site sur mon nouvel hébergeur Hostpapa et là les formulaires me sont bien envoyés par email mais vide... Une idée du problème ? #-o

Merci de m'aider :priere:

Julien

Re: formulaire qui marche plus

Posté : 17 mars 2011, 03:47
par misterflo
Bonsoir,
il n'y a que ca dans ton fichier de traitement PHP ?
Sinon, il nous faut le code en entier pour mieux voir où sont les problèmes :mrgreen:

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 05:46
par latypik
Bonjour,

Merci pour ta réponse. Non il y a plus dans mon fichier, mais pas grand chose non plus :
<html>
<head>
<title>Educhine vous dit merci !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL="SHORTCUT ICON" HREF="http://www.educhine.com/favicon.ico">
<style type="text/css">
<!--
.Style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; color: #FFFFFF;}
.Style4 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
</head>

<body bgcolor="#666666" link="#FFFFFF" vlink="#FFFFFF" alink="#333333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="85%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="500"><p align="center">&nbsp;</p>
      <p align="center"><img src="images/logoeduchine.gif" width="379" height="128"></p>      
      <p align="justify">                  <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td bgcolor="#CC6600"><div align="center">
            <p>&nbsp;</p>
            
            <span class="Style3">
            <?
            //On affiche ici les informations saisie
echo " Merci $prenom $nom,<br>";
?>
            <br>
            nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais </span>
            <p align="center" class="Style3"><span class="Style3">Edu</span>chine</p>
            <p align="center">&nbsp;</p>
             <?

$_Message = stripslashes($_Message);

//On envoit un mail contenant les données
mail("****@educhine.com","Formulaire Contact","Prénom : $prenom\n Nom : $nom\n Email : $email\n\n Message :\n$_Message","From: $email\nReply-To: $email"); 

?>
            <p align="center">
              <input name="submit" type="submit" class="bouton" onClick="window.close()" value="Fermer la fen&ecirc;tre">
            </p>
            <p align="center">&nbsp;</p>
          </div></td>
        </tr>
      </table>
      <p>&nbsp;</p>
  &nbsp;
    <p></p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 08:54
par xTG
Cela vient du fait que tu programmes en prenant compte une vieille configuration qui est désactivée chez la plupart des hébergeurs par sécurité.

Quand on utilise une variable provenant d'un formulaire en méthode POST il faut utiliser le tableau super-global $_POST.
Un champs de name prenom ne se récupérera donc par via $prenom mais via $_POST['prenom'].

Cette configuration implique aussi les autres variables super-globales.
url => $_GET
session => $_SESSION
cookie => $_COOKIE

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 11:55
par latypik
Merci pour le tuyau ! =D>
Cela fait une bonne heure que je tourne sur le net mais je n'arrive pas à transformer mon code initial en un nouveau code intégrant ce système de tableau super-global.
Tous les exemples que je trouve ne font pas appel à la fonction mail() et je ne m'en sors pas du tout. :oops: :oops: :oops:

Désolé de vous solliciter encore, mais si quelqu'un pouvait m'indiquer à quoi doit ressembler mon code initial une fois passé à la moulinette du système de tableau super-global ce serait génial ! 8-|

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 13:42
par xTG
Simplement renommer toutes les variables en utilisant le tableau super-global qui la contient.

$prenom => $_POST['prenom']
$email => $_POST['email']
$_Message => $_POST['_Message']

Il n'y a pas plus simple. ^^'

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 14:50
par latypik
ah bon ? Je crois que j'ai déjà essayé et que ça plantait, mais je vais le refaire.
Dois-je également les changer dans le formulaire ou que dans le fichier "traitement.php" ?

Merci encore !

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 15:52
par xTG
Tu n'as pas de PHP dans le formulaire, donc je ne vois pas de quoi tu parles...

Re: Changement d'hébergement -> formulaire hs

Posté : 17 mars 2011, 16:10
par moogli
de plus remplacer les <? par <?php histoire d'éviter des soucis les short tag ne sont plus par défaut sur les dernière version de php ;)


@+

Re: Changement d'hébergement -> formulaire hs

Posté : 18 mars 2011, 01:18
par latypik
Alors, j'ai changé mon code comme conseillé ce qui donne pour la ligne mail() :
mail("****@educhine.com","Formulaire Contact","Prénom : $_POST['prenom']\n Nom : $_POST['nom']\n Email : $_POST['email']\n\n Message :\n$_POST['_Message']","From: $_POST['email']\nReply-To: $_POST['email']"); 
Mais on me signale une erreur sur la ligne 38 (celle qui correspond à la fonction mail() ) :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/traitement2.php on line 38
:shock:

Re: Changement d'hébergement -> formulaire hs

Posté : 18 mars 2011, 08:51
par xTG
En regardant la coloration syntaxique on remarque tout de suite ce qui cloche. ;)

Enserres tes variables de type array ainsi :
echo "{$unArray['unIndex']}";

Re: Changement d'hébergement -> formulaire hs

Posté : 21 mars 2011, 05:27
par latypik
J'ai trouvé, il manquait en fait cela en début de code PHP :
$prenom = $_POST['prenom']; 
$nom = $_POST['nom']; 
$email = $_POST['email'];
$_Message = $_POST['_Message'];
Pas facile d'être un débutant... =P~