Page 1 sur 2

PHP sous IE

Publié : 10 mai 2007, 13:39
par klaviebel
Bonjour,
J'essaie désespérément finir mon site internet pour qu'il fonctionne sous IE. (Tout marche à merveille sous Mozilla... mais je me dis que ça devient ridicule de le préciser...)

J'ai trois formulaires sur mon site. Aucun ne fonctionne correctement sous IE. Il me renvoit une partie de mon code html dans ma boîte mail, ce qui en rend le contenu intraitable. De même lorsque mon correspondant le rempli et que le résultat de sa saisi apparait, une partie du code html apparait dans les infos.

Ca fait plusieurs jours que je planche là dessus. Et je n'arrive pas à trouver le pourquoi du comment.

voilà l'un de mes codes php: (fait dans Kpz)

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>formulairecommande</title></head>
<body><?php $n = htmlentities($_POST['Nom']);
$p = htmlentities($_POST['Prenom']);
$m = htmlentities($_POST['email']);
$a = htmlentities($_POST['Adresse']);
$co = htmlentities($_POST['Codepostal']);
$v = htmlentities($_POST['Ville']);
$pa = htmlentities($_POST['Pays']);
$r1 = htmlentities($_POST['reference1']);
$r2 = htmlentities($_POST['reference2']);
$r3 = htmlentities($_POST['reference3']);
$validation = $_POST['validation'];
if (isset($_POST['oui']))
$mbr = $_POST['oui'];
else
$mbr = "ne repond pas";
echo "Votre nom est $n <br />";
echo "Votre nom est $p <br />";
echo "Votre adresse email est $m <br />";
echo "Votre adresse est $a <br />";
echo "Votre code postal est $co <br />";
echo "Votre ville est $v <br />";
echo "Votre pays est $n <br />";
echo "Votre reference 1 est $r1 <br />";
echo "Votre reference 2 est $r2 <br />";
echo "Votre reference 3 est $r3 <br />";
echo "oui j'accepte les conditions de vente: $oui<br />";
$message .= $n."\n";
$message .= $p."\n";
$message .= $m."\n";
$message .= $a."\n";
$message .= $co."\n";
$message .= $v."\n";
$message .= $pa."\n";
$message .= $r1."\n";
$message .= $r2."\n";
$message .= $r3."\n";
$message .= "validation: $validation \n";
mail ("xxx@xxx.xx", "formulairecommande", $message, "From: $n");
echo "Votre commande vient de m'être envoyée. Je vous contacterai dans les meilleurs délais. Merci de votre confiance.; <br />"; ?></body></html>
et mon code html:(NB: le code php ci-dessus correspond au premier formulaire dans le code html)

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta
 content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>commander</title>
<link rel="stylesheet" type="text/css" href= "design.css">
<style type="text/css">
</style></head><body>
<div id="page">
<div id="logo">
</div>

<div id="entete">
</div>

<div id="menu"> 
	<a href="accueil.html"><img src="boutons%20de%20navigation/accueil.gif" alt"bouton navigation accueil"></a>
	<a href="collections.html"><img src="boutons%20de%20navigation/collections.gif" alt"bouton navigation collections"></a>
	<a href="commander.html"><img src="boutons%20de%20navigation/commander_actif.gif" alt"bouton navigation commander"></a>
	<a href="mailto:keocreations@free.fr"><img src="boutons%20de%20navigation/contact.gif" alt"bouton de navigation contact"></a>
	<a href="portrait.html"><img src="boutons%20de%20navigation/portrait.gif" alt"bouton de navigation portrait"></a>
	<a href="curieuses.html"><img src="boutons%20de%20navigation/curieuses.gif" alt"bouton de navigation curieuses"></a><br>
</div>
	
<div id="contenu">
	<h2>Conditions générales de vente :</h2><a href="conditions_de_vente.html" title="Cliquer pour accéder aux conditions de vente"/>cliquer ici</a> pour y accéder.</span><br>
	<p class="indent">En remplissant ci-dessous le bon de commande, vous reconnaissez avoir pris connaissance des conditions générales de vente <a
 href="conditions_de_vente.html" title="Cliquer pour accéder aux conditions de vente"/>ici</a> et les accepter sans aucune réserve.</p>
	<p class="indent">Les frais d'envoi vous sont offerts en FRANCE METROPOLITAINE. Pour des envois vers d'autres
destinations, n'hésitez pas à me contacter <a href="mailto:keocreations@free.fr" title="Cliquer pour m'envoyer un email"/>ici</a> pour le supplément.</p>
	<p class="indent">Nous souhaitons attirer votre attention sur le fait que certains bijoux peuvent potentiellement avoir une légère différence de couleurs
comparativement à la photo que vous découvrez sur ce site internet pour
des raisons intrinsèques à la photographie numérique.</p>
	<p class="indent">Vous recevrez votre ou vos bijoux dans des jolis emballages à s'offrir ou à offrir (dans ce dernier cas vous
recevrez une photographie numérique par messagerie du ou des bijoux dans leurs emaballages que recevra le destinataire).</p><br><br> 
	
	<table>
		<tr>
		<th>Bon de commande :</th>
		<th>Il s'agit d'un cadeau :</th>
		</tr>
		<td>
		<p><p class="indent">Tous les champs marqués avec un * sont à remplir OBLIGATOIREMENT. Merci de votre compréhension.</p></p><br><br>
		<form method="post" action="formulairecommande.php" name="FormulaireCommande">
			<fieldset>
				<legend>Vos coordonnées</legend> 
				<p><p class="different">Nom* :<input type="text" name="Nom"/></p></p>
				<p><p class="different">Prénom*:<input type="text" name="Prenom"/></p></p>
				<p><p class="different">E-mail*:<input type="text" name="email"/></p></p>
				<label><p class="different">Adresse*:<textarea name="Adresse" cols="12" rows="3"</textarea></p></label>
				<p><p class="different">Code Postal* :<input type="text" name="Codepostal"/></p></p>
				<p><p class="different">Ville* :<input type="text" name="Ville"/></p></p>
				<p><p class="different">Pays* :<input type="text" name="Pays"/></p></p>
			</fieldset>
			<fieldset>
			<legend>Référence des Bijoux :</legend> 
				<p><p class="different">Référence bijou 1:<input type="text" name="reference1"/></p></p>
				<p><p class="different">Référence bijou 2:<input type="text" name="reference2"/></p></p>
				<p><p class="different">Référence bijou 3:<input type="text" name="reference3"/></p></p>
			</fieldset>
			<fieldset>
			<legend>Confirmation de vente :</legend> 
				<p>J'ai lu et j'accepte les conditions de vente* : 
				<label><input type="radio" name="Cdvente" value="oui" /> Oui</label><br /></p>
			</fieldset>
			<p><input name="Envoyer" value="Envoyer" type="submit"/> <input name="annuler" value="Annuler" type="reset"/></p>
			</p>
		</form>
		</td>
				
		<td>
		<p><p class="indent">Vous souhaitez offrir un ou des bijoux à une personne et préférez qu'elle le reçoive directement alors remplissez les champs du
formulaire de vos coordonnées personnelles au préalable, puis compléter le formulaire ci-dessous.<br>Tous les champs marqués avec un * sont à remplir
OBLIGATOIREMENT. Merci de votre compréhension.</p></p><br><br>
		<form method="post" action="commandecadeau.php" name="FormulaireCadeau">
			<fieldset>
				<legend>Les coordonnées du destinataire:</legend> 
				<p><p class="different">Nom* :<input type="text" name="NomDestinataire"/></p></p>
				<p><p class="different">Prénom* :<input type="text" name="PrenomDestinataire"/></p></p>
				<p><p class="different">Prénom* :<input type="text" name="PrenomDestinataire"/></p></p>
				<label><p class="different">Adresse d'envoi* :<textarea name="adresse"cols="12" rows="3"</textarea></p></label>
				<p><p class="different">Code postal* :<input type="text" name="codepostal"/></p></p>
				<p><p class="different">Ville* :<input type="text" name="ville"/></p></p>
				<p><p class="different">Pays* :<input type="text" name="Pays"/></p></p>
			</fieldset>
			<fieldset>
				<legend>Réference des bijoux à offrir :</legend>
				<p><p class="different">Référence bijou 1:<input type="text" name="reference1"/></p></p>
				<p><p class="different">Référence bijou 2:<input type="text" name="reference2"/></p></p>
				<p><p class="different">Référence bijou 3:<input type="text" name="reference3"/></p></p>
				<label><p class="different">Message pour accompagner l'envoi :<br>
                <textarea name="message" rows="10" cols="33"></textarea>
				</p></label>
			</fieldset>
			<fieldset>
			<legend>Confirmation de vente :</legend> 
				<p>J'ai lu et j'accepte les conditions de vente* : 
				<label><input type="radio" name="Cdvente" value="oui" /> Oui</label><br /></p>
			</fieldset>
			<p><input name="Envoyer" value="Envoyer" type="submit"/> <input name="annuler" value="Annuler" type="reset"/></p>
			</p>
			</form>
			</td>
		</tr>
	</table><br><br>
	<p>Vous recevrez un message de confirmation par e-mail très rapidement.<br>Si vous ne recevez pas de confirmation de ma part c'est qu'un problème est survenu. N'hésitez pas alors à me recontacter.<br>Merci de votre confiance.</p>
	<h4>Pour faire connaître le site de Keo à vos ami(e)s cliquez <a href="faire_connaitre.html">ici</a><img src="boutons%20de%20navigation/mailbox%20RED.png"></h4></br>
	<br></div>

<div id="menu">
	<a href="accueil.html"><img src="boutons%20de%20navigation/accueil.gif" alt"bouton navigation accueil"></a>
	<a href="collections.html"><img src="boutons%20de%20navigation/collections.gif" alt"bouton navigation collections"></a>
	<a href="commander.html"><img src="boutons%20de%20navigation/commander_actif.gif" alt"bouton navigation commander"></a>
	<a href="mailto:keocreations@free.fr"><img src="boutons%20de%20navigation/contact.gif" alt"bouton de navigation contact"></a>
	<a href="portrait.html"><img src="boutons%20de%20navigation/portrait.gif" alt"bouton de navigation portrait"></a>
	<a href="curieuses.html"><img src="boutons%20de%20navigation/curieuses.gif" alt"bouton de navigation curieuses"></a><br>
</div>
</div>

</body></html>
merci de votre aide

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 10 mai 2007, 14:52
par pascal
le php n'est pas correct, il manque les accolades du if :

Code : Tout sélectionner

if (isset($_POST['oui'])) 
{
 $mbr = $_POST['oui'];
} else
{
$mbr = "ne repond pas"; 
}
par ailleurs, avant de rajouter du contenu à $message, il faut le créer donc :

Code : Tout sélectionner

$message = $n."\n";
$message .= $p."\n"; 
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 10 mai 2007, 23:35
par Benoit
pascal a écrit :le php n'est pas correct, il manque les accolades du if
Heu, tu es sûr d'être bien réveillé ? Il n'a qu'une seule instruction dans son if a priori :)

Publié : 10 mai 2007, 23:44
par pascal
Mais il en a plusieurs dans son else.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 09:05
par Invité
Mais il en a plusieurs dans son else.
Non, je n'ai qu'une instruction: "ne répond pas"...

Est-ce que vous connaitriez un bon tuto pour comprendre le php? (comme je le disais plus haut, je l'ai fait avec Kpz et donc, je l'ai laissé faire...)

En tous les cas, mon code ne marche pas, et sous IE c'est une complète catastrophe... :oops:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 09:53
par chinon37
Google est ton ami!
http://www.phpdebutant.org/ (particulièrement la colonne de droite)
http://www.phpfrance.com/

Publié : 11 mai 2007, 10:08
par calimo
Deux choses :
  1. echo est ton ami. N'hésite pas à afficher les variables à tous les stades pour voir ce qu'elles contiennent, et trouver à quel stade ça coince. Pense aussi à error_reporting pendant le développement ! (n'oublie pas de le supprimer après).
  2. Un peu hs : attention aux entêtes !
    Tu as mis une entête "From: $n", c'est bien, mais si un utilisateur malveillant ajoute un retour à la ligne dans $n ? Il peut alors injecter ce qu'il veut dans tes entêtes (bon, il y a probablement quelques protections, mais fais quand-même gaffe ;-)
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 10:09
par klaviebel
:D merci Chinon37! :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 10:12
par klaviebel
merci Calimo! :D :wink:
echo est ton ami.
chouette! enfin! :lol:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 12:12
par klaviebel
voilà, je lis des tutos sur php et une question me taraude: quelle est la différence entre :
echo "Mon chiffre favoris est ". $mon_chiffre (trouver dans un tuto)
et
echo "Votre nom est $n <br />"; (mon code fait sous Kpz)

Est-ce que l'un pourrait fonctionner sous IE et pas l'autre?
(puisque j'essaie toujours de comprendre pourquoi mes php fonctionnent parfaitement sous mozilla mais bugs totalement sous IE)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 13:23
par calimo
klaviebel a écrit :voilà, je lis des tutos sur php et une question me taraude: quelle est la différence entre :
echo "Mon chiffre favoris est ". $mon_chiffre (trouver dans un tuto)
et
echo "Votre nom est $n <br />"; (mon code fait sous Kpz)

Est-ce que l'un pourrait fonctionner sous IE et pas l'autre?
Il faut bien voir que le php n'est pas interprété par le navigateur (IE, Mozilla) mais interprété sur le serveur. Donc IE ne reçoit que le code HTML généré. Normalement, il n'y a donc pas d'influence du navigateur sur ce plan là.
La différence est à chercher soit sur la manière dont le navigateur interprète le code reçu, soit sur la façon dont il envoie les données...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Edit : une explication bien faite : http://www.siteduzero.com/tuto-3-20-1-i ... #ss_part_2 (le seul point qu'on peut lui reprocher c'est de faire une différence avant/maintenant)

Publié : 11 mai 2007, 14:22
par klaviebel
Merci Calimo.
J'avais fait de grosses erreurs de codage html pour mes formulaires (j'avais notamment oublié les <label for=""> </label> et autre id="". Ce qui fait qu'une partie de mes formulaires était ignorée par IE. Et j'imagine que cela avait des conséquences sur le traitement de PHP sous IE. (alors que tout fonctionnait bien sous Mozilla).
J'ai presque fini de tout corriger. Je vais remettre ça en ligne et voir si cela dysfonctionne toujours sous IE.
Et le cas échéant revoir tout ça.


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 14:44
par calimo
klaviebel a écrit :Et j'imagine que cela avait des conséquences sur le traitement de PHP sous IE.
Non, plutôt sur les données envoyées par IE au serveur. Encore une fois, lis le lien que je t'ai donné juste au-dessus pour bien comprendre où intervient php :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 18:09
par klaviebel
Merci Calimo. je l'avais déjà regardé (je me suis beaucoup servi du site du zéro :wink: pour html et css). Mais je "replanche" dessus!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Publié : 11 mai 2007, 22:53
par klaviebel
Voilà, j'ai reconfiguré mon fichier php.ini, mais je ne comprends pas comment pas comment ça marche. J'ai pourtant fait une recherche sur google pour savoir comment utiliser la fonction de "error-reporting" mais je n'ai comme résultat que les erreurs qu'elle met en avant...
D'où mon post.
Bref, comment ça marche? :roll:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3