Bonjour à tous,


Après quelques difficultés, j'arrive enfin à la dernière (?) ligne droite de mon site ! J'ai donc commencé à "débugger", en vérifiant le bon fonctionnement sur Chrome, Firefox, et Internet Explorer...

Un souci (!) apparaît : mon formulaire de contact, que j'ai récupéré sur un tuto, pose problème avec IE.
N'étant pas expert en code, je ne vois pas d'où vient le problème, sachant que le site, et le formulaire en question, fonctionnent parfaitement avec Firefox et Chrome...
Auparavant j'avais essayé des plugins (Contact-Form 7,...), mais pour une "meilleure intégration", je souhaite garder un formulaire intégré à mon thème.

Je me permets donc de faire appel à votre aide, pour ce souci assez important, en espérant que quelqu'un pourra m'aider à trouver une solution... Voici le lien vers le site-test : http://www.soykje.com/testeur.

Si nécessaire, voici le code de ma page contact.php :

<?php
/*
Template Name: Contact
*/
?>

<!--Début formulaire 1/2-->
<?php 
//If the form is submitted
if(isset($_POST['submitted'])) {

	//Check to see if the honeypot captcha field was filled in
	if(trim($_POST['checking']) !== '') {
		$captchaError = true;
	} else {
	
		//Check to make sure that the name field is not empty
		if(trim($_POST['contactName']) === '') {
			$nameError = 'You forgot to enter your name.';
			$hasError = true;
		} else {
			$name = trim($_POST['contactName']);
		}
		
		//Check to make sure sure that a valid email address is submitted
		if(trim($_POST['email']) === '')  {
			$emailError = 'You forgot to enter your email address.';
			$hasError = true;
		} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
			$emailError = 'You entered an invalid email address.';
			$hasError = true;
		} else {
			$email = trim($_POST['email']);
		}
			
		//Check to make sure comments were entered	
		if(trim($_POST['comments']) === '') {
			$commentError = 'You forgot to enter your comments.';
			$hasError = true;
		} else {
			if(function_exists('stripslashes')) {
				$comments = stripslashes(trim($_POST['comments']));
			} else {
				$comments = trim($_POST['comments']);
			}
		}
			
		//If there is no error, send the email
		if(!isset($hasError)) {

			$emailTo = 'soykje@soykje.com';
			$subject = 'Message de '.$name.', envoyé depuis  www.soykje.com';
 
			$sendCopy = trim($_POST['sendCopy']);
			$body = "Nom: $name \nEmail: $email \n\nMessage: $comments";
			$headers = 'From:  www.soykje.com  <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
			
			mail($emailTo, $subject, $body, $headers);

			if($sendCopy == true) {
				$subject = 'You emailed Your Name';
				$headers = 'From: Your Name <noreply@somedomain.com>';
				mail($email, $subject, $body, $headers);
			}

			$emailSent = true;

		}
	}
} ?>
<!--Fin formulaire 1/2-->

<?php get_header(); ?>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/contact-form.js"></script>

<ul class="categoryfilter"></ul>
<div id="content">
<ul id="content-contact">
	<li class="post_contact">
    <?php if(isset($emailSent) && $emailSent == true) { ?>
    	<p class="thanks">Merci !</p>
        <?php } else { ?>
		<p>Que ce soit pour une question, un projet, ou tout simplement pour dire bonjour, n'h&eacute;sitez pas &agrave; me contacter...</p>
        <?php } ?>
    </li>
            
    <li class="formulaire">
    <form action="<?php the_permalink(); ?>" id="contactForm" method="post"><!--Début formulaire 2/2-->
	
		<div class="nom"><label for="contactName">votre nom</label>
		<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
		<?php if($nameError != '') { ?>
		<span class="error"><?=$nameError;?></span> 
		<?php } ?>
		</div>
				
		<div class="adresse"><label for="email">votre email</label>
		<input type="text" name="email" id="email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="requiredField email" />
		<?php if($emailError != '') { ?>
		<span class="error"><?=$emailError;?></span>
		<?php } ?>
		</div>
				
		<div class="textarea"><label for="commentsText">votre message</label>
		<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
		<?php if($commentError != '') { ?>
		<span class="error"><?=$commentError;?></span> 
		<?php } ?>
		</div>
        
		<div class="screenReader"><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" /><label for="checking" class="screenReader">Si vous n'êtes pas un robot, laissez ce champ vide.</label></div>
		<div class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit">envoyer</button></div>
        
	</form>
	</li><!--Fin formulaire 2/2-->
    
    <li class="getpdf">
    	<p>...vous pouvez aussi t&eacute;l&eacute;charger mon book !</p>
        <a href="<?php bloginfo('template_url'); ?>/images/booksoykje.pdf" title="T&eacute;l&eacute;charger mon book"><div id="pdf"><img src="<?php bloginfo('template_url'); ?>/images/pdf.png" /></div></a>
    </li>
            
    <li class="profil">
    	<div id="gmap"></div>
        <p>SOYKJE | J Paul LESCOUZ&Egrave;RES<br/>76 rue du Bournard<br/>92700 Colombes, FR</p>
    </li>
    
</ul>
</div>

<!--?php get_sidebar1(); ?>-->
<?php get_footer(); ?>
</div>
</body>
</html>


Peut-être cela vient-il d'un "simple" problème de .css ? J'ai beau chercher, je ne vois pas ce qui coince... Smiley bawling

Merci d'avance pour votre aide !
Modifié par soykje (11 Apr 2012 - 14:50)
Bonjour,

il y a déjà de gros problèmes de positionnement.

Tu as des marges négatives et chez moi sous ff11.0 ça donne ceci :
upload/21414-soykje.png
Hum... S'il s'agit du header, dont le haut des lettres n'est pas visible, c'est volontaire Smiley lol . De même que, pour les label du formulaire, le bas n'est pas visible : encore une fois, c'est un choix graphique...

Désolé si cela a pu induire en erreur Smiley cligne

Au passage, j'ai rapidement fait le test du css en local : j'ai tout bonnement viré mon fichier style.css, et vérifié ce que cela donnait pour la page en question. Le problème d'affichage sous IE, persiste. En revanche, si je vire mon fichier contact.php, les choses semblent "fonctionner" à nouveau... Ce qui laisserait penser que cela viendrait du formulaire.
Modifié par soykje (11 Apr 2012 - 15:41)
Modérateur
Bonjour!

a écrit :
De même que, pour les label du formulaire, le bas n'est pas visible : encore une fois, c'est un choix graphique...

Entre ça et les choix de couleurs, c'est pas vraiment un choix graphique, c'est plutôt le choix de cacher le contenu…

En dehors de ce problème, ce n'est pas que ton formulaire mais le site entièrement qui buggue sous ie:

ton menu en image en haut à droite, les liens ne fonctionnent pas, sans doute car tu fais l'erreur de mettre des li dans tes balises a.

Tu inclus deux fois jQuery, une fois la 1.7 et une fois la 1.7.1 (histoire d'être sûr?).

Peux-tu commencer par faire un code plus propre et ensuite expliquer de manière plus détaillée ton problème, en quoi il consiste et sur quelle navigateur et version cela se produit. (Comme tout ton site foire sur ie8 je ne suis pas sûr de la réponse que tu cherches ^^)
Bonjour,

a écrit :
Entre ça et les choix de couleurs, c'est pas vraiment un choix graphique, c'est plutôt le choix de cacher le contenu…

Je ne suis pas certain qu'il soit réellement nécessaire de développer ce genre de "débat" ; il s'agit de points de vue.

a écrit :
En dehors de ce problème, ce n'est pas que ton formulaire mais le site entièrement qui buggue sous ie:
ton menu en image en haut à droite, les liens ne fonctionnent pas, sans doute car tu fais l'erreur de mettre des li dans tes balises a.

Merci pour la remarque concernant les balises <a>, qui étaient autour des <li> ; c'est corrigé. Toutefois, je suis étonné car chez moi, le site fonctionne correctement (avec IE9), en dehors de la page contact dont il est question.

a écrit :
Tu inclus deux fois jQuery, une fois la 1.7 et une fois la 1.7.1 (histoire d'être sûr?).

La première vient de Wordpress, la seconde de moi. Il me semblait avoir vu qu'il était bon d'intégrer jQuery soi-même via l'API Google, afin d'être sûr de bien disposer de la dernière version... Me serais-je trompé ? Je ne suis pas expert (c'est aussi pour cela que mon post figure dans la rubrique "débutant"...), donc merci de me corriger si besoin.

a écrit :
Peux-tu commencer par faire un code plus propre...

Bon... Il est certain que si mon code était plus propre, ce serait mieux... Et je ne serais certainement pas là, comme beaucoup de personnes sur ce forum, car il me semble que l'essentiel de nos erreurs viennent de nos lacunes, n'est-ce pas ?
Je ne demande pas mieux que de faire un code "plus propre", et c'est d'ailleurs aussi pour cela que je viens sur ce forum/site : apprendre.

a écrit :
... et ensuite expliquer de manière plus détaillée ton problème, en quoi il consiste et sur quelle navigateur et version cela se produit. (Comme tout ton site foire sur ie8 je ne suis pas sûr de la réponse que tu cherches ^^)

C'est précisé dans le titre de mon post : IE9.
Concernant le problème, je ne saurais trop comment le décrire, car il ne semble pas se présenter constamment... A l'instant j'ai fait des corrections, et la page s'affichait correctement sous IE. Mais en rafraîchissant la page, le problème revient (alors que le code n'a pas changé) ! Mais pour résumer, ce sont tous les blocs de ma page, qui se placent sur cette page contact comme si la page n'avait pas de largeur (ce qui est pourtant le cas). J'invite ceux qui le voudront bien à visiter ce lien ; ce sera sans doute plus clair...

Dans tous les cas, merci d'avance à ceux qui voudront bien m'aider à résoudre ce problème.
Modifié par soykje (11 Apr 2012 - 19:18)
Modérateur
soykje a écrit :
Je ne suis pas certain qu'il soit réellement nécessaire de développer ce genre de &quot;débat&quot; ; il s'agit de points de vue.

Moi je suis assez certain Smiley cligne . C'est plus qu'un problème de goût, c'est un problème d'accessibilité, ainsi que de bon sens. Demander à ses visiteurs de froncer les yeux en se rapprochant de l'écran, si tu considères cela comme un point de vue, c'est un point de vue étrange. Je considère cela comme une erreur.

soykje a écrit :
Toutefois, je suis étonné car chez moi, le site fonctionne correctement (avec IE9), en dehors de la page contact dont il est question.

Le site buggue beaucoup sous ie8.

soykje a écrit :
La première vient de Wordpress, la seconde de moi. Il me semblait avoir vu qu'il était bon d'intégrer jQuery soi-même via l'API Google, afin d'être sûr de bien disposer de la dernière version... Me serais-je trompé ?

En fait, pour commencer, il ne faut jamais l'inclure deux fois, car cela redéfinira des méthodes et posera des problèmes. L'insertion via google n'est pas une mauvaise méthode, mais pas pour un problème de version, mais car ainsi il y a de fortes chances que l'utilisateur l'ait déjà en cache. Cependant tu utilises un CMS qui a pour but de gérer cela a ta place, donc autant en profiter et le laisser faire. Quel que soit ton choix, il faut en enlever un des 2.


soykje a écrit :
Bon... Il est certain que si mon code était plus propre, ce serait mieux... Et je ne serais certainement pas là, comme beaucoup de personnes sur ce forum, car il me semble que l'essentiel de nos erreurs viennent de nos lacunes, n'est-ce pas ?

Au temps pour moi, ma remarque était un peu facile. Ce que je voulais dire, c'est corriger les erreurs html: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.soykje.com%2Ftesteur%2Fcontact%2F&charset=%28detect+automatically%29&doctype=Inline&group=0 Mais cela va déjà mieux, il y avait plus d'erreurs avant. Il reste que ton formulaire est mis en page par des ul/li : Ceci est fait pour définir des listes, ce qui n'est pas le cas ici.

Concernant ton problème j'ai remarqué que sous ie, tout partait en sucette au redimensionnement… je cherche encore une solution à ce problème et te redonnes des nouvelles bientôt.
Modifié par kustolovic (12 Apr 2012 - 09:52)
Bonjour,


Merci kustolovic, pour ta réponse.

Concernant la question de la lisibilité,je ne dois pas bien comprendre... Tu parles du fait que le texte soit, dans certain cas, tronqué, ou bien du choix des couleurs ? Chez moi tout apparaît correctement, sans besoin de froncer les yeux, mais il y a là peut-être un problème d'étalonnage d'écran (lequel), s'il s'agit bien des couleurs... ?

Concernant les bugs sous IE8, je ne peux malheureusement pas les voir, puisque j'ai IE9 (à moins qu'il n'y ait une possibilité de "virtualiser" IE8 ?)...
Il me semble qu'IE9 apporte beaucoup de nouveautés, comparé aux autres versions ; n'est-il pas pertinent alors de penser qu'on peut faire un site uniquement pour IE9, sans tenir compte des versions précédentes ? (je précise que mon site est un portfolio de graphiste, et par conséquent mes potentiels clients sont rarement sous IE6 Smiley langue )

Je viens de corriger l'insertion de jQuery, en suivant ce tuto Alsa.

Concernant les erreurs html, j'ai tenté de corriger tout ça ce matin, en me basant sur le w3c validator. Pour ce qui est de mon formulaire... je l'avais mis en forme avec des <li>, pour simplifier le ciblage de mon plugin Masonry, et cela ne semblait pas poser plus de problème que ça. Je vais voir en remettant ça au carré, et en désactivant, éventuellement, Masonry.

Merci encore pour ton aide.
Re,

J'ai retouché mes docs, encore à l'instant, et j'ai désactivé Masonry sur la page contact, après avoir remplacé mes ul/li par des div. J'ai également essayé en virant Gmap, mais aucun changement... Smiley bawling
J'avais pensé peut-être que cela pouvait être dû au positionnement de mes blocs, et j'ai donc retouché (un peu) à la structure de contact.php, en regroupant le texte et le formulaire dans une même div, en float left, et en mettant après, les deux autres (le bloc pour télécharger le .pdf et celui avec la gmap). Rien.

Ce que je ne comprends pas, c'est qu'IE(9) affiche correctement mon site, sur toutes les pages, hormis celle de contact ! Ca me laisse penser que mes max-width et autres position:fixed ne sont pas en cause, mais que ce serait bien lié à la page elle-même, et donc très certainement au formulaire...

Impossible de trouver une solution, et franchement là je ne vois plus quoi faire... A vot'bon coeur.

Merci d'avance.

[Edit] Je ne sais pas si cela a une importance, mais le bouton Facebook du footer, dans la page contact, a perdu ses arrondis... Cela aurait un lien ?
Modifié par soykje (12 Apr 2012 - 11:25)
Bonjour,

Le fait de tronquer le texte comme cela altère la lisibilité.
Et en tant que graphiste ça risque d'être vraiment mal vu car si les gens pensent que tu fais du travail qui n'a pas une bonne "lisibilité" ils vont passer leur chemin.

Personnellement je ne ferais jamais ça. A la limite dans le nom de ton site, pourquoi pas, tant que ça reste compréhensible. Mais pour le contenu même et les formulaires, je ne le conseillerais pas surtout si tu t'adresse à des professionnels.

Autre conseil, concernant IE, il serait préférable que ton site passe au moins sur IE 7 8 et 9.
IE6 personnellement j'ai aussi abandonné, le coût en temps et en développement est trop important par rapport au nombre de personnes concernées (qui devient de plus en plus insignifiant). Mais les autres versions sont encore pas mal utilisées donc...

Pour tester les différentes versions de IE, j'utilise IETester
Lien de téléchargement
Merci pour la réponse. Je vais télécharger IETester, et voir comment optimiser mon site en fonction de ça. Toutefois, il me semble qu'avant toute chose, il faudrait réussir à régler le problème sur IE9, non ? Je dis ça bien sûr, dans l'idée de de "définir des priorités"...

Pour ce qui est de la lisibilité... Sauf erreur de ma part, le texte n'est tronqué que sur le titre du site, et sur les label du formulaire. Et dans ce cas, il me semble avoir fait en sorte que le texte reste lisible... Mais je peux me tromper, et je corrigerais cela, alors.

Concernant ta dernière remarque, sur les balises Fieldset & co... Cela résoudrait mon problème ? Je ne comprends pas bien le sens de ta remarque, désolé.
Modifié par soykje (12 Apr 2012 - 11:42)
Personnellement, je développe directement pour que ça marche sous IE7/chrome/firefox, car si ça marche sous IE7, en général, ça marche sur tout le reste ou presque. L'inverse (développer pour IE9 en espérant que ça fonctionne sur les anciens navigateurs) est bien moins fréquent.

Pour les labels, je comprend ton idée de style graphique original, mais je le trouve trop extrême pour des labels de formulaire. Après c'est mon avis personnel, tu fais ce que tu veux.
Modifié par Tetranima (12 Apr 2012 - 12:05)
Bon pour les labels etc, dsl, j'avais mal compris un message, mais j'ai vu que tu en avais déjà mis, donc ma remarque était inutile. J'ai cru que tu avais fais un formulaire en <li>, jsuis pas bien réveillé lol

J'ai trouvé aussi que le contraste était un peu trop faible pour le formulaire, je foncerais un peu le gris pour qu'il soit plus visible personnellement.
Modifié par Tetranima (12 Apr 2012 - 12:07)
Allelujah ! Smiley biggrin

Un ami à moi (dév' de son état), vient à l'instant (et en 2 min, c'est rageant^^) de trouver la solution concernant le problème avec la page contact : il s'agissait en fait tout bonnement des commentaires que j'avais insérés dans mon contact.php, et qui venaient avant le header... Du coup, ça créait des problèmes, dixit mon ami.

Les choses semblent donc rentrées dans l'ordre. Smiley smile Pour ce qui est de la visibilité, je vais travailler dessus ; merci pour le conseil en tous cas.

Par la même occasion, je vais aussi vérifier mon site avec IE7/8, et suivre tes conseils aussi pour faire un code, toujours plus propre !
D'ailleurs, à ce sujet... Quelqu'un aurait-il une référence à me donner, qui me permettrait d'apprendre à avoir un code plus propre, justement ?


Merci à tous, dans tous les cas.
Modifié par soykje (12 Apr 2012 - 17:42)
Voici des livres que j'ai lu et qui m'ont bien aidé à avoir un code propre :

CSS2 (Livre assez exhaustif qui donne de bonnes bases en CSS)
http://www.alsacreations.com/livres/lire/782-css2-pratique-du-design-web.html

CSS2 : Techniques un peu plus avancées et qques hacks/corrections de bugs IE
http://www.alsacreations.com/livres/lire/1008-maitrise-des-css.html

XHTML et CSS (Les bases du xhtml et css)
http://www.alsacreations.com/livres/lire/783-russir-son-site-web-avec-xhtml-et-css.html

Je ne sais pas s'il existe des bouquin sur CSS3 exhaustifs, donc je te conseille de lire ceux les plus complets sur CSS2 et ensuite de lire ce que la CSS3 permet de faire de plus.

D'autant plus qu'elle n'est pas reconnue par les anciens navigateurs, donc autant savoir faire sans. (et avec).
Modifié par Tetranima (17 Apr 2012 - 16:04)
Bonjour,


Un grand merci pour ces références (trouvées sur Alsa, j'aurais peut-être moi aussi dû chercher davantage, désolé... Smiley confus ) !

Le premier me semble pas mal du tout, je pense me l'offrir... Un premier pas pour me former de manière un peu plus "carrée" au code (CSS, PHP, JS...).


Merci encore !