probleme formulaire contact et session sur le site

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Partager sur FacebookPartager sur TwitterPartager sur Google+

probleme formulaire contact et session sur le site

Messagepar vcloclo1 » 16 Mai 2006 à 23:57

Salut,

Voila, sur mon site j'ai un formulaire de contact, et depuis que j'ai installé les sessions sur mon site il marche plus, je reçois les mail mais sans les détails.

Je sais que sa viens des session car des que j'enlève le code des session, mon formulaire fonctionne de nouveau.
C'est à dire se code:
Code: Tout sélectionner
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' .$phpEx);
$redirect_login = "../index.php"; 
$redirect_logout = "../index.php";
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
?>


Voici les page de mon formulaire, pouvez vous me dire pourquoi sa fait sa ? Car je vois pas pourquoi ya problème de compatibilité :cry:

config-contact.txt
contact.txt
ok.txt
scripts-contact.js.txt

Merci de votre aide
Modifié en dernier par vcloclo1 le 18 Mai 2006 à 08:54, modifié 2 fois.
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar spitfire pat » 17 Mai 2006 à 14:20

je pesne que c'est parce que tu utilises $_REQUEST dans ok.php et que cette variable globale est neutralisée par phpBB
utilise $_POST à la place
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar vcloclo1 » 17 Mai 2006 à 19:09

spitfire pat a écrit:je pesne que c'est parce que tu utilises $_REQUEST dans ok.php et que cette variable globale est neutralisée par phpBB
utilise $_POST à la place


Sa n'empeche pas le fonctionnement de mon script ?
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar spitfire pat » 17 Mai 2006 à 19:20

normalement ton formulaire envoie des variables de type $_POST, donc ça ne changera rien.
$_REQUEST est à éviter comme la peste car alors un pirate peut envoyer des réponses de formulaire sans l'avoir rempli
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar vcloclo1 » 17 Mai 2006 à 20:50

spitfire pat a écrit:normalement ton formulaire envoie des variables de type $_POST, donc ça ne changera rien.
$_REQUEST est à éviter comme la peste car alors un pirate peut envoyer des réponses de formulaire sans l'avoir rempli


J'ai testé avec $_POST, c'est pareil si je remet le code des sessions, sa marche plus :cry:
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar spitfire pat » 18 Mai 2006 à 06:30

je regarderai ça de plus près quand j'aurai un moment
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar spitfire pat » 18 Mai 2006 à 07:50

ah oui, je n'avais pas tout regardé....
voilà ce qui se passe: un formulaire contenant un contrôle nommé prenom ne crée une variable $prenom QUE si register_globals est activé, or ceci est désactivé par phpbb il faut donc se servir de $_POST['prenom'] ou $_REQUEST['prenom'] (mais ce dernier est à déconseiller comme je te l'ai dit plus haut)
en plus, tu inclus le script qui envoie les emails AVANT de tester si le formulaire est complet.
donc il faudrait remplacer
Code: Tout sélectionner
				<?php include("config-contact.php"); ?>
				<?php // si les champs sont remplis
				if(!empty($_REQUEST['prenom']) && !empty($_REQUEST['message']) && !empty($_REQUEST['sujet']) && !empty($_REQUEST['email']))
				{

par
Code: Tout sélectionner
				$prenom = htmlentities($_REQUEST['prenom']);
				$email = htmlentities($_REQUEST['email']);
				$sujet = htmlentities($_REQUEST['sujet']);
				$message = htmlentities($_REQUEST['message']);
				// si les champs sont remplis
				if (!empty($prenom)  && !empty($message)  && !empty($sujet) && !empty($email))
				{
					include("config-contact.php");


par ailleurs les ouvertures et fermetures de tags php ralentissent l'exécution d'un script et il vaudrait mieux par exemple remplacer
Code: Tout sélectionner
			<?php include("header.php"); ?>

			<?php include("menu-left.php"); ?>

			<?php include("menu-right.php"); ?>
par
Code: Tout sélectionner
			<?php include("header.php"); 

			include("menu-left.php"); 

			include("menu-right.php"); ?>
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar vcloclo1 » 18 Mai 2006 à 08:47

ok, merci pour tous tes conseils, j'en prend note pour la prochaine fois.

C'est bon maintenant sa marche nickel :wink:
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar vcloclo1 » 18 Mai 2006 à 08:53

Si derniere question

une fois le formulaire rempli et envoyé, le resulta indique les donné que le membres a inscrit, dans la partie message, si le membres a cliquer sur entré pour aller a la ligne, est bien c'est pas pris en compte.

Pourtant dans le mail recu si.

Comment fare pour que dans le resulta "ok.php" sa prend aussi en compte ?

Merci
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar spitfire pat » 18 Mai 2006 à 09:12

vcloclo1 a écrit:une fois le formulaire rempli et envoyé, le resulta indique les donné que le membres a inscrit, dans la partie message, si le membres a cliquer sur entré pour aller a la ligne, est bien c'est pas pris en compte.

Pourtant dans le mail recu si.


tu veux dire par là, je suppose, que dans le mail, les sauts de ligne sont pris en compte, mais pas dans le récapitulatif affiché sur le site

dèjà, tu auars remplacé dans ok.php
Code: Tout sélectionner
<b>Votre message : </b><br />
					', htmlentities($_REQUEST['message']),'<br />

par
Code: Tout sélectionner
<b>Votre message : </b><br />' , $message, '<br />

puisque $message aura été défini plus haut.
maintenant, il faut remplacer les sauts de lignes \n par des <br>, ce qui donnera:

Code: Tout sélectionner
				if (!empty($prenom)  && !empty($message)  && !empty($sujet) && !empty($email))
				{
					include("config-contact.php");
					echo '
					<br />
					<br />
					<span class="sous-titre">Merci ', $prenom,',</span ><br />
					<br />
					Votre message nous a bien été envoyé.<br />
					Voici les informations que vous avez donné :<br />
					<br />
					<b>Votre Prénom : </b> ', $prenom ,'<br />
					<b>Votre E-mail : </b> ', $email ,'<br />
					<b>Sujet du mail : </b> ', $sujet ,'<br />
					<b>Votre message : </b><br />' . str_replace("\n", "<br>", $message) . '<br />
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar vcloclo1 » 18 Mai 2006 à 18:54

Alors c'est bon, maintenant sa marche mieux.

Autre question, je viens de recevoir un mail, et tous les caractères avec accent ex = é,è,à ou ' sont mal interprété

Petite copie du message:
catherine c\'est vraiment &agrave; titre administratif or c\'est pas le cas.


Comment résoudre se défaut ?

Merci

EDITE:

Voici un test que j'ai fait en envoyant que des accent:
Donc mon mail n'est pas lisible :cry:
e avec accent = &eacute;
e avec accent = &egrave;
a avec accent = &agrave;
apostrophe = \'
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar Vlad Tepesch » 18 Mai 2006 à 19:40

Tu as un htmlentities qui traine et qui modifie le message.
Avatar de l’utilisateur
Vlad Tepesch
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 3420
Enregistré le: 04 Juil 2005 à 16:23
Localisation: Paris

Messagepar vcloclo1 » 18 Mai 2006 à 20:34

Voici mon code avec toute les modif effectuer:

Code: Tout sélectionner
<?php // si les champs sont remplis
$prenom = htmlentities($_POST['prenom'], ENT_QUOTES); 
$email = htmlentities($_POST['email'], ENT_QUOTES); 
$sujet = htmlentities($_POST['sujet'], ENT_QUOTES); 
$message = htmlentities($_POST['message'], ENT_QUOTES);
if(!empty($prenom) && !empty($message) && !empty($sujet) && !empty($email))
{
	include("config-contact.php");
	echo '
		<br />
		<br />
		<span class="sous-titre">Merci ' , $prenom , ',</span ><br />
		<br />
		Votre message nous a bien été envoyé.<br />
		Voici les informations que vous avez donné :<br />
		<br />
		<span class="bold">Votre Prénom :</span> ' , $prenom , '<br />
		<span class="bold">Votre E-mail :</span> ' , $email , '<br />
		<span class="bold">Sujet du mail :</span> ' , $sujet , '<br />
		<span class="bold">Votre message :</span><br />
		' , str_replace("\n", "<br />", $message) , '<br />
		<br />
		<br />
		Vous allez recevoir une E-mail de confirmation.<br />
		Après ceci, nous vous répondrons dans les plus bref délais.<br />
		<br />
		<br />
		A très bientôt ...
		<br />
	';


Si j'enleve le "htmlentities" sa risque rien ?? niveau securité !!!
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Messagepar spitfire pat » 19 Mai 2006 à 08:56

dans usercp_email.php, le message est transformé ainsi:
Code: Tout sélectionner
$message = trim(stripslashes($HTTP_POST_VARS['message']));

étant donné que je ne pense pas que la fonction mail() puisse envoyer d'email au format html, il n'y a probablement pas de problème de sécurité
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15297
Enregistré le: 18 Sep 2004 à 15:43
Localisation: bourgogne

Messagepar vcloclo1 » 19 Mai 2006 à 12:53

spitfire pat a écrit:dans usercp_email.php, le message est transformé ainsi:
Code: Tout sélectionner
$message = trim(stripslashes($HTTP_POST_VARS['message']));

étant donné que je ne pense pas que la fonction mail() puisse envoyer d'email au format html, il n'y a probablement pas de problème de sécurité


Tu me conseil donc de mettre se code ?
vcloclo1
Floodeur mature
Floodeur mature
 
Messages: 1673
Enregistré le: 29 Mar 2005 à 22:50
Localisation: Var

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités