Formulaire messagerie html et php pour hébergement chez OVH

Fermé
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015 - 15 juin 2015 à 19:31
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015 - 8 juil. 2015 à 23:01
Bonjour,

Je rencontre beaucoup de difficultés pour faire fonctionner un simple formulaire de messagerie (nom de l'expéditeur, adresse e-mail, objet, message) intégré dans un site web hébergé chez OVH.
Quelqu'un aurait-il une solution (un exemple qui fonctionne vraiment) qui serait liée à ce contexte précis de web chez OVH avec la reconnaissance PHP 5.5 ?

Merci d'avance.
A voir également:

4 réponses

il faudrait plutot nous indiquer ce qui ne fonctionne pas!
ovh a plusieurs solutions d'herbegement, pour connaitre le contexte il faudrait ici nous indiquer laquelle tu as choisi.
Sur quel système d'exploitation,la solution de messagerie etc.
1
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
16 juin 2015 à 18:54
Merci pour ta réactivité.

Ici est mon fichier hybride html/php. Ce que je remarque aussi c'est que, utilisant SeaMonkey pour créer ce type de fichier, lorsque je sauvegarde l'écriture <?php devient systématiquement <!--?php ...

Et, comme je suis assez nul dans ce domaine je ne sais pas si c'est une gêne ou non à la reconnaissance et à l'interprétation de ce fichier chez OVH... Je suis en hébergement Perso2014 avec la reconnaissance PHP version 5.5.

La page html décrite ci-dessous s'affiche correctement mais le code php intégré ne fonctionne pas. C'est à dire qu'aucune action ne se passe lorsque l'on rempli le formulaire et que l'on clique sur Submit.

Evidemment ici j'ai remplacé l'adresse e-mail par une adresse bidon pour conserver un peu d'anonymat mais je pense que tu dois pouvoir tester un fichier que tu dois savoir parfaitement adapter ou, comme recherché, et que tu dois pouvoir me fournir un ou des fichiers (s'il est préférable d'éclater html et php ou avoir 2 php) qui fonctionnent.

Merci pour ton attention et ton aide.

<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<title>contact.php</title>
</head>
<body link="#ffffff" alink="#ffffff" bgcolor="#969696" text="#ffffff"
vlink="#ffffff">
<br>
<br>
<br>
<p> </p>
<a> </a><a> </a><a> </a>
<table align="center" border="0" cellpadding="0" cellspacing="0"
width="1020">
<tbody>
<tr align="center">
<td valign="top"><font face="Arial,Helvetica"><font size="+1"><font
face="Arial,Helvetica"><font size="+1"><b><br>
</b></font></font></font></font>
<div align="left"><font face="Arial,Helvetica"><font
size="+1"><font face="Arial,Helvetica"><font size="+1"><b>
<font color="#666666"><u><small>CONTACT</small></u></font></b></font></font></font></font><font
color="#666666"><br>
<br>
</font></div>
<div align="left"><font color="#666666"> <font
face="Arial,Helvetica"><font size="+1"><font
face="Arial,Helvetica"><font size="+1"><b> </b></font></font></font></font>
</font><big><font face="Arial,Helvetica"><font size="+1"><small><font
color="#666666">To contact the studio please
fill in and submit the form below.</font></small></font></font></big><br>
<br>
<!--?php
//
//ici, bloc codé en php
//
session_start();
if(!isset($_SESSION['code']) OR strlen($_SESSION['code']) !=5) exit("Erreur !");
if($_SESSION['code'] != $_POST['verif']) exit("Erreur les valeurs sont différentes !");
$exp = $_POST['mail'];
$objet = stripslashes($_POST['objet']);
$msg = stripslashes($_POST['msg']);
$envoi=mail("toto.durand@gmail.com", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n");
if($envoi) echo"Le mail a bien été envoyé !";
else echo"L'envoi a échoué, merci de renouveller l'opération !";
session_unset();
session_destroy();
//
// fin du bloc codé en php
//
?-->
<table border="0" cellpadding="4" cellspacing="1"
width="1020">
<tbody>
<tr>
<td>
<div align="right"><font face="Verdana, Arial,
Helvetica, sans-serif" size="2">Your e-mail
address:</font></div>
</td>
<td><font face="Verdana, Arial, Helvetica,
sans-serif" size="2"> <input name="mail"
id="mail" size="50" maxlength="100"
type="text"> </font></td>
</tr>
<tr>
<td>
<div align="right"> <font face="Verdana, Arial,
Helvetica, sans-serif" size="2"> <label
for="objet">Subject:</label> </font></div>
</td>
<td><font face="Verdana, Arial, Helvetica,
sans-serif" size="2"> <input name="objet"
size="50" maxlength="100" type="text"> </font></td>
</tr>
<tr>
<td align="right" valign="top"> <font
face="Verdana, Arial, Helvetica, sans-serif"
size="2"> <label for="msg">Your message:</label>
</font> </td>
<td> <font face="Verdana, Arial, Helvetica,
sans-serif" size="2"> <textarea name="msg"
cols="100" rows="4"></textarea> </font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica,
sans-serif" size="2"><span class="Style3"></span></font><br>
</td>
<td><font face="Verdana, Arial, Helvetica,
sans-serif" size="2"> <input name="submit"
value="Submit" type="submit"> </font></td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
<a href="mailto%20:%20toto.durand@gmail.com"> </a><br>
<br>
<br>
<br>
<br>
<center><br>
</center>
<br>
<br>
<br>
 
<center></center>
</body>
</html>
0
effectivement, ça ne fonctionnera pas comme ça.
Il faut revoir tout le code et la partie html.
Avant de faire de la décoration, fais des tests sur des bouts de codes !

Si seamonkey réécrit les balises de code, le mieux est de passé par un simple bloc note de texte, tu n'auras pas ces problèmes.

peu importe si tu mélanges html et php, il faut que ce soit simple pour toi lorsque tu iras modifier le code.
Bien évidemment séparé le code html et le code php sera plus simple à corriger.
Si tu veux les séparer, il faut un fichier html qui contient le formulaire,
en précisant, dans la balise FORM où se trouve le fichier de traitement du mail, ex:
<form method='POST' action='traitementmail.php'>

et un autre fichier traitementmail.php dans lequel tu fais le test de réception des données.
C'est à toi de choisir la meilleure méthode

Je remets ton code avec la correction, j'ai enlevé les styles pour plus de clarté.
<?php
//ce code doit être placé avant le formulaire
session_start();

//on teste si l'utilisateur a cliqué sur le bouton envoyer
if(isset($_POST['submit'])):
//traitement du mail
 $exp = $_POST['mail'];
 $objet = stripslashes($_POST['objet']);
 $msg = stripslashes($_POST['msg']);
//je n'ai pas testé si l'envoi de mail fonctionne...
 $envoi=mail("***@***", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n");

 if($envoi) echo"Le mail a bien été envoyé !";
 else echo"L'envoi a échoué, merci de renouveller l'opération !";
 session_unset();
 session_destroy();
//s'il n'a pas cliqué alors on affiche le formulaire
else:
?>

<html>
<body>
<form METHOD="POST" ACTION="#">
<p>CONTACT</p>
Votre mail <input name="mail" id="mail" size="50" maxlength="100" type="text" /> <br />
Sujet:<input name="objet" size="50" maxlength="100" type="text" /> <br />
<textarea name="msg" cols="100" rows="4"></textarea>
<input name="submit" value="Submit" type="submit">
</form>
</body>
</html>
<!-- fin du test-->
<?php endif; ?>
1
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
18 juin 2015 à 10:32
Merci pour ton aide.

Alors si j'ai bien compris le code que tu as corrigé et que tu me proposes fait l'objet d'un fichier individuel traitementmail.php que je dois appeler avec la balise <form method='POST' action='traitementmail.php'> que je dois placer dans mon fichier html qui me permet d'habiller mon formulaire... Je dois donc bien avoir affaire à 2 fichiers : l'un html, l'autre php. Est-ce bien cela ?

En tous les cas c'est ce que j'ai fait et le formulaire a bien été affiché dans mon navigateur après mise en oper chez OVH mais l'action submit (envoi d'un message) n'a rien donné... après avoir bien entendu renseigné dans le fichier php l'adresse e-mail à laquelle je souhaite recevoir les messages... J'ai renseigné cette valeur à la 12ème ligne de ton code php ($envoi...). Est-ce bien cela qu'il faut faire ?

Alors j'ai finalement 3 autres questions :

- est-ce que je peux mettre n'importe où cette balise form dans mon fichier html ?

- est-ce que sur ta 24ème ligne le # doit rester ?

- je ne comprends pas encore très bien les mécanismes de l'ensemble dans le sens où je ne saisis pas bien à quel endroit vont les données du message d'un expéditeur... Sont-elles stockées quelque part ? Où ? Sont-elles transférées à travers le compte de messagerie de l'utilisateur ? etc... Si tu peux m'éclairer c'est sympa !
0
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
18 juin 2015 à 10:42
Non... excuse-moi le fichier html n'est pas éxécuté est n'apparaît dans le navigateur que sous son code... alors peut-être à cause de la balise form mal placée ?
0
Comment transfères-tu tes fichiers sur le serveur d'ovh ?

Peux-tu ajouter un lien sur la solution d'hébergement d'ovh ? ma question ici est as-tu un serveur apache + php ?

Si tu copies-colles les codes, il ne faut pas qu'il y ait une application qui réécrive le code sinon on ne s'en sort pas.






ps: Oui je suis sur Paris :) mais je n'ai pas beaucoup de temps pour le moment.
1
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
21 juin 2015 à 02:25
Je transfère mes fichiers en utilisant leur outil FTP (qui n'a toutefois pas été développé par eux) qu'il propose sur leur site dans l'espace client où je peux voir également les différents paramètres de mon site ainsi que le possibilité de modifier certaines options... etc.

L'ergonomie de ce FTP n'est vraiment pas à tomber par terre... mais elle a le mérite d'exister. C'est vrai que je devrais faire l'effort de m'installer un FTP plus sympa sur mon Mac...

Je suis en hébergement web Perso chez OVH et c'est le PHP-FPM d'OVH qui est actif sur cet abonnement. Il ne parle pas explicitement d'Apache.

J'ai bien compris les histoires des applications qui rajoutent quelques fois du code et il est vrai que je me suis fait un peu avoir avec SeaMonkey... car je ne faisais pas vraiment de vérifications...
J'utilise donc systématiquement maintenant une sorte de bloc notes (TextEdit) sur Mac qui traite donc les fichiers en format rtf que bien entendu je rebaptise php ensuite...


Pour ta disponibilité, à toi de me dire un de ces jours, sans hésitation aucune, ton meilleur moment lorsque tu seras moins chargé. Pas d'urgence mais je tiens à le faire.
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
21 juin 2015 à 02:55
salut Kalo, comment peut on te contacter? as-tu facebook?
0
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
8 juil. 2015 à 23:01
Hello, tu m'as laissé tomber Kalo ?
0
ici j'ai repris ton code qui contient le formulaire ET le traitement de la saisie des utilisateurs.

Le mécanisme est simple
l'utilisateur a saisi quelque chose  ?

OUI -> dans ce cas on traite les données
NON -> dans ce cas on affiche un formulaire



le dièse (#) indique simplement de rester sur la même page vu que je n'ai pas séparé le formulaire et le traitement.

Les données saisies par l'utilisateur sont stockées dans le POST du formulaire.

Pour afficher ces données, tu peux utiliser:
print_r($_POST);

avant
if(isset($_POST['submit'])):

Lorsque tu vas charger une première fois la page, le POST sera vide (normal l'utilisateur n'a pas encore saisie de donnée).
Lorsque tu vas cliquer sur envoyer, tu verras les données saisies et stockées dans le POST.

______

Pour la séparation du formulaire et du traitement de la saisie des utilisateurs,
Utilises un bloc-note !

Ici le mécanisme est légèrement différent:

L'utilisateur arrive sur mon formulaire
1/ Dès qu'il appuiera sur le bouton envoyer, j'envois les données saisies sur traitementmail.php

2/ traitementmail.php va vérifier s'il a bien reçu des données (ce que je n'ai pas traité ici).
oui -> dans ce cas j'envoie
non -> dans ce cas, je retourne sur le formulaire



crée un fichier formulaire.html
<html>
<body>
<form METHOD="POST" ACTION="traitementmail.php">
<p>CONTACT</p>
Votre mail <input name="mail" id="mail" size="50" maxlength="100" type="text" /> <br />
Sujet:<input name="objet" size="50" maxlength="100" type="text" /> <br />
<textarea name="msg" cols="100" rows="4"></textarea>
<input name="submit" value="Submit" type="submit">
</form>
</body>
</html>


crée un autre fichier: traitementmail.php
et colles ce code à l'intérieur:
//ce code doit être TOUJOURS placer au début
session_start();

//permet de voir le contenu de POST
echo "<pre>";
print_r($_POST);
echo "</pre>";

if(isset($_POST['submit'])):
//traitement du mail
 $exp = $_POST['mail'];
 $objet = stripslashes($_POST['objet']);
 $msg = stripslashes($_POST['msg']);
//je n'ai pas testé si l'envoi de mail fonctionne...
 $envoi=mail("***@***", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n");

 if($envoi) echo"Le mail a bien été envoyé !";
 else echo"L'envoi a échoué, merci de renouveler l'opération !";
 session_unset();
 session_destroy();
//s'il n'a pas cliqué alors on affiche le formulaire
else:
echo "<p>Aucune donnée -> revenir au <a href='formulaire.html'>formulaire</a></p>";
endif;

Comme précédemment, je n'ai pas testé l'envoi du mail, car on en est pas encore là ! :)
0
MalthusII Messages postés 7 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 8 juillet 2015
18 juin 2015 à 14:48
Ah je sens que je progresse avec ton aide...

J'ai donc suivi scrupuleusement tes directives.

Résultat : le formulaire s'affiche bien lorsqu'il est sélectionné. Ensuite, que l'on rentre ou non des données lorsque l'on clique sur submit le fichier php s'affiche en clair (c'est donc le code qui apparaît) avec toutefois le mot formulaire sous forme de lien, ce qui permet effectivement de retourner sans problème au formulaire.

En revanche, l'affichage des données que tu prévoies d'effectuer grâce à print_r($_POST);
ne fonctionne pas a priori....

Merci encore une fois pour ton aide, je sens que je vais arriver à résoudre mon problème...

Si tu es sur Paris je serai très curieux de faire ta connaissance et t'inviter à déjeuner ou à dîner selon tes possibilités pour te remercier de ton aide précieuse.
0