[php] probleme compatibilité IE/FF/S/M/GC/O

Résolu/Fermé
maxland - 27 juil. 2009 à 16:32
maxland Messages postés 21 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 décembre 2011 - 5 août 2009 à 16:53
Bonjour tout le monde,
comme le titre ne l'indique pas forcement,
j'ai un probleme de compatibilité certes mais avec
6 navigateurs donc Internet Explorer, FireFox, Safari,
Maxthon, Goggle Chrome et Opera.

personnellement je me sers d'opera comme vous pourrez le constatez en bas ...
j'essaie de coder un site mais il ne marche parfaitement qu'avec opera 9, IE7 et maxthon 2
et j'ai juste un probleme de passage de variables apparement avec les autres.

un formulaire passe plusieurs variables d'une page A a une page B, puis C, puis D, etc ...
tout marche avec les 3 premiers navigateurs mais l'operation s'arrete dès la premiere page avec les autres.

en fait c'est un test a la page B qui verifie si tous les champs venant de la page A sont complets (peu importe le contenu) et qui, si ils le sont, affiche une phrase de confirmation.
si ils ne le sont pas tous, il affiche une phrase disant que les infos ne pas completes.
et enfin si il n'y a aucun champs rempli, il n'affiche rien.

je vous met une partie de mon code pour ceux qui ne voient pas ce que je veux dire :

- Page A contenant les infos et les envoyant vers la page B par formulaire

echo '  
<tr><td colspan="2" align="center"><form method="post" action="pageB.php"><br /></td></tr>

<tr><td colspan="2" align="center">Adresse de livraison différente </td></tr>

<tr><td colspan="2" align="center"> <i>(tous les champs sont obligatoires, sauf le complément d\'adresse)</i> <br /><br /></td></tr>

<tr><td colspan="2" align="center">M. &nbsp;<input type="radio" name="liv_civ" value="M"> Mme. &nbsp;<input type="radio" name="liv_civ" value="Mme"> Mlle. &nbsp;<input type="radio" name="liv_civ" value="Mlle"></td></tr>

<tr><td colspan="2" align="center">Nom : <input type="text" name="liv_nom">&nbsp; Prénom : <input type="text" name="liv_pnom"></td></tr>

<tr><td colspan="2" align="center">Adresse : <input type="text" name="liv_adr"> &nbsp; Complément d\'adresse : <input type="text" name="liv_adc" size="15"></td></tr>

<tr><td colspan="2" align="center">Code postal : <input type="text" name="liv_cp"> &nbsp; Ville : &nbsp; <input type="text" name="liv_ville"></td></tr>

<tr>
<td align="left"><br /><a href="panier.php"><img name="continuer" SRC="images/navigation/retour-out.jpg" onmouseover=this.src="images/navigation/retour-in.jpg" onmouseout=this.src="images/navigation/retour-out.jpg" border="0" alt="Retour" onclick="panier.php"/></a></td>

<td align="right"><br /><a href="livraison.php" ><input type="image" name="continuer" SRC="images/navigation/continuer-out.jpg" onmouseover=this.src="images/navigation/continuer-in.jpg" onmouseout=this.src="images/navigation/continuer-out.jpg" border="0" alt="Continuer" onclick="livraison.php"/></a></td>
</tr>
</form>
</table>';


- Page B recevant les infos de la Page A et verifiant les champs et affichant une phrase en conséquence :

	$liv_civ = $_POST['liv_civ'];
	$liv_nom = 	$_POST['liv_nom'];
	$liv_pnom = $_POST['liv_pnom'];
	$liv_adr = 	$_POST['liv_adr'];
	$liv_cp = $_POST['liv_cp'];
	$liv_ville = $_POST['liv_ville'];
	$liv_adc = $_POST['liv_adc'];

// code html et php \\
?>

<?php // test et affichage \\
if (empty($liv_civ) && empty($liv_nom) && empty($liv_pnom) && empty($liv_adr) && empty($liv_cp) && empty($liv_ville))
{}
else 
if (!empty($liv_civ) && !empty($liv_nom) && !empty($liv_pnom) && !empty($liv_adr) && !empty($liv_cp) && !empty($liv_ville)) 
echo '<tr><td align="center" colspan="2"> <font color="red"><i>Adresse de livraison alternative prise en compte.</i></font></td></tr>';

else echo '<tr><td align="center" colspan="2"><font color="red"><i> Il manque des informations pour l\'adresse de livraison alternative,<br />l\'adresse de livraison sera donc la m&ecirc;me que celle de facturation.</i></font></td></tr>';
?>


et normalement ca se repete sur 3-4 pages mais avec firefox, safari et gchrome ca s'arrete au premier passage de variables et je ne comprends pas pourquoi.

merci d'avance de votre aide
A voir également:

17 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 août 2009 à 20:02
Bon, à mon avis, c'est là qu'il y a un soucis :
<a href="livraison.php" ><input type="image" name="continuer" SRC="images/navigation/continuer-out.jpg" onmouseover=this.src="images/navigation/continuer-in.jpg" onmouseout=this.src="images/navigation/continuer-out.jpg" border="0" alt="Continuer" onclick="livraison.php"/></a>


Si tu mets ce genre de chose à la place ?
<button type="submit" name="continuer" style="border-style:none; background-color:inherit; padding:0px;"><img src="images/navigation/continuer-out.jpg" onmouseover='this.src="images/navigation/continuer-in.jpg"' onmouseout='this.src="images/navigation/continuer-out.jpg"' title="continuer" alt="continuer" /></button>
1
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 13:23
les onmouseover et onmouseout, c'est pas sur l'image mais sur le bouton :)

exemple :

<button type="submit" onmouseover='document.getElementById("limage").src="images/navigation/continuer-in.jpg"' onmouseout='document.getElementById("limage").src="images/navigation/continuer-out.jpg"' name="continuer" style="border-style:none; background-color:inherit; padding:0px;">
<img src='images/navigation/continuer-out.jpg' id='limage' />
</button>
1
toujours pas de reponse ?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 août 2009 à 17:34
Bonjour,

Normalement, une balise TABLE ne peut pas contenir de balise FORM.
Certains navigateurs sont permissifs, et l'interprètent bien. D'autres s'en tiennent aux règles. Du coup, ton formulaire qui se termine de cette façon : "</tr></form></table>" n'est pas valide pour certains navigateurs.
Il faudrait sortir le <form> du <table> : "</tr></table></form>".

Voir aussi à l'ouverture de ces balises, dont tu n'as pas donné le code, s'il faut aussi inverser. Normalement, <form> s'ouvre avant <table>.

Xavier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salut, merci de ta reponse mais le probleme persiste.
j'ai fais comme tu m'as conseillé et j'ai sorti les balises form
de la <table> mais rien ne change.

y aurait il des regles particulieres a respecter concernant les formulaires
sous chrome safari et firefox ?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 août 2009 à 18:06
A priori non.
Tu peux donner le code source complet de ta dernière version ?
0
bien sur, voila ce qui se trouve entre les balises <body> :

<?php 


	if(isset($_SESSION['code']))
	{
	
	echo '	<form method="post" action="livraison.php"><table align="center" border="0">
					<!--<tr><td>Poids total : '.$_SESSION['poids'].'g &nbsp; / &nbsp; Montant total : '.$_SESSION['montant'].'&euro;</td></tr>-->
			<!-- si il y a au moins une erreur, on affiche la liste en haut du formulaire -->';
					
echo '					<tr><td align="center" colspan="2" class="titre"><font color="white"><h2>Etape 2 : Vos informations personnelles</h2></font></td></tr>
					<tr>
						<td colspan="2" align="center"><br />Votre adresse de facturation : </td>
					</tr>
					<tr><td colspan="2" align="center"><font color="red"> <i>(par défaut, l\'adresse de livraison sera celle de facturation) </i></font><br /><br /></td></tr>
					<tr>
						<td colspan="2" align="center">Nom et Pr&eacute;nom : &nbsp;';
								if($_SESSION['civ'] == "M") {echo 'M.';} 
								
								if($_SESSION['civ'] == "Mme") {echo 'Mme.';} 
								
								if($_SESSION['civ'] == "Mlle") {echo 'Mlle.';}
			echo	'	
						'.$_SESSION['nom'].' &nbsp;
						'.$_SESSION['prenom'].'
						</td>
					</tr>
					
					<tr>
						<td colspan="2" align="center">Adresse : &nbsp;'.$_SESSION['adr1'].'</td>
					</tr>';
					
			if(isset($_SESSION['adr2']))
			{			
			echo '	<tr>
						<td colspan="2" align="center">Compl&eacute;ment d\'adresse : &nbsp;'.$_SESSION['adr2'].'</td>
					</tr>';
			}
			echo '	<tr>
						<td colspan="2" align="center">Code Postal et Ville : &nbsp;'.$_SESSION['cpostal'].' &nbsp;
						'.$_SESSION['ville'].'</td>
					</tr>';
					
			if(!empty($_SESSION['telf']))
			{ 
			echo '	<tr>
						<td colspan="2" align="center">Numéro de téléphone fixe : '.$_SESSION['telf'].'</td>
					</tr>';
			}
			
			if(!empty($_SESSION['telp']))
			{ 
			echo '	<tr>
						<td colspan="2" align="center">Numéro de téléphone portable : '.$_SESSION['telp'].'</td>
					</tr>';
			}
		echo '  <tr><td colspan="2" align="center"><br /></td></tr>
				<tr><td colspan="2" align="center">Adresse de livraison différente </td></tr>
				<tr><td colspan="2" align="center"> <i>(tous les champs sont obligatoires, sauf le complément d\'adresse)</i> <br /><br /></td></tr>
				<tr><td colspan="2" align="center">M. &nbsp;<input type="radio" name="liv_civ" value="M"> Mme. &nbsp;<input type="radio" name="liv_civ" value="Mme"> Mlle. &nbsp;<input type="radio" name="liv_civ" value="Mlle"></td></tr>
				<tr><td colspan="2" align="center">Nom : <input type="text" name="liv_nom">&nbsp; Prénom : <input type="text" name="liv_pnom"></td></tr>
				<tr><td colspan="2" align="center">Adresse : <input type="text" name="liv_adr"> &nbsp; Complément d\'adresse : <input type="text" name="liv_adc" size="15"></td></tr>
				<tr><td colspan="2" align="center">Code postal : <input type="text" name="liv_cp"> &nbsp; Ville : &nbsp; <input type="text" name="liv_ville"></td></tr>
				<tr>
					<td align="left"><br /><a href="panier.php"><img name="continuer" SRC="images/navigation/retour-out.jpg" onmouseover=this.src="images/navigation/retour-in.jpg" onmouseout=this.src="images/navigation/retour-out.jpg" border="0" alt="Retour" onclick="panier.php"/></a></td>
					<td align="right"><br /><a href="livraison.php" ><input type="image" name="continuer" SRC="images/navigation/continuer-out.jpg" onmouseover=this.src="images/navigation/continuer-in.jpg" onmouseout=this.src="images/navigation/continuer-out.jpg" border="0" alt="Continuer" onclick="livraison.php"/></a></td>
				</tr>
				
				</table></form>';
	}
	else 
	echo 	'<table border="1" align="center">
				<tr>
					<td>
						<table>
							<tr>
								<td><h3 align=center><font color="black">Si vous n\' êtes pas encore client(e), <br />vous pouvez vous inscrire <a href="inscription.php" style="color:#A91101;">ICI</a></font></h3></td>
							</tr>
						</table>
					</td>
					<td><h3 align=center><font color="black">Sinon si vous êtes déjà inscrit(e), <br>veuillez vous identifiez à coté --></font></h3></td>
				</tr>
			</table>';
?>
0
merci mais ca ne fonctionne toujours pas,
serait-ce a cause du this.src où je ne met pas de quote ni de guillemets ?
j'ai testé avec les guillemets ca fais rien, pour les quote je ne sais
pas comment faire la concatenation avec un echo ' ';

en tout cas encore merci de ton aide
0
probleme toujours pas resolu ...

si quelqu'un a une idée je suis preneur, merci
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
5 août 2009 à 13:29
Est-ce que W3C ne fait pas en sorte à ce que les erreurs qu'il trouve, c'est pour que le site s'adapte sur toutes les plateformes ?
0
Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 447
5 août 2009 à 13:42
Toutes... Non parce que certains navigateurs (IE pour ne citer que lui) ne respectent pas obligatoirement les standars, mais la plupart oui.
Essaye de passer le code html de des pages de ton site au validateur http://validator.w3.org/ et de corriger ce qui ne respecte pas les standards...
0
un grand merci jeangilles ca marche parfaitement :)
merci a toi aussi Reivax962, mais c'est bizarre que ta solution, qui ressemble
a celle de jeangilles, ne fonctionnait pas ...

et en ce qui concerne heryu, deja je ne comprends pas ta phrase
et en plus w3c ne m'a jamais aidé a part a remplacer mes align=center par align="center" ...

en tout cas merci de votre aide a tous
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
5 août 2009 à 13:46
et en plus w3c ne m'a jamais aidé a part a remplacer mes align=center par align="center"

ben si, justement, ca te permet d'être sur que ton codemarche sur tous les navigateurs sans avoir forcément besoin de tester sur tous ! (enfin pour la partie HTML et CSS tout du moins)
et c'a marchera aussi normalement, sauf gros bouleversement, sur les prochaines versions des navigateurs si les normes sont correctement respectées
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
5 août 2009 à 13:51
Je ne dit pas que des bêtises ^^
0
ouais d'accord mais si c'est juste des oublis de guillemets ca va pas
empecher le site de fonctionner quoi.

au fait Archeus01, d'apres w3c justement, sur la page en ligne (donc non corrigée puisque je travaille en local)
j'ai seulement 14 erreurs du type "center" ou <br> au lieu de <br />, que j'ai corrigé dans la nouvelle
version donc ...
0
maxland Messages postés 21 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 décembre 2011
5 août 2009 à 16:41
hum ...

c'est encore moi et oui :)

le code de jeangilles marche parfaitement, sauf que dans IE et Maxthon ca me fait un vilain
bouton gris plus grand que mon image avec mon image par dessus ...

j'aimerais savoir si ce serait possible de rendre transparent uniquement le bouton
en arriere plan et laisser l'image par dessus visible,
j'ai testé opacity:0.0; filter:alpha(opacity=0); mais ca rend la case completement transparente ...

désolé de vous embeter encore une fois ;)

au cas ou vous vous demandez oui j'ai chercher dans le forum et dans google, apres si je suis aveugle c'est pas ma faute hein :)
0
maxland Messages postés 21 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 décembre 2011
5 août 2009 à 16:53
je me repond moi meme lol :)

j'ai resolu tout le probleme finalement, et c'etait une erreur quelque peu invisible
etant donné que vous etes passé a coté :) :)

l'erreur venait du lien a href associé au bouton, fallait tout simplement
enlever le a href et maintenant ca marche sans button type submit ...

je met le code du bouton au cas ou :

<td align="right"><br /><input type="image" name="continuer" SRC="images/navigation/continuer-out.jpg" onmouseover=this.src="images/navigation/continuer-in.jpg" onmouseout=this.src="images/navigation/continuer-out.jpg" border="0" alt="Continuer" onclick="livraison.php"/></td>

c'est juste ma ligne de code du debut mais sans <a href="paiement.php"> </a> c'est tout

merci de votre aide les gars
0