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

Résolu
maxland -  
maxland Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention   186
 
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
maxland
 
toujours pas de reponse ?
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
maxland
 
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
A priori non.
Tu peux donner le code source complet de ta dernière version ?
0
maxland
 
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
maxland
 
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
maxland
 
probleme toujours pas resolu ...

si quelqu'un a une idée je suis preneur, merci
0
Heryu Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   62
 
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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
maxland
 
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   Statut Membre Dernière intervention   186
 
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   Statut Membre Dernière intervention   62
 
Je ne dit pas que des bêtises ^^
0
maxland
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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