Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/10/2011, 20h51   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
Par défaut Petit script incompatible validation W3C

Bonsoir à tous,

Voilà, j'ai un petit soucis, mon script qui me sert à lister mes tags n'est pas valide sur W3C, il me donne plus de 500 erreurs, mais je sais qu'il suffit juste de recoder mon script, chose que je n'arrive pas depuis hier...

Quelqu'un pourrait m'aider à le recoder correctement svp?

Voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<div id="tagsphere">
<ul>
		<?php	
 
			$reponse = mysql_query("SELECT * 
			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
 
			while ($donnees = mysql_fetch_array($reponse) ) {
			$someWords = $donnees['tag']; 
 
			$wordChunks = explode(",", $someWords);
 
			 for($i = 0; $i < count($wordChunks); $i++){
 
    		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;}?></a></li>	
		<?php } ?>
</ul>
</div>
Merci beaucoup!
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 20h54   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
et l'erreur est ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h03   #3
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
L'erreur qui revient des centaines de fois est celle-ci:

Citation:
Line 251, Column 529: document type does not allow element "li" here

…php?rubrique=decoctions">ébullition<li><a href="/art_de_la_tisane.php?rubrique…



The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h06   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
montre le code complet de ta page,
je te conseil de faire des htmlspecialchars sur tes sorties
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h09   #5
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
C'est le code complet, en fait après je fais juste include dans mon index mais sinon le code est complet.

Comment je fais ce que tu m'as conseillé?
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h10   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Faudrait nous donner un extrait significatif du HTML généré.

Sinon y'a une } qui traîne et qui, a priori, n'a rien à faire là :

Code :
<?php echo $wordChunks[$i] ;}?></a></li>
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 21h13   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Séb. Voir le message
Faudrait nous donner un extrait significatif du HTML généré.

Sinon y'a une } qui traîne et qui, a priori, n'a rien à faire là :

Code :
<?php echo $wordChunks[$i] ;}?></a></li>
bien joué ça coupe le for
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h15   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par stealth35 Voir le message
bien joué ça coupe le for
D'où l'intérêt de présenter correctement son script et d'utiliser les for/endfor & cie pour le PHP immergé dans du HTML, n'est-ce pas Amouna85 ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h17   #9
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
J'ai essayé, ce n'est pas ça.

En fait il n'a pas d'html, il utilise du JQuery:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
 
(function(){
    var tags;
    var defaults = {
        height: 150,
        width: 200,
        radius: 500,
        speed: 0.20,
        slower: 1,
        timer: 5,
        fontMultiplier: 10,
        tagCSSOver: {
            border: 'solid 1px #FF9999',
            color: '#FF9999'
        },
        tagCSSOut: {
            border: '',
            color: ''
        }
    }
    var forCalcs = {
        halfHeight: null,
        halfWidth: null,
        hwratio: null,
        dtr: null,
        diametr: null,
        speedX: null,
        speedY: null,
        tLength: null
    }
    var curState = {
        mouseOver: null,
        lastFy: null,
        lastFx: null,
        sy: null,
        cy: null,
        sx: null,
        cx: null,
        mouseX: null,
        mouseY: null
    }
    var options = {};
    jQuery.fn.tagSphere = function(opt){
        options = jQuery.extend(defaults, opt);
        initContainer(this);
        initTags(this);
        initCalcs();
        deployTags();
        setInterval(updateTags, options.timer);
        return this;
    };
 
    function initCalcs(){
        forCalcs.halfHeight = options.height / 2;
        forCalcs.halfWidth = options.width / 2;
        forCalcs.speedX = options.speed / forCalcs.halfWidth;
        forCalcs.speedY = options.speed / forCalcs.halfHeight;
        forCalcs.dtr = Math.PI / 180;
        forCalcs.diametr = options.radius * 2;
        forCalcs.hwratio = options.height / options.width;
        forCalcs.whratio = options.width / options.height;
        forCalcs.tLength = tags.length - 1;
        curState.mouseOver = false;
        curState.lastFx = options.speed;
        curState.lastFy = options.speed;
    }
 
    function initContainer(tagCont){
        tagCont.height(options.height);
        tagCont.width(options.width);
        tagCont.css({
            'overflow': 'hidden',
            'position': 'relative'
        });
        tagCont.mousemove(function(e){
            curState.mouseX = e.pageX - this.offsetLeft;
            curState.mouseY = e.pageY - this.offsetTop;
        });
        tagCont.hover(function(){
            curState.mouseOver = true;
        }, function(){
            curState.mouseOver = false;
        });
    }
 
    function initTags(tagCont){
        tags = tagCont.children('ul').children();
        tags.css({
            'position': 'absolute',
            'list-style-type': 'none',
            'list-style-position': 'outside',
            'list-style-image': 'none'
        });
        for (var i = 0; i < tags.length; i++) {
            var jTag = jQuery(tags[i]);
            tags[i] = jTag;
            jTag.hover(function(){
                jQuery(this).css(options.tagCSSOver);
            }, function(){
                jQuery(this).css(options.tagCSSOut);
            })
        }
    }
 
    function deployTags(){
        var phi = 0;
        var theta = 0;
        var max = forCalcs.tLength + 1;
        var i = 0;
        while (i++ < max) {
            phi = Math.acos(-1 + (2 * i - 1) / max);
            theta = Math.sqrt(max * Math.PI) * phi;
            tags[i - 1].cx = options.radius * Math.cos(theta) * Math.sin(phi);
            tags[i - 1].cy = options.radius * Math.sin(theta) * Math.sin(phi);
            tags[i - 1].cz = options.radius * Math.cos(phi);
            tags[i - 1].h = jQuery(tags[i - 1]).height() / 4;
            tags[i - 1].w = jQuery(tags[i - 1]).width() / 4;
        }
    }
 
    function calcRotation(fy, fx){
        curState.sy = Math.sin(fy * forCalcs.dtr);
        curState.cy = Math.cos(fy * forCalcs.dtr);
        curState.sx = Math.sin(fx * forCalcs.dtr);
        curState.cx = Math.cos(fx * forCalcs.dtr);
    }
 
    function updateTags(){
        var fy;
        var fx;
        if (curState.mouseOver) {
            fy = options.speed - forCalcs.speedY * curState.mouseY;
            fx = forCalcs.speedX * curState.mouseX - options.speed;
        }
        else {
            fy = curState.lastFy * options.slower;
            fx = curState.lastFx * options.slower;
        }
        curState.lastFy = fy;
        curState.lastFx = fx;
        if (Math.abs(fy) > 0.01 || Math.abs(fx) > 0.01) {
            calcRotation(fy, fx);
            j = -1;
            while (j++ < forCalcs.tLength) {
                rx1 = tags[j].cx;
                ry1 = tags[j].cy * curState.cy + tags[j].cz * -curState.sy;
                rz1 = tags[j].cy * curState.sy + tags[j].cz * curState.cy;
                tags[j].cx = rx1 * curState.cx + rz1 * curState.sx;
                tags[j].cy = tags[j].cy * curState.cy + tags[j].cz * -curState.sy;
                tags[j].cz = rx1 * -curState.sx + rz1 * curState.cx;
                var per = forCalcs.diametr / (forCalcs.diametr + tags[j].cz);
                tags[j].x = tags[j].cx * per;
                tags[j].y = tags[j].cy * per;
                tags[j].alpha = per / 2;
                tags[j].css({
                    'left': forCalcs.whratio * (tags[j].x - tags[j].w * per) + forCalcs.halfWidth,
                    'top': forCalcs.hwratio * (tags[j].y - tags[j].h * per) + forCalcs.halfHeight,
                    'opacity': tags[j].alpha,
                    'font-size': options.fontMultiplier * tags[j].alpha + 'px',
                    'z-index': Math.round(-tags[j].cz)
                });
            }
        }
    }
})()
Et donc j'avais décidé moi même de faire appel à ma base de données, jusque lorsque j'ai essayé de valider, je me retrouve avec + de 500 erreurs alors que c'est parfaitement fonctionnel.

J'en ai déduis qu'il fallait recoder le petit script?
Mais sans résultat depuis hier...
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h23   #10
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par Amouna85 Voir le message
J'ai essayé, ce n'est pas ça.
Ah.

Citation:
En fait il n'a pas d'html, il utilise du JQuery:
JQuery génère du HTML, propre j'espère

Pourrais pas t'aider là-dessus.

Citation:
Et donc j'avais décidé moi même de faire appel à ma base de données, jusque lorsque j'ai essayé de valider, je me retrouve avec + de 500 erreurs alors que c'est parfaitement fonctionnel.

J'en ai déduis qu'il fallait recoder le petit script?
Mais sans résultat depuis hier...
Pas compris ce que tu veux dire.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h29   #11
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
Je disais que le problème vient de ce script-ci que j'ai codé moi-même:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<div id="tagsphere">
<ul>
		<?php	
 
			$reponse = mysql_query("SELECT * 
			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
 
			while ($donnees = mysql_fetch_array($reponse) ) {
			$someWords = $donnees['tag']; 
 
			$wordChunks = explode(",", $someWords);
 
			 for($i = 0; $i < count($wordChunks); $i++){
 
    		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;}?></a></li>	
		<?php } ?>
</ul>
</div>
Je suis certaine que c'est une question d'imbrication ou de code mal rangé, le seul soucis c'est que je ne vois pas
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h29   #12
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Je vois toujours la } de trop !
Poste le script corrigé stp.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h32   #13
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h33   #14
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par Amouna85 Voir le message
Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.
Et bien poste le nouveau script qu'on puisse jeter un oeil.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h33   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Amouna85 Voir le message
Lorsque j'enlève cette accolade, le script n'est plus fonctionnel.
elle est juste mal placer
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 21h34   #16
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
Où dois-je la placer alors?

Il n'y a pas de nouveau script, c'est le seul script que je possède.
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h36   #17
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par Amouna85 Voir le message
Où dois-je la placer alors?

Il n'y a pas de nouveau script, c'est le seul script que je possède.
Tu as un script erroné, tu le modifies et le pb persiste.
Il faut poster le script modifié (ce que j'appelle "nouveau script") et pas à nouveau celui d'origine comme tout à l'heure.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h36   #18
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par stealth35 Voir le message
elle est juste mal placer
Yep, me suis mal exprimé
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h37   #19
Invité de passage
 
Inscription : octobre 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 25
Points : 0
Points : 0
Ok, désolée.

Voici:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<div id="tagsphere">
<ul>
		<?php	
 
			$reponse = mysql_query("SELECT * 
			FROM articles where lien LIKE '%aromatherapie%'or (lien LIKE '%index%') or (lien LIKE '%soins_divers%') or (lien LIKE '%art_de_la_tisane%')");
 
			while ($donnees = mysql_fetch_array($reponse) ) {
			$someWords = $donnees['tag']; 
 
			$wordChunks = explode(",", $someWords);
 
			 for($i = 0; $i < count($wordChunks); $i++){
 
    		?><li><a href="<?php echo $donnees['lien'];?>"><?php echo $wordChunks[$i] ;?></a></li>	
		<?php } ?>
</ul>
</div>
Amouna85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h38   #20
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Comme l'a dit stealth35 il manque maintenant une } pour le for ou le while.
Indente ton script correctement et tu verras l'erreur tout de suite.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h50.


 
 
 
 
Partenaires

Hébergement Web